summaryrefslogtreecommitdiffstats
path: root/debian/perl-framework/t/modules/allowmethods.t
diff options
context:
space:
mode:
Diffstat (limited to 'debian/perl-framework/t/modules/allowmethods.t')
-rw-r--r--debian/perl-framework/t/modules/allowmethods.t64
1 files changed, 64 insertions, 0 deletions
diff --git a/debian/perl-framework/t/modules/allowmethods.t b/debian/perl-framework/t/modules/allowmethods.t
new file mode 100644
index 0000000..d012554
--- /dev/null
+++ b/debian/perl-framework/t/modules/allowmethods.t
@@ -0,0 +1,64 @@
+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");
+}
+