123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- #!perl
- # test apparatus for Text::Template module
- use strict;
- use warnings;
- use Test::More tests => 7;
- use_ok 'Text::Template' or exit 1;
- # (1) basic error delivery
- {
- my $r = Text::Template->new(
- TYPE => 'string',
- SOURCE => '{1/0}',)->fill_in();
- is $r, q{Program fragment delivered error ``Illegal division by zero at template line 1.''};
- }
- # (2) BROKEN sub called in ->new?
- {
- my $r = Text::Template->new(
- TYPE => 'string',
- SOURCE => '{1/0}',
- BROKEN => sub { '---' },)->fill_in();
- is $r, q{---};
- }
- # (3) BROKEN sub called in ->fill_in?
- {
- my $r = Text::Template->new(
- TYPE => 'string',
- SOURCE => '{1/0}',)->fill_in(BROKEN => sub { '---' });
- is $r, q{---};
- }
- # (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();
- is $r, qq{1,Illegal division by zero at template line 1.\n,1/0};
- }
- # (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}};
- });
- is $r, qq{1,Illegal division by zero at template line 1.\n,1/0};
- }
- # BROKEN sub handles undef
- {
- my $r = Text::Template->new(TYPE => 'string', SOURCE => 'abc{1/0}defg')
- ->fill_in(BROKEN => sub { undef });
- is $r, 'abc';
- }
|