stas 2003/08/06 00:30:31
Added: ModPerl-Registry/t 304.t
ModPerl-Registry/t/cgi-bin 304.pl
Log:
304 registry tests
Revision Changes Path
1.1 modperl-2.0/ModPerl-Registry/t/304.t
Index: 304.t
===================================================================
use strict;
use warnings FATAL => 'all';
use Apache::Test;
use Apache::TestUtil;
use Apache::TestRequest qw(GET);
plan tests => 4;
my $url = "/registry/304.pl";
{
# not modified
my $if_modified_since = 'Sun, 29 Oct 2000 15:55:00 GMT';
my $res = GET($url, 'If-Modified-Since' => $if_modified_since);
ok t_cmp(
304,
$res->code,
"test HTTP_NOT_MODIFIED (304 status)",
);
ok t_cmp(
'',
$res->content,
"test HTTP_NOT_MODIFIED (null body)",
);
#t_debug $res->as_string;
}
{
# modified
my $if_modified_since = 'Sun, 29 Oct 2000 15:43:28 GMT';
my $res = GET($url, 'If-Modified-Since' => $if_modified_since);
ok t_cmp(
200,
$res->code,
"test !HTTP_NOT_MODIFIED (200 status)",
);
ok t_cmp(
'<html><head></head><body>Test</body></html>',
$res->content,
"test !HTTP_NOT_MODIFIED (normal body)",
);
#t_debug $res->as_string;
}
1.1 modperl-2.0/ModPerl-Registry/t/cgi-bin/304.pl
Index: 304.pl
===================================================================
use APR::Date ();
use Apache::Util ();
use Apache::RequestRec ();
use strict;
use warnings FATAL => 'all';
use constant FMT => '%a, %d %b %Y %H:%M:%S %Z';
use constant GMT => 1;
my $last_modified = "Sun, 29 Oct 2000 15:43:29 GMT";
my $r = shift;
my $date = Apache::Util::format_time($r->request_time, FMT, GMT, $r->pool);
my $if_modified_since = $r->headers_in->{'If-Modified-Since'};
my $status = 200;
my $body = '<html><head></head><body>Test</body></html>';
if ($if_modified_since && APR::Date::parse_http($last_modified)
< APR::Date::parse_http($if_modified_since)) {
$status = 304;
$body = '';
}
print <<HEADERS;
Status: $status
Date: $date
Server: Apache/2.0.47
Connection: close
Last-Modified: $last_modified
Content-Type: text/html; charset=iso-8859-1
HEADERS
print $body if length $body;