1#!perl 2# 3# test apparatus for Text::Template module 4# still incomplete. 5 6use strict; 7use warnings; 8use Test::More tests => 7; 9use File::Temp; 10 11use_ok 'Text::Template' or exit 1; 12 13my $tfh = File::Temp->new; 14 15Text::Template->import('fill_in_file', 'fill_in_string'); 16 17$Q::n = $Q::n = 119; 18 19# (1) Test fill_in_string 20my $out = fill_in_string('The value of $n is {$n}.', PACKAGE => 'Q'); 21is $out, 'The value of $n is 119.'; 22 23# (2) Test fill_in_file 24my $TEMPFILE = $tfh->filename; 25 26print $tfh 'The value of $n is {$n}.', "\n"; 27close $tfh or die "Couldn't write test file: $!; aborting"; 28 29$R::n = $R::n = 8128; 30 31$out = fill_in_file($TEMPFILE, PACKAGE => 'R'); 32is $out, "The value of \$n is 8128.\n"; 33 34# (3) Jonathan Roy reported this bug: 35open my $ofh, '>', $TEMPFILE or die "Couldn't open test file: $!; aborting"; 36print $ofh "With a message here? [% \$var %]\n"; 37close $ofh or die "Couldn't close test file: $!; aborting"; 38$out = fill_in_file($TEMPFILE, 39 DELIMITERS => [ '[%', '%]' ], 40 HASH => { "var" => \"It is good!" }); 41is $out, "With a message here? It is good!\n"; 42 43# (4) It probably occurs in fill_this_in also: 44$out = Text::Template->fill_this_in("With a message here? [% \$var %]\n", 45 DELIMITERS => [ '[%', '%]' ], 46 HASH => { "var" => \"It is good!" }); 47is $out, "With a message here? It is good!\n"; 48 49# (5) This test failed in 1.25. It was supplied by Donald L. Greer Jr. 50# Note that it's different from (1) in that there's no explicit 51# package=> argument. 52use vars qw($string $foo $r); 53$string = 'Hello {$foo}'; 54$foo = "Don"; 55$r = fill_in_string($string); 56is $r, 'Hello Don'; 57 58# (6) This test failed in 1.25. It's a variation on (5) 59package Q2; 60use Text::Template 'fill_in_string'; 61use vars qw($string $foo $r); 62$string = 'Hello {$foo}'; 63$foo = "Don"; 64$r = fill_in_string($string); 65 66package main; 67 68is $Q2::r, 'Hello Don'; 69