use strict; use warnings; use Test::More # qw(no_plan); tests => 5; BEGIN { use_ok('HTML::Template'); } my ($fh, $template_string, @template_array); my ($typetemplate, $stemplate, $atemplate, $fhtemplate); my ($output); open $fh, 'templates/simple.tmpl' or die "Couldn't open simple.tmpl for reading: $!"; { local $/; $template_string = <$fh>; seek $fh, 0, 0; } @template_array = <$fh>; seek $fh, 0, 0; # next is same as at t/99-old-test-pl.t line 48 $typetemplate = HTML::Template->new( type => 'filename', path => 'templates', source => 'simple.tmpl', debug => 0 ); # next 3 HTML::Template objects are same as above, only testing each # variant of the 'type' option $stemplate = HTML::Template->new( type => 'scalarref', source => \$template_string, debug => 0, ); $atemplate = HTML::Template->new( type => 'arrayref', source => \@template_array, debug => 0, ); $fhtemplate = HTML::Template->new( type => 'filehandle', source => $fh, debug => 0, ); for my $tmpl ( $typetemplate, $stemplate, $atemplate, $fhtemplate, ) { $tmpl->param('ADJECTIVE', 'very'); $output = $tmpl->output; ok( ($output !~ /ADJECTIVE/ and $tmpl->param('ADJECTIVE') eq 'very'), "'type-source' version of constructor functioning properly"); } =head1 NAME t/04-type-source.t =head1 OBJECTIVE Test the 'type-source' style of constructor C. $stemplate = HTML::Template->new( type => 'scalarref', source => \$template_string, ); $atemplate = HTML::Template->new( type => 'arrayref', source => \@template_array, ); $fhtemplate = HTML::Template->new( type => 'filehandle', source => $fh, ); =cut