12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #!perl
- #
- # Tests for STRICT features
- # These tests first appeared in version 1.48.
- use strict;
- use warnings;
- use Test::More tests => 4;
- use_ok 'Text::Template' or exit 1;
- @Emptyclass1::ISA = 'Text::Template';
- @Emptyclass2::ISA = 'Text::Template';
- my $tin = q{The value of $foo is: {$foo}};
- Text::Template->always_prepend(q{$foo = "global"});
- my $tmpl1 = Text::Template->new(
- TYPE => 'STRING',
- SOURCE => $tin);
- my $tmpl2 = Text::Template->new(
- TYPE => 'STRING',
- SOURCE => $tin,
- PREPEND => q{$foo = "template"});
- $tmpl1->compile;
- $tmpl2->compile;
- # strict should cause t1 to contain an error message if wrong variable is used in template
- my $t1 = $tmpl1->fill_in(PACKAGE => 'T1', STRICT => 1, HASH => { bar => 'baz' });
- # non-strict still works
- my $t2 = $tmpl2->fill_in(PACKAGE => 'T2', HASH => { bar => 'baz' });
- # prepend overrides the hash values
- my $t3 = $tmpl2->fill_in(
- PREPEND => q{$foo = "fillin"},
- PACKAGE => 'T3',
- STRICT => 1,
- HASH => { foo => 'hashval2' });
- like $t1, qr/Global symbol "\$foo" requires explicit package/;
- is $t2, 'The value of $foo is: template', "non-strict hash still works";
- is $t3, "The value of \$foo is: fillin", "hash values with prepend, prepend wins, even under strict.";
|