#!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;