summaryrefslogtreecommitdiffstats
path: root/debian/perl-framework/t/modules/lua.t
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--debian/perl-framework/t/modules/lua.t81
1 files changed, 81 insertions, 0 deletions
diff --git a/debian/perl-framework/t/modules/lua.t b/debian/perl-framework/t/modules/lua.t
new file mode 100644
index 0000000..9e6836d
--- /dev/null
+++ b/debian/perl-framework/t/modules/lua.t
@@ -0,0 +1,81 @@
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+use Apache::TestRequest;
+use Apache::TestUtil;
+use Apache::TestConfig ();
+
+my $config = Apache::Test::config();
+my $server = $config->server;
+my $version = $server->{version};
+my $scheme = Apache::Test::vars()->{scheme};
+my $hostport = Apache::TestRequest::hostport();
+
+my $https = "nope";
+$https = "yep" if $scheme eq "https";
+
+my $pfx = "/modules/lua";
+
+my @ts = (
+ { url => "$pfx/hello.lua", rcontent => "Hello Lua World!\n",
+ ctype => "text/plain" },
+ { url => "$pfx/404?translateme=1", rcontent => "Hello Lua World!\n" },
+
+ { url => "$pfx/translate-inherit-before/404?translateme=1", rcontent => "other lua handler\n" },
+ { url => "$pfx/translate-inherit-default-before/404?translateme=1", rcontent => "other lua handler\n" },
+ { url => "$pfx/translate-inherit-after/404?translateme=1", rcontent => "Hello Lua World!\n" },
+
+ { url => "$pfx/translate-inherit-before/404?translateme=1&ok=1", rcontent => "other lua handler\n" },
+ { url => "$pfx/translate-inherit-default-before/404?translateme=1&ok=1", rcontent => "other lua handler\n" },
+ # the more specific translate_name handler will run first and return OK.
+ { url => "$pfx/translate-inherit-after/404?translateme=1&ok=1", rcontent => "other lua handler\n" },
+
+ { url => "$pfx/version.lua", rcontent => qr(^$version) },
+ { url => "$pfx/method.lua", rcontent => "GET" },
+ { url => "$pfx/201.lua", rcontent => "", code => 201 },
+ { url => "$pfx/https.lua", rcontent => $https },
+ { url => "$pfx/setheaders.lua", rcontent => "",
+ headers => { "X-Header" => "yes",
+ "X-Host" => $hostport } },
+ { url => "$pfx/setheaderfromparam.lua?HeaderName=foo&HeaderValue=bar",
+ rcontent => "Header set",
+ headers => { "foo" => "bar" } },
+ { url => "$pfx/filtered/foobar.html",
+ rcontent => "prefix\nbucket:foobar\nsuffix\n" },
+);
+
+plan tests => 4 * scalar @ts, need 'lua';
+
+for my $t (@ts) {
+ my $url = $t->{"url"};
+ my $r = GET $url;
+ my $code = $t->{"code"} || 200;
+ my $headers = $t->{"headers"};
+
+ ok t_cmp($r->code, $code, "code for $url");
+ ok t_cmp($r->content, $t->{"rcontent"}, "response content for $url");
+
+ if ($t->{"ctype"}) {
+ ok t_cmp($r->header("Content-Type"), $t->{"ctype"}, "c-type for $url");
+ }
+ else {
+ skip 1;
+ }
+
+ if ($headers) {
+ my $correct = 1;
+ while (my ($name, $value) = each %{$headers}) {
+ my $actual = $r->header($name) || "<unset>";
+ t_debug "'$name' header value is '$actual' (expected '$value')";
+
+ if ($actual ne $value) {
+ $correct = 0;
+ }
+ }
+ ok $correct;
+ }
+ else {
+ skip 1;
+ }
+}