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"
}
}
|