• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!perl
2#
3# test apparatus for Text::Template module
4# still incomplete.
5
6use Text::Template 'fill_in_file', 'fill_in_string';
7
8die "This is the test program for Text::Template version 1.46.
9You are using version $Text::Template::VERSION instead.
10That does not make sense.\n
11Aborting"
12  unless $Text::Template::VERSION == 1.46;
13
14print "1..6\n";
15
16$n=1;
17$Q::n = $Q::n = 119;
18
19# (1) Test fill_in_string
20$out = fill_in_string('The value of $n is {$n}.', PACKAGE => 'Q' );
21print +($out eq 'The value of $n is 119.' ? '' : 'not '), "ok $n\n";
22$n++;
23
24# (2) Test fill_in_file
25$TEMPFILE = "tt$$";
26open F, "> $TEMPFILE" or die "Couldn't open test file: $!; aborting";
27print F 'The value of $n is {$n}.', "\n";
28close F or die "Couldn't write test file: $!; aborting";
29$R::n = $R::n = 8128;
30
31$out = fill_in_file($TEMPFILE, PACKAGE => 'R');
32print +($out eq "The value of \$n is 8128.\n" ? '' : 'not '), "ok $n\n";
33$n++;
34
35# (3) Jonathan Roy reported this bug:
36open F, "> $TEMPFILE" or die "Couldn't open test file: $!; aborting";
37print F "With a message here? [% \$var %]\n";
38close F  or die "Couldn't close test file: $!; aborting";
39$out = fill_in_file($TEMPFILE, DELIMITERS => ['[%', '%]'],
40		    HASH => { "var" => \"It is good!" });
41print +($out eq "With a message here? It is good!\n" ? '' : 'not '), "ok $n\n";
42$n++;
43
44# (4) It probably occurs in fill_this_in also:
45$out =
46  Text::Template->fill_this_in("With a message here? [% \$var %]\n",
47                      DELIMITERS => ['[%', '%]'],
48                      HASH => { "var" => \"It is good!" });
49print +($out eq "With a message here? It is good!\n" ? '' : 'not '), "ok $n\n";
50$n++;
51
52# (5) This test failed in 1.25.  It was supplied by Donald L. Greer Jr.
53# Note that it's different from (1)  in that there's no explicit
54# package=> argument.
55use vars qw($string $foo $r);
56$string='Hello {$foo}';
57$foo="Don";
58$r = fill_in_string($string);
59print (($r eq 'Hello Don' ? '' : 'not '), 'ok ', $n++, "\n");
60
61# (6) This test failed in 1.25.  It's a variation on (5)
62package Q2;
63use Text::Template 'fill_in_string';
64use vars qw($string $foo $r);
65$string='Hello {$foo}';
66$foo="Don";
67$r = fill_in_string($string);
68print (($r eq 'Hello Don' ? '' : 'not '), 'ok ', $main::n++, "\n");
69
70package main;
71
72END { $TEMPFILE && unlink $TEMPFILE }
73
74exit;
75
76