123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- #!perl
- #
- # test apparatus for Text::Template module
- # still incomplete.
- use Text::Template;
- BEGIN {
- eval "use Safe";
- if ($@) {
- print "1..0\n";
- exit 0;
- }
- }
- 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..12\n";
- $n = 1;
- $c = new Safe or die;
- # Test handling of packages and importing.
- $c->reval('$P = "safe root"');
- $P = $P = 'main';
- $Q::P = $Q::P = 'Q';
- # How to effectively test the gensymming?
- $t = new Text::Template TYPE => 'STRING', SOURCE => 'package is {$P}'
- or die;
- # (1) Default behavior: Inherit from calling package, `main' in this case.
- $text = $t->fill_in();
- print +($text eq 'package is main' ? '' : 'not '), "ok $n\n";
- $n++;
- # (2) When a package is specified, we should use that package instead.
- $text = $t->fill_in(PACKAGE => 'Q');
- print +($text eq 'package is Q' ? '' : 'not '), "ok $n\n";
- $n++;
- # (3) When no package is specified in safe mode, we should use the
- # default safe root.
- $text = $t->fill_in(SAFE => $c);
- print +($text eq 'package is safe root' ? '' : 'not '), "ok $n\n";
- $n++;
- # (4) When a package is specified in safe mode, we should use the
- # default safe root, after aliasing to the specified package
- $text = $t->fill_in(SAFE => $c, PACKAGE => Q);
- print +($text eq 'package is Q' ? '' : 'not '), "ok $n\n";
- $n++;
- # Now let's see if hash vars are installed properly into safe templates
- $t = new Text::Template TYPE => 'STRING', SOURCE => 'hash is {$H}'
- or die;
- # (5) First in default mode
- $text = $t->fill_in(HASH => {H => 'good5'} );
- print +($text eq 'hash is good5' ? '' : 'not '), "ok $n\n";
- $n++;
- # (6) Now in packages
- $text = $t->fill_in(HASH => {H => 'good6'}, PACKAGE => 'Q' );
- print +($text eq 'hash is good6' ? '' : 'not '), "ok $n\n";
- $n++;
- # (7) Now in the default root of the safe compartment
- $text = $t->fill_in(HASH => {H => 'good7'}, SAFE => $c );
- print +($text eq 'hash is good7' ? '' : 'not '), "ok $n\n";
- $n++;
- # (8) Now in the default root after aliasing to a package that
- # got the hash stuffed in
- $text = $t->fill_in(HASH => {H => 'good8'}, SAFE => $c, PACKAGE => 'Q2' );
- print +($text eq 'hash is good8' ? '' : 'not '), "ok $n\n";
- $n++;
- # Now let's make sure that none of the packages leaked on each other.
- # (9) This var should NOT have been installed into the main package
- print +(defined $H ? 'not ' : ''), "ok $n\n";
- $H=$H;
- $n++;
- # (10) good6 was overwritten in test 7, so there's nothing to test for here.
- print "ok $n\n";
- $n++;
- # (11) this value overwrote the one from test 6.
- print +($Q::H eq 'good7' ? '' : 'not '), "ok $n\n";
- $Q::H = $Q::H;
- $n++;
- # (12)
- print +($Q2::H eq 'good8' ? '' : 'not '), "ok $n\n";
- $Q2::H = $Q2::H;
- $n++;
|