]> git.vpit.fr Git - perl/modules/LaTeX-TikZ.git/commitdiff
Make sure Set->mod only accepts mods
authorVincent Pit <vince@profvince.com>
Sun, 18 Jul 2010 23:06:19 +0000 (01:06 +0200)
committerVincent Pit <vince@profvince.com>
Sun, 18 Jul 2010 23:06:19 +0000 (01:06 +0200)
lib/LaTeX/TikZ/Set.pm
t/20-mod.t

index 655eb2fc2470f56605a271cfb8e49caa7e700614..da636a42633ed37bd37d04d1c9126060b7a8ac39 100644 (file)
@@ -44,9 +44,9 @@ my $ltmc_tc = LaTeX::TikZ::Tools::type_constraint('LaTeX::TikZ::Mod::Clip');
 sub mod {
  my $set = shift;
 
- push @{$set->_mods},
-  map { $ltm_tc->check($_) ? $_ : $ltm_tc->coerce($_) }
  @_;
+ $ltm_tc->assert_valid($_) for @_;
+
push @{$set->_mods}, @_;
 
  $set;
 }
index a47106e3f33fdf17335c139758cd4c4ac55eb11f..50d9db866cac9d996389d610606e7b191dc590b7 100644 (file)
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 14 + 2 * 18;
+use Test::More tests => 15 + 2 * 18;
 
 use LaTeX::TikZ;
 
@@ -45,6 +45,17 @@ check $foo, 'one modded raw set', <<'RES';
 \draw [color=red] foo ;
 RES
 
+sub failed_valid {
+ my ($tc) = @_;
+ qr/Validation failed for '\Q$tc\E'/;
+}
+
+eval {
+ Tikz->raw('fail')
+     ->mod(Tikz->raw('epic'));
+};
+like $@, failed_valid('LaTeX::TikZ::Mod'), 'trying to use a non LTM mod croaks';
+
 my $width = eval {
  Tikz->width(25);
 };