1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
# please insert nothing before this line: -*- mode: cperl; cperl-indent-level: 4; cperl-continued-statement-offset: 4; indent-tabs-mode: nil -*-
package TestModperl::env;
use strict;
use warnings FATAL => 'all';
use Apache2::RequestRec ();
use APR::Table ();
use Apache::Test;
use Apache::TestUtil;
use Apache2::Const -compile => 'OK';
sub handler {
my $r = shift;
plan $r, tests => 23 + keys(%ENV);
my $env = $r->subprocess_env;
ok $ENV{MODPERL_EXTRA_PL}; #set in t/conf/modperl_extra.pl
ok $ENV{MOD_PERL};
ok $ENV{MOD_PERL_API_VERSION};
ok $ENV{SERVER_SOFTWARE};
ok $env->get('SERVER_SOFTWARE');
{
$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');
}
{
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};
skip "r->subprocess_env + local() doesnt fully work yet", 1;
#ok ! $env->get('FOO');
{
my $key = 'SERVER_SOFTWARE';
my $val = $ENV{SERVER_SOFTWARE};
ok $val;
ok t_cmp $env->get($key), $val, '$r->subprocess_env->get($key)';
ok t_cmp $r->subprocess_env($key), $val, '$r->subprocess_env($key)';
$val = 'BAR';
$r->subprocess_env($key => $val);
ok t_cmp $r->subprocess_env($key), $val,
'$r->subprocess_env($key => $val)';
}
# make sure each key can be deleted
for my $key (sort keys %ENV) {
eval { delete $ENV{$key}; };
ok t_cmp($@, '', $key);
}
Apache2::Const::OK;
}
1;
__END__
SetHandler perl-script
|