blob: 6d1b47948ac09ba88d46581ef6f54d5a03b963fd [file] [log] [blame]
use strict;
use warnings FATAL => 'all';
# testing $r->status/status_line
use Apache::Test;
use Apache::TestUtil;
use Apache::TestRequest;
plan tests => 6;
my $location = "/TestAPI__status";
{
# test a valid HTTP/1.1 status code (303). In this test
# the handler returns OK, but sets a custom status. Apache will
# lookup the message "See Other" on its own
my $code = 303; # Apache2::Const::HTTP_SEE_OTHER
my $message = "See Other";
my $res = GET "$location?$code=";
ok t_cmp $res->code, $code, "code";
ok t_cmp $res->message, $message, "code message";
ok t_cmp $res->content, "", "content";
}
{
# test a non-existing HTTP/1.1 status code (499). In this test
# the handler returns OK, but sets a custom status_line.
# it also tries to set status (to a different value), but it
# should be ignored by Apache, since status_line is supposed to
# override status. the handler also sets a custom code message
# modules/http/http_filters.c r372958
# httpd 'zaps' the status_line if it doesn't match the status
# as of 2.2.1 (not released) so 2.2.2 (released)
my $code = 499; # not in HTTP/1.1
my $message = "FooBared";
my $res = GET "$location?$code=$message";
ok t_cmp $res->code, $code, "code";
ok t_cmp $res->message, $message, "code message";
ok t_cmp $res->content, "", "content";
}