64 lines
1.4 KiB
Perl
64 lines
1.4 KiB
Perl
use strict;
|
|
use warnings FATAL => 'all';
|
|
|
|
use Apache::Test;
|
|
use Apache::TestRequest;
|
|
use Apache::TestUtil;
|
|
|
|
my $r;
|
|
my $get = "Get";
|
|
my $head = "Head";
|
|
my $post = "Post";
|
|
my $options = "Options";
|
|
|
|
##
|
|
## mod_allowmethods test
|
|
##
|
|
my @test_cases = (
|
|
[ $get, $get, 200 ],
|
|
[ $head, $get, 200 ],
|
|
[ $post, $get, 405 ],
|
|
[ $get, $head, 200 ],
|
|
[ $head, $head, 200 ],
|
|
[ $post, $head, 405 ],
|
|
[ $get, $post, 405 ],
|
|
[ $head, $post, 405 ],
|
|
[ $post, $post, 200 ],
|
|
);
|
|
|
|
my @new_test_cases = (
|
|
[ $get, $post . '/reset', 200 ],
|
|
[ $post, $get . '/post', 200 ],
|
|
[ $get, $get . '/post', 200 ],
|
|
[ $options, $get . '/post', 405 ],
|
|
[ $get, $get . '/none', 405 ],
|
|
[ $get, "NoPost", 200 ],
|
|
[ $post, "NoPost", 405 ],
|
|
[ $options, "NoPost" , 200 ],
|
|
);
|
|
|
|
if (have_min_apache_version('2.5.1')) {
|
|
push(@test_cases, @new_test_cases);
|
|
}
|
|
|
|
plan tests => (scalar @test_cases), have_module 'allowmethods';
|
|
|
|
foreach my $case (@test_cases) {
|
|
my ($fct, $allowed, $rc) = @{$case};
|
|
|
|
if ($fct eq $get) {
|
|
$r = GET('/modules/allowmethods/' . $allowed . '/');
|
|
}
|
|
elsif ($fct eq $head) {
|
|
$r = HEAD('/modules/allowmethods/' . $allowed . '/');
|
|
}
|
|
elsif ($fct eq $post) {
|
|
$r = POST('/modules/allowmethods/' . $allowed . '/foo.txt');
|
|
}
|
|
elsif ($fct eq $options) {
|
|
$r = OPTIONS('/modules/allowmethods/' . $allowed . '/');
|
|
}
|
|
|
|
ok t_cmp($r->code, $rc, "$fct request to /$allowed responds $rc");
|
|
}
|
|
|