Test for -c shorter content (#23613).

This commit is contained in:
Micah Cowan 2008-08-22 17:39:47 -07:00
parent 123f5c3966
commit f0438edcf2
3 changed files with 67 additions and 2 deletions

View File

@ -92,13 +92,13 @@ sub send_response {
print $con $content;
next;
}
if ($req->header("Range")) {
if ($req->header("Range") && !$url_rec->{'force_code'}) {
$req->header("Range") =~ m/bytes=(\d*)-(\d*)/;
my $content_len = length($content);
my $start = $1 ? $1 : 0;
my $end = $2 ? $2 : ($content_len - 1);
my $len = $2 ? ($2 - $start) : ($content_len - $start);
if ($len) {
if ($len > 0) {
$resp->header("Accept-Ranges" => "bytes");
$resp->header("Content-Length" => $len);
$resp->header("Content-Range"

64
tests/Test-c-shorter.px Executable file
View File

@ -0,0 +1,64 @@
#!/usr/bin/perl -w
use strict;
use HTTPTest;
###############################################################################
my $partiallydownloaded = <<EOF;
11111111111111111111111111111111111111111111111111
22222222x222222222222222222222222222222222222222222222222222
EOF
my $rest = <<EOF;
3333333333333333333333333333333333333333333333333333333333333333333333
444444444444444444444444444444444444444444444444444444444444
55555555555555555555555555555555555555555555555555
EOF
my $downloadedfile = $partiallydownloaded . $rest;
# code, msg, headers, content
my %urls = (
'/somefile.txt' => {
code => "200",
force_code => 1,
msg => "Dontcare",
headers => {
"Content-type" => "text/plain",
"Content-Length" => 0,
},
content => '',
},
);
my $cmdline = $WgetTest::WGETPATH . " -c http://localhost:{{port}}/somefile.txt";
my $expected_error_code = 0;
my %existing_files = (
'somefile.txt' => {
content => $downloadedfile,
},
);
my %expected_downloaded_files = (
'somefile.txt' => {
content => $downloadedfile,
},
);
###############################################################################
my $the_test = HTTPTest->new (name => "Test-c-partial",
input => \%urls,
cmdline => $cmdline,
errcode => $expected_error_code,
existing => \%existing_files,
output => \%expected_downloaded_files);
exit $the_test->run();
# vim: et ts=4 sw=4

View File

@ -12,6 +12,7 @@ my @tests = (
'Test--spider.px',
'Test-c-full.px',
'Test-c-partial.px',
'Test-c-shorter.px',
'Test-c.px',
'Test-E-k-K.px',
'Test-E-k.px',