From ab0b0a40904c6cbd4a21d61c6acf31ff11c30a71 Mon Sep 17 00:00:00 2001 From: Micah Cowan Date: Thu, 28 Aug 2008 02:45:29 -0700 Subject: [PATCH] IDN test. --- tests/ChangeLog | 12 +++++++ tests/HTTPServer.pm | 3 +- tests/Test-idn-headers.px | 65 ++++++++++++++++++++++++++++++++++ tests/Test-proxy-auth-basic.px | 2 +- tests/run-px | 1 + 5 files changed, 81 insertions(+), 2 deletions(-) create mode 100755 tests/Test-idn-headers.px diff --git a/tests/ChangeLog b/tests/ChangeLog index f2179763..7eb37563 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,15 @@ +2008-08-28 Micah Cowan + + * HTTPServer.pm (run): Allow distinguishing between hostnames, + when used as a proxy. + + * Test-idn-headers.px: Added. + + * run-px: Added Test-idn-headers.px. + + * Test-proxy-auth-basic.px: Use the full URL, rather than just the + path (made necessary by the accompanying change to HTTPServer.pm). + 2008-08-14 Xavier Saint * Test-iri-list.px : Fetch files from a remote list. diff --git a/tests/HTTPServer.pm b/tests/HTTPServer.pm index b76f0985..01c36957 100644 --- a/tests/HTTPServer.pm +++ b/tests/HTTPServer.pm @@ -27,7 +27,8 @@ sub run { my $con = $self->accept(); print STDERR "Accepted a new connection\n" if $log; while (my $req = $con->get_request) { - my $url_path = $req->url->path; + #my $url_path = $req->url->path; + my $url_path = $req->url->as_string; if ($url_path =~ m{/$}) { # append 'index.html' $url_path .= 'index.html'; } diff --git a/tests/Test-idn-headers.px b/tests/Test-idn-headers.px new file mode 100755 index 00000000..3289d5f5 --- /dev/null +++ b/tests/Test-idn-headers.px @@ -0,0 +1,65 @@ +#!/usr/bin/perl -w + +use strict; + +use HTTPTest; + +# " Kon'nichiwa Japan +my $euc_jp_hostname = "\272\243\306\374\244\317.\306\374\313\334"; +my $punycoded_hostname = 'xn--v9ju72g90p.xn--wgv71a'; + +############################################################################### + +my $starter_file = <The link +EOF + +my $result_file = < { + code => "200", + msg => "You want fries with that?", + headers => { + 'Content-Type' => 'text/html; charset=EUC-JP', + }, + content => $starter_file, + }, + "http://$punycoded_hostname/index.html" => { + code => "200", + msg => "Yes, please", + headers => { + 'Content-Type' => 'text/plain', + }, + content => $result_file, + }, +); + +my $cmdline = $WgetTest::WGETPATH . " --debug --iri -rH" + . " -e http_proxy=localhost:{{port}} http://start-here.com/start.html"; + +my $expected_error_code = 0; + +my %expected_downloaded_files = ( + 'start-here.com/start.html' => { + content => $starter_file, + }, + "$punycoded_hostname/index.html" => { + content => $result_file, + }, +); + +############################################################################### + +my $the_test = HTTPTest->new (name => "Test-iri-headers", + input => \%urls, + cmdline => $cmdline, + errcode => $expected_error_code, + output => \%expected_downloaded_files); +exit $the_test->run(); + +# vim: et ts=4 sw=4 + diff --git a/tests/Test-proxy-auth-basic.px b/tests/Test-proxy-auth-basic.px index e440a392..e3934d7d 100755 --- a/tests/Test-proxy-auth-basic.px +++ b/tests/Test-proxy-auth-basic.px @@ -11,7 +11,7 @@ my $wholefile = "You're all authenticated.\n"; # code, msg, headers, content my %urls = ( - '/needs-auth.txt' => { + 'http://no.such.domain/needs-auth.txt' => { auth_method => 'Basic', user => 'fiddle-dee-dee', passwd => 'Dodgson', diff --git a/tests/run-px b/tests/run-px index c18c8d85..c2380d5b 100755 --- a/tests/run-px +++ b/tests/run-px @@ -23,6 +23,7 @@ my @tests = ( 'Test-HTTP-Content-Disposition-1.px', 'Test-HTTP-Content-Disposition-2.px', 'Test-HTTP-Content-Disposition.px', + 'Test-idn-headers.px', 'Test-iri.px', 'Test-iri-disabled.px', 'Test-iri-forced-remote.px', -- 2.39.2