1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
6use WgetFeature qw(iri);
7use HTTPTest;
8
9# " Kon'nichiwa <dot> Japan
10my $euc_jp_hostname = "\272\243\306\374\244\317.\306\374\313\334";
11my $punycoded_hostname = 'xn--v9ju72g90p.xn--wgv71a';
12
13###############################################################################
14
15my $starter_file = <<EOF;
16<a href="http://$euc_jp_hostname/">The link</a>
17EOF
18
19my $result_file = <<EOF;
20Found me!
21EOF
22
23# code, msg, headers, content
24my %urls = (
25    'http://start-here.com/start.html' => {
26        code => "200",
27        msg => "You want fries with that?",
28        headers => {
29            'Content-Type' => 'text/html; charset=EUC-JP',
30        },
31        content => $starter_file,
32    },
33    "http://$punycoded_hostname/index.html" => {
34        code => "200",
35        msg => "Yes, please",
36        headers => {
37            'Content-Type' => 'text/plain',
38        },
39        content => $result_file,
40    },
41);
42
43my $cmdline = $WgetTest::WGETPATH . " --debug --iri -rH"
44    . " -e http_proxy=localhost:{{port}} http://start-here.com/start.html";
45
46my $expected_error_code = 0;
47
48my %expected_downloaded_files = (
49    'start-here.com/start.html' => {
50        content => $starter_file,
51    },
52    "$punycoded_hostname/index.html" => {
53        content => $result_file,
54    },
55);
56
57###############################################################################
58
59my $the_test = HTTPTest->new (name => "Test-idn-headers",
60                              input => \%urls,
61                              cmdline => $cmdline,
62                              errcode => $expected_error_code,
63                              output => \%expected_downloaded_files);
64exit $the_test->run();
65
66# vim: et ts=4 sw=4
67
68