81 lines
2.8 KiB
Perl
81 lines
2.8 KiB
Perl
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;
|
|
}
|
|
}
|