[svn] Added testing for -np option.

This commit is contained in:
mtortonesi 2006-11-10 03:06:24 -08:00
parent ff82bd9276
commit cd50595319
3 changed files with 158 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2006-11-10 Mauro Tortonesi <mauro@ferrara.linux.it>
* Test-np.px: Added test for -np.
* HTTPTest.pm: Ignore initial '/' character in requested URLs.
2006-10-12 Mauro Tortonesi <mauro@ferrara.linux.it>
* Test1.px: Renamed to Test-noop.px.

View File

@ -29,9 +29,12 @@ sub run {
print STDERR "Accepted a new connection\n" if $log;
while (my $req = $con->get_request) {
my $url_path = $req->url->path;
if ($url_path =~ m{/$}) {
if ($url_path =~ m{/$}) { # append 'index.html'
$url_path .= 'index.html';
}
if ($url_path =~ m{^/}) { # remove trailing '/'
$url_path = substr ($url_path, 1);
}
if ($log) {
print STDERR "Method: ", $req->method, "\n";
print STDERR "Path: ", $url_path, "\n";

148
tests/Test-np.px Executable file
View File

@ -0,0 +1,148 @@
#!/usr/bin/perl -w
use strict;
use HTTPTest;
###############################################################################
my $mainpage = <<EOF;
<html>
<head>
<title>Main Page</title>
</head>
<body>
<p>
Some text and a link to a <a href="http://localhost:8080/firstlevel/secondpage.html">second page</a>.
</p>
</body>
</html>
EOF
my $secondpage = <<EOF;
<html>
<head>
<title>Second Page</title>
</head>
<body>
<p>
Some text and a link to a <a href="http://localhost:8080/firstlevel/lowerlevel/thirdpage.html">third page</a>.
</p>
</body>
</html>
EOF
my $thirdpage = <<EOF;
<html>
<head>
<title>Third Page</title>
</head>
<body>
<p>
Some text and a link to a <a href="http://localhost:8080/higherlevelpage.html">higher level page</a>.
</p>
</body>
</html>
EOF
my $fourthpage = <<EOF;
<html>
<head>
<title>Fourth Page</title>
</head>
<body>
<p>
This page is only linked by the higher level page. Therefore, it should not
be downloaded.
</p>
</body>
</html>
EOF
my $higherlevelpage = <<EOF;
<html>
<head>
<title>Higher Level Page</title>
</head>
<body>
<p>
This page is on a higher level in the URL path hierarchy. Therefore, it
should not be downloaded. Wget should not visit the following link to a
<a href="http://localhost:8080/firstlevel/fourthpage.html">fourth page</a>.
</p>
</body>
</html>
EOF
# code, msg, headers, content
my %urls = (
'firstlevel/index.html' => {
code => "200",
msg => "Dontcare",
headers => {
"Content-type" => "text/html",
},
content => $mainpage,
},
'firstlevel/secondpage.html' => {
code => "200",
msg => "Dontcare",
headers => {
"Content-type" => "text/html",
},
content => $secondpage,
},
'firstlevel/lowerlevel/thirdpage.html' => {
code => "200",
msg => "Dontcare",
headers => {
"Content-type" => "text/html",
},
content => $thirdpage,
},
'firstlevel/fourthpage.html' => {
code => "200",
msg => "Dontcare",
headers => {
"Content-type" => "text/plain",
},
content => $fourthpage,
},
'higherlevelpage.html' => {
code => "200",
msg => "Dontcare",
headers => {
"Content-type" => "text/plain",
},
content => $higherlevelpage,
},
);
my $cmdline = "wget -np -nH -r http://localhost:8080/firstlevel/";
my $expected_error_code = 0;
my %expected_downloaded_files = (
'firstlevel/index.html' => {
content => $mainpage,
},
'firstlevel/secondpage.html' => {
content => $secondpage,
},
'firstlevel/lowerlevel/thirdpage.html' => {
content => $thirdpage,
},
);
###############################################################################
my $the_test = HTTPTest->new (name => "Test-np",
input => \%urls,
cmdline => $cmdline,
errcode => $expected_error_code,
output => \%expected_downloaded_files);
$the_test->run();
# vim: et ts=4 sw=4