Update the bundled external perl module Text-Template to version 1.56
[oweals/openssl.git] / external / perl / Text-Template-1.56 / t / broken.t
1 #!perl
2 # test apparatus for Text::Template module
3
4 use strict;
5 use warnings;
6 use Test::More tests => 7;
7
8 use_ok 'Text::Template' or exit 1;
9
10 # (1) basic error delivery
11 {
12     my $r = Text::Template->new(
13         TYPE   => 'string',
14         SOURCE => '{1/0}',)->fill_in();
15     is $r, q{Program fragment delivered error ``Illegal division by zero at template line 1.''};
16 }
17
18 # (2) BROKEN sub called in ->new?
19 {
20     my $r = Text::Template->new(
21         TYPE   => 'string',
22         SOURCE => '{1/0}',
23         BROKEN => sub { '---' },)->fill_in();
24     is $r, q{---};
25 }
26
27 # (3) BROKEN sub called in ->fill_in?
28 {
29     my $r = Text::Template->new(
30         TYPE   => 'string',
31         SOURCE => '{1/0}',)->fill_in(BROKEN => sub { '---' });
32     is $r, q{---};
33 }
34
35 # (4) BROKEN sub passed correct args when called in ->new?
36 {
37     my $r = Text::Template->new(
38         TYPE   => 'string',
39         SOURCE => '{1/0}',
40         BROKEN => sub {
41             my %a = @_;
42             qq{$a{lineno},$a{error},$a{text}};
43         },)->fill_in();
44     is $r, qq{1,Illegal division by zero at template line 1.\n,1/0};
45 }
46
47 # (5) BROKEN sub passed correct args when called in ->fill_in?
48 {
49     my $r = Text::Template->new(
50         TYPE   => 'string',
51         SOURCE => '{1/0}',
52         )->fill_in(
53         BROKEN => sub {
54             my %a = @_;
55             qq{$a{lineno},$a{error},$a{text}};
56         });
57     is $r, qq{1,Illegal division by zero at template line 1.\n,1/0};
58 }
59
60 # BROKEN sub handles undef
61 {
62     my $r = Text::Template->new(TYPE => 'string', SOURCE => 'abc{1/0}defg')
63         ->fill_in(BROKEN => sub { undef });
64
65     is $r, 'abc';
66 }