stas 2004/08/01 17:36:43
Added: t/apache head_request.t
t/response/TestApache head_request.pm
Log:
testing nuances of the HEAD request (e.g. when C-L header makes it through)
Revision Changes Path
1.1 modperl-2.0/t/apache/head_request.t
Index: head_request.t
===================================================================
use strict;
use warnings FATAL => 'all';
# testing nuances of the HEAD request (e.g. when C-L header makes it
# through)
use Apache::Test;
use Apache::TestUtil;
use Apache::TestRequest;
plan tests => 12;
my $location = "/TestApache__head_request";
{
# if the response handler sends no data, and sets no C-L header,
# the client doesn't get C-L header
my $res = HEAD "$location";
ok t_cmp $res->code, 200, "code";
ok t_cmp $res->header('Content-Length'), undef, "C-L header";
ok t_cmp $res->content, "", "content";
}
{
# if the response handler sends no data, and sets C-L header,
# the client doesn't get C-L header
my $res = HEAD "$location?set_content_length";
ok t_cmp $res->code, 200, "code";
ok t_cmp $res->header('Content-Length'), undef, "C-L header";
ok t_cmp $res->content, "", "content";
t_debug $res->as_string;
}
{
# if the response handler sends data, and sets no C-L header,
# the client doesn't get C-L header
my $res = HEAD "$location?send_body";
ok t_cmp $res->code, 200, "code";
ok t_cmp $res->header('Content-Length'), undef, "C-L header";
ok t_cmp $res->content, "", "content";
t_debug $res->as_string;
}
{
# if the response handler sends data (e.g. one char string), and
# sets C-L header, the client gets the C-L header
my $res = HEAD "$location?send_body+set_content_length";
ok t_cmp $res->code, 200, "code";
ok t_cmp $res->header('Content-Length'), 25, "C-L header";
ok t_cmp $res->content, "", "content";
t_debug $res->as_string;
}
1.1 modperl-2.0/t/response/TestApache/head_request.pm
Index: head_request.pm
===================================================================
package TestApache::head_request;
# see the client for the comments
use strict;
use warnings FATAL => 'all';
use Apache::RequestRec ();
use Apache::RequestIO ();
use Apache::Response ();
use Apache::Const -compile => 'OK';
my $body = "This is a response string";
sub handler {
my $r = shift;
$r->content_type('text/plain');
my $args = $r->args || '';
if ($args =~ /set_content_length/) {
$r->set_content_length(length $body);
}
if ($args =~ /send_body/) {
# really could send just about anything, since Apache discards
# the response body on HEAD requests
$r->print($body);
}
Apache::OK;
}
1;