diff options
Diffstat (limited to 'tests/Test-k.px')
-rwxr-xr-x | tests/Test-k.px | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/tests/Test-k.px b/tests/Test-k.px new file mode 100755 index 0000000..30925f5 --- /dev/null +++ b/tests/Test-k.px @@ -0,0 +1,92 @@ +#!/usr/bin/env -S perl -I . + +use strict; +use warnings; + +use HTTPTest; + + +############################################################################### +my $osname = $^O; +print "OS=$osname\n"; + +my $index = <<EOF; +<html> + <head> + <title>Index</title> + </head> + <body> + <a href="site;sub:.html">Site</a> + </body> +</html> +EOF + +my $converted = <<EOF; +<html> + <head> + <title>Index</title> + </head> + <body> + <a href="./site%3Bsub:.html">Site</a> + </body> +</html> +EOF + +my $site = <<EOF; +<html> + <head> + <title>Site</title> + </head> + <body> + Subsite + </body> +</html> +EOF + +# code, msg, headers, content +my %urls = ( + '/index.html' => { + code => "200", + msg => "Ok", + headers => { + "Content-type" => "text/html", + }, + content => $index, + }, + '/site;sub:.html' => { + code => "200", + msg => "Ok", + headers => { + "Content-type" => "text/html", + }, + content => $site, + }, +); + +my $restrict = "unix"; +if ($osname eq "MSWin32") { + $restrict = "windows"; +} + +my $cmdline = $WgetTest::WGETPATH . " -k -r -nH --restrict-file-names=$restrict http://localhost:{{port}}/index.html"; + +my $expected_error_code = 0; + +my %expected_downloaded_files = ( + 'index.html' => { + content => $converted, + }, + 'site;sub:.html' => { + content => $site, + }, +); + +############################################################################### + +my $the_test = HTTPTest->new (input => \%urls, + cmdline => $cmdline, + errcode => $expected_error_code, + output => \%expected_downloaded_files); +exit $the_test->run(); + +# vim: et ts=4 sw=4 |