diff --git a/tests/HTTPServer.pm b/tests/HTTPServer.pm index dbfa3ef1..b76f0985 100644 --- a/tests/HTTPServer.pm +++ b/tests/HTTPServer.pm @@ -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" diff --git a/tests/Test-c-shorter.px b/tests/Test-c-shorter.px new file mode 100755 index 00000000..432cab92 --- /dev/null +++ b/tests/Test-c-shorter.px @@ -0,0 +1,64 @@ +#!/usr/bin/perl -w + +use strict; + +use HTTPTest; + + +############################################################################### + +my $partiallydownloaded = < { + 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 + diff --git a/tests/run-px b/tests/run-px index f6c8cf6e..50db5819 100755 --- a/tests/run-px +++ b/tests/run-px @@ -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',