File: cookie2.t

package info (click to toggle)
libapache2-mod-perl2 2.0.13-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 12,016 kB
  • sloc: perl: 97,771; ansic: 14,493; makefile: 51; sh: 18
file content (44 lines) | stat: -rw-r--r-- 1,291 bytes parent folder | download | duplicates (7)
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
# please insert nothing before this line: -*- mode: cperl; cperl-indent-level: 4; cperl-continued-statement-offset: 4; indent-tabs-mode: nil -*-
use strict;
use warnings FATAL => 'all';

# The Cookie HTTP header can be accessed via $r->headers_in and in certain
# situations via $ENV{HTTP_COOKIE}.
#
# in this test we shouldn't be able get the cookie via %ENV,
# since 'SetHandler modperl' doesn't set up CGI env var. unless the
# handler calls "$r->subprocess_env" by itself
#
# since the test is run against the same interpreter we also test that
# the cookie value doesn't persist if it makes it to %ENV.

use Apache::Test;
use Apache::TestUtil;
use Apache::TestRequest;
Apache::TestRequest::user_agent(keep_alive => 1);

plan tests => 3, need 'HTML::HeadParser';

my $module   = 'TestModperl::cookie2';
my $location = '/' . Apache::TestRequest::module2path($module);

my %expected =
(
    header         => "header",
    subprocess_env => "subprocess_env",
    env            => '',
);

my @tests_ordered = qw(header subprocess_env env);

for my $test (@tests_ordered) {
    my $cookie = "key=$test";

    my $received = GET "$location?$test", Cookie => $cookie;

    ok t_cmp(
        $received->content,
        $expected{$test},
        "perl-script+SetupEnv/cookie: $test",
    );
}