dougm 01/11/14 19:03:22
Added: t/response/TestModperl env.pm
Log:
add test for tie of %ENV to r->subprocess_env
Revision Changes Path
1.1 modperl-2.0/t/response/TestModperl/env.pm
Index: env.pm
===================================================================
package TestModperl::env;
use strict;
use warnings FATAL => 'all';
use Apache::Test;
use Apache::Const -compile => 'OK';
sub handler {
my $r = shift;
plan $r, tests => 20;
my $env = $r->subprocess_env;
ok $ENV{MODPERL_EXTRA_PL}; #set in t/conf/modperl_extra.pl
ok $ENV{MOD_PERL};
$ENV{FOO} = 2;
ok $ENV{FOO} == 2;
ok $env->get('FOO') == 2;
$ENV{FOO}++;
ok $ENV{FOO} == 3;
ok $env->get('FOO') == 3;
$ENV{FOO} .= 6;
ok $ENV{FOO} == 36;
ok $env->get('FOO') == 36;
delete $ENV{FOO};
ok ! $ENV{FOO};
ok ! $env->get('FOO');
ok $ENV{SERVER_SOFTWARE};
ok $env->get('SERVER_SOFTWARE');
{
local %ENV = (FOO => 1, BAR => 2);
ok $ENV{FOO} == 1;
ok $env->get('FOO') == 1;
ok ! $ENV{SERVER_SOFTWARE};
ok ! $env->get('SERVER_SOFTWARE');
}
ok ! $ENV{FOO};
#ok ! $env->get('FOO');
#XXX: keys in the original subprocess_env are restored
# but new ones added to the local %ENV are not removed
# after the local %ENV goes out of scope
#skip "r->subprocess_env + local() doesnt fully work yet", 1;
ok 1; #the skip() message is just annoying
ok $ENV{SERVER_SOFTWARE};
ok $env->get('SERVER_SOFTWARE');
Apache::OK;
}
1;
__END__
SetHandler perl-script