eval { require PerlIO::scalar };
plan skip_all => "PerlIO required (perl 5.8) to test PLP" if $@;
-plan tests => 21;
+plan tests => 24;
require_ok('PLP::Backend::CGI') or BAIL_OUT();
open ORGOUT, '>&', *STDOUT;
sub plp_is {
- my ($test, $src, $expect, $env) = @_;
+ my ($test, $src, $expect, $env, $in) = @_;
local $Test::Builder::Level = $Test::Builder::Level + 1;
%ENV = (
$env ? %{$env} : (),
); # Apache/2.2.4 CGI environment
+ if (defined $in) {
+ $ENV{CONTENT_LENGTH} = length $in;
+ $ENV{CONTENT_TYPE} = 'application/x-www-form-urlencoded';
+ close STDIN;
+ open STDIN, '<', $in;
+ }
+
close STDOUT;
open STDOUT, '>', \my $output; # STDOUT buffered to scalar
select STDOUT; # output before start() (which selects PLPOUT)
(my $name = $file) =~ s/[.][^.]+$//;
$file = "$name.html";
my $infile = delete $replace{-input} // "$name.plp";
+ my $addin = -e "$name.txt" && "$name.txt";
$name =~ s/^(\d*)-// and $name .= " ($1)";
my $out = eval {
<eval \s+ line="([^"]*)"> (.*?) </eval>
}{ getwarning($2, $1, $infile) }msxge;
- plp_is($name, $infile, $out, $env);
+ plp_is($name, $infile, $out, $env, $addin);
}
# 0*: permission checks using generated dummy files
# 4*-7*: apache environment (default)
plp_ok($_) for glob '[4-7]*.html';
-#TODO: %post
#TODO: %fields
#TODO: %cookie