| #!perl |
| # |
| # test apparatus for Text::Template module |
| # still incomplete. |
| |
| use Text::Template 'fill_in_file', 'fill_in_string'; |
| |
| 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; |
| |
| print "1..6\n"; |
| |
| $n=1; |
| $Q::n = $Q::n = 119; |
| |
| # (1) Test fill_in_string |
| $out = fill_in_string('The value of $n is {$n}.', PACKAGE => 'Q' ); |
| print +($out eq 'The value of $n is 119.' ? '' : 'not '), "ok $n\n"; |
| $n++; |
| |
| # (2) Test fill_in_file |
| $TEMPFILE = "tt$$"; |
| open F, "> $TEMPFILE" or die "Couldn't open test file: $!; aborting"; |
| print F 'The value of $n is {$n}.', "\n"; |
| close F or die "Couldn't write test file: $!; aborting"; |
| $R::n = $R::n = 8128; |
| |
| $out = fill_in_file($TEMPFILE, PACKAGE => 'R'); |
| print +($out eq "The value of \$n is 8128.\n" ? '' : 'not '), "ok $n\n"; |
| $n++; |
| |
| # (3) Jonathan Roy reported this bug: |
| open F, "> $TEMPFILE" or die "Couldn't open test file: $!; aborting"; |
| print F "With a message here? [% \$var %]\n"; |
| close F or die "Couldn't close test file: $!; aborting"; |
| $out = fill_in_file($TEMPFILE, DELIMITERS => ['[%', '%]'], |
| HASH => { "var" => \"It is good!" }); |
| print +($out eq "With a message here? It is good!\n" ? '' : 'not '), "ok $n\n"; |
| $n++; |
| |
| # (4) It probably occurs in fill_this_in also: |
| $out = |
| Text::Template->fill_this_in("With a message here? [% \$var %]\n", |
| DELIMITERS => ['[%', '%]'], |
| HASH => { "var" => \"It is good!" }); |
| print +($out eq "With a message here? It is good!\n" ? '' : 'not '), "ok $n\n"; |
| $n++; |
| |
| # (5) This test failed in 1.25. It was supplied by Donald L. Greer Jr. |
| # Note that it's different from (1) in that there's no explicit |
| # package=> argument. |
| use vars qw($string $foo $r); |
| $string='Hello {$foo}'; |
| $foo="Don"; |
| $r = fill_in_string($string); |
| print (($r eq 'Hello Don' ? '' : 'not '), 'ok ', $n++, "\n"); |
| |
| # (6) This test failed in 1.25. It's a variation on (5) |
| package Q2; |
| use Text::Template 'fill_in_string'; |
| use vars qw($string $foo $r); |
| $string='Hello {$foo}'; |
| $foo="Don"; |
| $r = fill_in_string($string); |
| print (($r eq 'Hello Don' ? '' : 'not '), 'ok ', $main::n++, "\n"); |
| |
| package main; |
| |
| END { $TEMPFILE && unlink $TEMPFILE } |
| |
| exit; |
| |