| #!perl |
| # test apparatus for Text::Template module |
| |
| use Text::Template; |
| |
| print "1..5\n"; |
| |
| $n=1; |
| |
| die "This is the test program for Text::Template version 1.46. |
| You are using version $Text::Template::VERSION instead. |
| That does not make sense.\n |
| Aborting" |
| unless $Text::Template::VERSION == 1.46; |
| |
| # (1) basic error delivery |
| { my $r = Text::Template->new(TYPE => 'string', |
| SOURCE => '{1/0}', |
| )->fill_in(); |
| if ($r eq q{Program fragment delivered error ``Illegal division by zero at template line 1.''}) { |
| print "ok $n\n"; |
| } else { |
| print "not ok $n\n# $r\n"; |
| } |
| $n++; |
| } |
| |
| # (2) BROKEN sub called in ->new? |
| { my $r = Text::Template->new(TYPE => 'string', |
| SOURCE => '{1/0}', |
| BROKEN => sub {'---'}, |
| )->fill_in(); |
| if ($r eq q{---}) { |
| print "ok $n\n"; |
| } else { |
| print "not ok $n\n# $r\n"; |
| } |
| $n++; |
| } |
| |
| # (3) BROKEN sub called in ->fill_in? |
| { my $r = Text::Template->new(TYPE => 'string', |
| SOURCE => '{1/0}', |
| )->fill_in(BROKEN => sub {'---'}); |
| if ($r eq q{---}) { |
| print "ok $n\n"; |
| } else { |
| print "not ok $n\n# $r\n"; |
| } |
| $n++; |
| } |
| |
| # (4) BROKEN sub passed correct args when called in ->new? |
| { my $r = Text::Template->new(TYPE => 'string', |
| SOURCE => '{1/0}', |
| BROKEN => sub { my %a = @_; |
| qq{$a{lineno},$a{error},$a{text}} |
| }, |
| )->fill_in(); |
| if ($r eq qq{1,Illegal division by zero at template line 1.\n,1/0}) { |
| print "ok $n\n"; |
| } else { |
| print "not ok $n\n# $r\n"; |
| } |
| $n++; |
| } |
| |
| # (5) BROKEN sub passed correct args when called in ->fill_in? |
| { my $r = Text::Template->new(TYPE => 'string', |
| SOURCE => '{1/0}', |
| )->fill_in(BROKEN => |
| sub { my %a = @_; |
| qq{$a{lineno},$a{error},$a{text}} |
| }); |
| if ($r eq qq{1,Illegal division by zero at template line 1.\n,1/0}) { |
| print "ok $n\n"; |
| } else { |
| print "not ok $n\n# $r\n"; |
| } |
| $n++; |
| } |
| |