1218585Sjkim#!perl 2218585Sjkim# 3218585Sjkim# Tests for PREPROCESSOR features 4218585Sjkim# These tests first appeared in version 1.25. 5218585Sjkim 6218585Sjkimuse strict; 7218585Sjkimuse warnings; 8245582Sjkimuse Test::More tests => 9; 9218585Sjkimuse File::Temp; 10218585Sjkim 11218585Sjkimuse_ok 'Text::Template::Preprocess' or exit 1; 12218585Sjkim 13218585Sjkimmy $tmpfile = File::Temp->new; 14218585Sjkimmy $TMPFILE = $tmpfile->filename; 15218585Sjkim 16218585Sjkimmy $py = sub { tr/x/y/ }; 17218585Sjkimmy $pz = sub { tr/x/z/ }; 18218585Sjkim 19218585Sjkimmy $t = 'xxx The value of $x is {$x}'; 20218585Sjkimmy $outx = 'xxx The value of $x is 119'; 21218585Sjkimmy $outy = 'yyy The value of $y is 23'; 22218585Sjkimmy $outz = 'zzz The value of $z is 5'; 23218585Sjkimopen my $tfh, '>', $TMPFILE or die "Couldn't open test file: $!; aborting"; 24218585Sjkimprint $tfh $t; 25218585Sjkimclose $tfh; 26218585Sjkim 27218585Sjkimmy @result = ($outx, $outy, $outz, $outz); 28218585Sjkimfor my $trial (1, 0) { 29218585Sjkim for my $test (0 .. 3) { 30218585Sjkim my $tmpl; 31218585Sjkim if ($trial == 0) { 32218585Sjkim $tmpl = Text::Template::Preprocess->new(TYPE => 'STRING', SOURCE => $t) or die; 33218585Sjkim } 34218585Sjkim else { 35218585Sjkim open $tfh, '<', $TMPFILE or die "Couldn't open test file: $!; aborting"; 36218585Sjkim $tmpl = Text::Template::Preprocess->new(TYPE => 'FILEHANDLE', SOURCE => $tfh) or die; 37218585Sjkim } 38218585Sjkim $tmpl->preprocessor($py) if ($test & 1) == 1; 39218585Sjkim my @args = ((($test & 2) == 2) ? (PREPROCESSOR => $pz) : ()); 40218585Sjkim my $o = $tmpl->fill_in(@args, HASH => { x => 119, 'y' => 23, z => 5 }); 41218585Sjkim is $o, $result[$test]; 42218585Sjkim } 43218585Sjkim} 44218585Sjkim