| #!perl |
| # |
| # Tests for PREPEND features |
| # These tests first appeared in version 1.22. |
| |
| use strict; |
| use warnings; |
| use Test::More tests => 10; |
| |
| 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; |
| |
| my $t1 = $tmpl1->fill_in(PACKAGE => 'T1'); |
| my $t2 = $tmpl2->fill_in(PACKAGE => 'T2'); |
| my $t3 = $tmpl2->fill_in(PREPEND => q{$foo = "fillin"}, PACKAGE => 'T3'); |
| |
| is $t1, 'The value of $foo is: global'; |
| is $t2, 'The value of $foo is: template'; |
| is $t3, 'The value of $foo is: fillin'; |
| |
| Emptyclass1->always_prepend(q{$foo = 'Emptyclass global';}); |
| $tmpl1 = Emptyclass1->new( |
| TYPE => 'STRING', |
| SOURCE => $tin); |
| |
| $tmpl2 = Emptyclass1->new( |
| TYPE => 'STRING', |
| SOURCE => $tin, |
| PREPEND => q{$foo = "template"}); |
| |
| $tmpl1->compile; |
| $tmpl2->compile; |
| |
| $t1 = $tmpl1->fill_in(PACKAGE => 'T4'); |
| $t2 = $tmpl2->fill_in(PACKAGE => 'T5'); |
| $t3 = $tmpl2->fill_in(PREPEND => q{$foo = "fillin"}, PACKAGE => 'T6'); |
| |
| is $t1, 'The value of $foo is: Emptyclass global'; |
| is $t2, 'The value of $foo is: template'; |
| is $t3, 'The value of $foo is: fillin'; |
| |
| $tmpl1 = Emptyclass2->new( |
| TYPE => 'STRING', |
| SOURCE => $tin); |
| |
| $tmpl2 = Emptyclass2->new( |
| TYPE => 'STRING', |
| SOURCE => $tin, |
| PREPEND => q{$foo = "template"}); |
| |
| $tmpl1->compile; |
| $tmpl2->compile; |
| |
| $t1 = $tmpl1->fill_in(PACKAGE => 'T4'); |
| $t2 = $tmpl2->fill_in(PACKAGE => 'T5'); |
| $t3 = $tmpl2->fill_in(PREPEND => q{$foo = "fillin"}, PACKAGE => 'T6'); |
| |
| is $t1, 'The value of $foo is: global'; |
| is $t2, 'The value of $foo is: template'; |
| is $t3, 'The value of $foo is: fillin'; |