#!perl # # Tests for PREPEND features # These tests first appeared in version 1.22. use Text::Template; die "This is the test program for Text::Template version 1.46 You are using version $Text::Template::VERSION instead. That does not make sense.\n Aborting" unless $Text::Template::VERSION == 1.46; print "1..9\n"; my $n = 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"}); $tmpl1 = Text::Template->new(TYPE => 'STRING', SOURCE => $tin, ); $tmpl2 = Text::Template->new(TYPE => 'STRING', SOURCE => $tin, PREPEND => q{$foo = "template"}, ); $tmpl1->compile; $tmpl2->compile; $t1 = $tmpl1->fill_in(PACKAGE => 'T1'); $t2 = $tmpl2->fill_in(PACKAGE => 'T2'); $t3 = $tmpl2->fill_in(PREPEND => q{$foo = "fillin"}, PACKAGE => 'T3'); ($t1 eq 'The value of $foo is: global') or print "not "; print "ok $n\n"; $n++; ($t2 eq 'The value of $foo is: template') or print "not "; print "ok $n\n"; $n++; ($t3 eq 'The value of $foo is: fillin') or print "not "; print "ok $n\n"; $n++; 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'); ($t1 eq 'The value of $foo is: Emptyclass global') or print "not "; print "ok $n\n"; $n++; ($t2 eq 'The value of $foo is: template') or print "not "; print "ok $n\n"; $n++; ($t3 eq 'The value of $foo is: fillin') or print "not "; print "ok $n\n"; $n++; $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'); ($t1 eq 'The value of $foo is: global') or print "not "; print "ok $n\n"; $n++; ($t2 eq 'The value of $foo is: template') or print "not "; print "ok $n\n"; $n++; ($t3 eq 'The value of $foo is: fillin') or print "not "; print "ok $n\n"; $n++;