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<HTML::Template::new()>.
$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