File: errordoc.t

package info (click to toggle)
apache2 2.4.66-5
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 59,500 kB
  • sloc: ansic: 212,331; python: 13,830; perl: 11,307; sh: 7,258; php: 1,320; javascript: 1,314; awk: 749; makefile: 715; lex: 374; yacc: 161; xml: 2
file content (139 lines) | stat: -rw-r--r-- 3,320 bytes parent folder | download | duplicates (4)
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
use strict;
use warnings FATAL => 'all';

use Apache::Test;
use Apache::TestRequest;
use Apache::TestUtil;

Apache::TestRequest::module('error_document');

plan tests => 17, need_lwp;

# basic ErrorDocument tests

{
    my $response = GET '/notfound.html';
    chomp(my $content = $response->content);

    ok t_cmp($response->code,
             404,
             'notfound.html code');

    ok t_cmp($content,
             qr'per-server 404',
             'notfound.html content');
}

{
    my $response = GET '/inherit/notfound.html';
    chomp(my $content = $response->content);

    ok t_cmp($response->code,
             404,
             '/inherit/notfound.html code');

    ok t_cmp($content,
             qr'per-server 404',
             '/inherit/notfound.html content');
}

{
    my $response = GET '/redefine/notfound.html';
    chomp(my $content = $response->content);

    ok t_cmp($response->code,
             404,
             '/redefine/notfound.html code');

    ok t_cmp($content,
             'per-dir 404',
             '/redefine/notfound.html content');
}

{
    my $response = GET '/restore/notfound.html';
    chomp(my $content = $response->content);

    ok t_cmp($response->code,
             404,
             '/redefine/notfound.html code');

    # 1.3 requires quotes for hard-coded messages
    my $expected = have_min_apache_version('2.0.51') ? qr/Not Found/ :
                   have_apache(2)                    ? 'default'     : 
                   qr/Additionally, a 500/;

    ok t_cmp($content,
             $expected,
             '/redefine/notfound.html content');
}

{
    my $response = GET '/apache/notfound.html';
    chomp(my $content = $response->content);

    ok t_cmp($response->code,
             404,
             '/merge/notfound.html code');

    ok t_cmp($content,
             'testing merge',
             '/merge/notfound.html content');
}

{
    my $response = GET '/apache/etag/notfound.html';
    chomp(my $content = $response->content);

    ok t_cmp($response->code,
             404,
             '/merge/merge2/notfound.html code');

    ok t_cmp($content,
             'testing merge',
             '/merge/merge2/notfound.html content');
}

{
    my $response = GET '/bounce/notfound.html';
    chomp(my $content = $response->content);

    ok t_cmp($response->code,
             404,
             '/bounce/notfound.html code');

    ok t_cmp($content,
             qr!expire test!,
             '/bounce/notfound.html content');
}

{
    my $l = Apache::TestRequest::resolve_url('/trace/notallowed.html');
    my $req = HTTP::Request->new('TRACE', $l);
    my $ua = LWP::UserAgent->new();
    my $response = $ua->request($req);
    chomp(my $content = $response->content);

    ok t_cmp($response->code,
             405,
             '/trace/notallowed.html code');

    if (need_min_apache_version("2.5.1")) {
        ok t_cmp($content,
                 qr!The requested method TRACE is not allowed for this URL.!,
                 '/trace/notallowed.html content');
    }
    else {
        skip "Skipping test"
    }

    if (need_min_apache_version("2.5.1")) {
        ok t_cmp($content,
                 qr!Additionally, a 404 Not Found!,
                 '/trace/notallowed.html content');
    }
    else {
        skip "Skipping test"
    }

}