1 | #!perl
|
---|
2 | # test apparatus for Text::Template module
|
---|
3 |
|
---|
4 | use Text::Template;
|
---|
5 |
|
---|
6 | print "1..5\n";
|
---|
7 |
|
---|
8 | $n=1;
|
---|
9 |
|
---|
10 | die "This is the test program for Text::Template version 1.46.
|
---|
11 | You are using version $Text::Template::VERSION instead.
|
---|
12 | That does not make sense.\n
|
---|
13 | Aborting"
|
---|
14 | unless $Text::Template::VERSION == 1.46;
|
---|
15 |
|
---|
16 | # (1) basic error delivery
|
---|
17 | { my $r = Text::Template->new(TYPE => 'string',
|
---|
18 | SOURCE => '{1/0}',
|
---|
19 | )->fill_in();
|
---|
20 | if ($r eq q{Program fragment delivered error ``Illegal division by zero at template line 1.''}) {
|
---|
21 | print "ok $n\n";
|
---|
22 | } else {
|
---|
23 | print "not ok $n\n# $r\n";
|
---|
24 | }
|
---|
25 | $n++;
|
---|
26 | }
|
---|
27 |
|
---|
28 | # (2) BROKEN sub called in ->new?
|
---|
29 | { my $r = Text::Template->new(TYPE => 'string',
|
---|
30 | SOURCE => '{1/0}',
|
---|
31 | BROKEN => sub {'---'},
|
---|
32 | )->fill_in();
|
---|
33 | if ($r eq q{---}) {
|
---|
34 | print "ok $n\n";
|
---|
35 | } else {
|
---|
36 | print "not ok $n\n# $r\n";
|
---|
37 | }
|
---|
38 | $n++;
|
---|
39 | }
|
---|
40 |
|
---|
41 | # (3) BROKEN sub called in ->fill_in?
|
---|
42 | { my $r = Text::Template->new(TYPE => 'string',
|
---|
43 | SOURCE => '{1/0}',
|
---|
44 | )->fill_in(BROKEN => sub {'---'});
|
---|
45 | if ($r eq q{---}) {
|
---|
46 | print "ok $n\n";
|
---|
47 | } else {
|
---|
48 | print "not ok $n\n# $r\n";
|
---|
49 | }
|
---|
50 | $n++;
|
---|
51 | }
|
---|
52 |
|
---|
53 | # (4) BROKEN sub passed correct args when called in ->new?
|
---|
54 | { my $r = Text::Template->new(TYPE => 'string',
|
---|
55 | SOURCE => '{1/0}',
|
---|
56 | BROKEN => sub { my %a = @_;
|
---|
57 | qq{$a{lineno},$a{error},$a{text}}
|
---|
58 | },
|
---|
59 | )->fill_in();
|
---|
60 | if ($r eq qq{1,Illegal division by zero at template line 1.\n,1/0}) {
|
---|
61 | print "ok $n\n";
|
---|
62 | } else {
|
---|
63 | print "not ok $n\n# $r\n";
|
---|
64 | }
|
---|
65 | $n++;
|
---|
66 | }
|
---|
67 |
|
---|
68 | # (5) BROKEN sub passed correct args when called in ->fill_in?
|
---|
69 | { my $r = Text::Template->new(TYPE => 'string',
|
---|
70 | SOURCE => '{1/0}',
|
---|
71 | )->fill_in(BROKEN =>
|
---|
72 | sub { my %a = @_;
|
---|
73 | qq{$a{lineno},$a{error},$a{text}}
|
---|
74 | });
|
---|
75 | if ($r eq qq{1,Illegal division by zero at template line 1.\n,1/0}) {
|
---|
76 | print "ok $n\n";
|
---|
77 | } else {
|
---|
78 | print "not ok $n\n# $r\n";
|
---|
79 | }
|
---|
80 | $n++;
|
---|
81 | }
|
---|
82 |
|
---|