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<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />
17<a href="http://$euc_jp_hostname/">The link</a>
18EOF
19
20my $result_file = <<EOF;
21Found me!
22EOF
23
24# code, msg, headers, content
25my %urls = (
26    'http://start-here.com/start.html' => {
27        code => "200",
28        msg => "You want fries with that?",
29        headers => {
30            'Content-Type' => 'text/html; charset=UTF-8',
31        },
32        content => $starter_file,
33    },
34    "http://$punycoded_hostname/index.html" => {
35        code => "200",
36        msg => "Yes, please",
37        headers => {
38            'Content-Type' => 'text/plain',
39        },
40        content => $result_file,
41    },
42);
43
44my $cmdline = $WgetTest::WGETPATH . " --debug --iri -rH"
45    . " -e http_proxy=localhost:{{port}} http://start-here.com/start.html";
46
47my $expected_error_code = 0;
48
49my %expected_downloaded_files = (
50    'start-here.com/start.html' => {
51        content => $starter_file,
52    },
53    "$punycoded_hostname/index.html" => {
54        content => $result_file,
55    },
56);
57
58###############################################################################
59
60my $the_test = HTTPTest->new (name => "Test-idn-meta",
61                              input => \%urls,
62                              cmdline => $cmdline,
63                              errcode => $expected_error_code,
64                              output => \%expected_downloaded_files);
65exit $the_test->run();
66
67# vim: et ts=4 sw=4
68
69