bug-wget
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-wget] WGET IDN support tests


From: Merinov Nikolay
Subject: [Bug-wget] WGET IDN support tests
Date: Thu, 07 Jul 2011 21:45:27 +0600
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux)

It is usefull to add two test for IDN with UTF-8 local encoding:
1. Testing for translating hostname to punycode.
2. Testing for downloading robots.txt with UTF-8 local encoding.

Any trivial fix breaks at least the second test.

Following patch creates this tests based on Test-idn-cmd.px
Test-idn-robots.px tests.

=== modified file 'tests/ChangeLog'
--- tests/ChangeLog     2011-04-19 10:33:46 +0000
+++ tests/ChangeLog     2011-07-07 15:25:39 +0000
@@ -1,3 +1,9 @@
+2011-06-03  Merinov Nikolay  <address@hidden>
+
+       * Test-idn-cmd-utf8.px: Added test for idn with utf-8 local encoding.
+       * Test-idn-robots-utf8.px: Added test for idn with utf-8 local encoding
+       and robots.txt file.
+       * Makefile.am, run-px: Add new tests.
 2011-04-19  Giuseppe Scrivano  <address@hidden>
 
        * Makefile.am (LIBS): Add $(LIB_CLOCK_GETTIME).

=== modified file 'tests/Makefile.am'
--- tests/Makefile.am   2011-04-19 10:33:46 +0000
+++ tests/Makefile.am   2011-07-07 15:25:20 +0000
@@ -90,7 +90,9 @@
              Test-idn-headers.px \
              Test-idn-meta.px \
              Test-idn-cmd.px \
+             Test-idn-cmd-utf8.px \
              Test-idn-robots.px \
+             Test-idn-robots-utf8.px \
              Test-iri.px \
              Test-iri-percent.px \
              Test-iri-disabled.px \

=== added file 'tests/Test-idn-cmd-utf8.px'
--- tests/Test-idn-cmd-utf8.px  1970-01-01 00:00:00 +0000
+++ tests/Test-idn-cmd-utf8.px  2011-07-07 15:23:08 +0000
@@ -0,0 +1,52 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+use WgetFeature qw(iri);
+use HTTPTest;
+
+# " Kon'nichiwa <dot> Japan
+my $utf8_hostname = 
"\344\273\212\346\227\245\343\201\257.\346\227\245\346\234\254";
+my $punycoded_hostname = 'xn--v9ju72g90p.xn--wgv71a';
+
+###############################################################################
+
+my $result_file = <<EOF;
+Found me!
+EOF
+
+# code, msg, headers, content
+my %urls = (
+    "http://$punycoded_hostname/index.html"; => {
+        code => "200",
+        msg => "Yes, please",
+        headers => {
+            'Content-Type' => 'text/plain',
+        },
+        content => $result_file,
+    },
+);
+
+my $cmdline = $WgetTest::WGETPATH . " --iri -rH"
+    . " -e http_proxy=localhost:{{port}} --local-encoding=UTF-8 
$utf8_hostname";
+
+my $expected_error_code = 0;
+
+my %expected_downloaded_files = (
+    "$punycoded_hostname/index.html" => {
+        content => $result_file,
+    },
+);
+
+###############################################################################
+
+my $the_test = HTTPTest->new (name => "Test-idn-cmd",
+                              input => \%urls,
+                              cmdline => $cmdline,
+                              errcode => $expected_error_code,
+                              output => \%expected_downloaded_files);
+exit $the_test->run();
+
+# vim: et ts=4 sw=4
+

=== added file 'tests/Test-idn-robots-utf8.px'
--- tests/Test-idn-robots-utf8.px       1970-01-01 00:00:00 +0000
+++ tests/Test-idn-robots-utf8.px       2011-07-03 18:26:26 +0000
@@ -0,0 +1,79 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+use WgetFeature qw(iri);
+use HTTPTest;
+
+# " Kon'nichiwa <dot> Japan
+my $utf8_hostname = 
"\344\273\212\346\227\245\343\201\257.\346\227\245\346\234\254";
+my $punycoded_hostname = 'xn--v9ju72g90p.xn--wgv71a';
+
+###############################################################################
+
+my $starter_file = <<EOF;
+<a href="http://$utf8_hostname/foo.txt";>The link</a>
+EOF
+
+my $result_file = <<EOF;
+Found me!
+EOF
+
+# code, msg, headers, content
+my %urls = (
+    "http://$punycoded_hostname/index.html"; => {
+        code => "200",
+        msg => "Yes, please",
+        headers => {
+            'Content-Type' => 'text/html; charset=UTF-8',
+        },
+        content => $starter_file,
+    },
+    "http://$punycoded_hostname/foo.txt"; => {
+        code => "200",
+        msg => "Uh-huh",
+        headers => {
+            'Content-Type' => 'text/plain',
+        },
+        content => $result_file,
+    },
+    "http://$punycoded_hostname/robots.txt"; => {
+        code => "200",
+        msg => "Uh-huh",
+        headers => {
+            'Content-Type' => 'text/plain',
+        },
+        content => '',
+    },
+);
+
+my $cmdline = $WgetTest::WGETPATH . " --iri -rH"
+    . " -e http_proxy=localhost:{{port}} --local-encoding=UTF-8"
+    . " http://$utf8_hostname/";;
+
+my $expected_error_code = 0;
+
+my %expected_downloaded_files = (
+    "$punycoded_hostname/index.html" => {
+        content => $starter_file,
+    },
+    "$punycoded_hostname/foo.txt" => {
+        content => $result_file,
+    },
+    "$punycoded_hostname/robots.txt" => {
+        content => '',
+    },
+);
+
+###############################################################################
+
+my $the_test = HTTPTest->new (name => "Test-idn-robots",
+                              input => \%urls,
+                              cmdline => $cmdline,
+                              errcode => $expected_error_code,
+                              output => \%expected_downloaded_files);
+exit $the_test->run();
+
+# vim: et ts=4 sw=4
+

=== modified file 'tests/run-px'
--- tests/run-px        2010-05-29 21:10:59 +0000
+++ tests/run-px        2011-07-07 15:25:32 +0000
@@ -43,7 +43,9 @@
     'Test-idn-headers.px',
     'Test-idn-meta.px',
     'Test-idn-cmd.px',
+    'Test-idn-cmd-utf8.px',
     'Test-idn-robots.px',
+    'Test-idn-robots-utf8.px',
     'Test-iri.px',
     'Test-iri-percent.px',
     'Test-iri-disabled.px',


reply via email to

[Prev in Thread] Current Thread [Next in Thread]