Actually submit previous change.
[p5sagit/p5-mst-13.2.git] / ext / Encode / t / mime-header.t
CommitLineData
7e19fb92 1#
d1256cb1 2# $Id: mime-header.t,v 2.2 2006/05/03 18:24:10 dankogai Exp $
7e19fb92 3# This script is written in utf8
4#
af1f55d9 5BEGIN {
6 if ($ENV{'PERL_CORE'}){
7 chdir 't';
8 unshift @INC, '../lib';
9 }
10 require Config; import Config;
11 if ($Config{'extensions'} !~ /\bEncode\b/) {
12 print "1..0 # Skip: Encode was not built\n";
13 exit 0;
14 }
982a4085 15 if (ord("A") == 193) {
d1256cb1 16 print "1..0 # Skip: EBCDIC\n";
17 exit 0;
982a4085 18 }
af1f55d9 19 $| = 1;
20}
21
b7d70e14 22no utf8;
23
af1f55d9 24use strict;
7e19fb92 25#use Test::More qw(no_plan);
41c240f5 26use Test::More tests => 11;
af1f55d9 27use_ok("Encode::MIME::Header");
28
7e19fb92 29my $eheader =<<'EOS';
30From: =?US-ASCII?Q?Keith_Moore?= <moore@cs.utk.edu>
31To: =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk>
32CC: =?ISO-8859-1?Q?Andr=E9?= Pirard <PIRARD@vm1.ulg.ac.be>
33Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
34 =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=
35EOS
af1f55d9 36
7e19fb92 37my $dheader=<<"EOS";
38From: Keith Moore <moore\@cs.utk.edu>
39To: Keld J\xF8rn Simonsen <keld\@dkuug.dk>
40CC: Andr\xE9 Pirard <PIRARD\@vm1.ulg.ac.be>
41Subject: If you can read this you understand the example.
42EOS
43
ab3374e4 44is(Encode::decode('MIME-Header', $eheader), $dheader, "decode ASCII (RFC2047)");
7e19fb92 45
46use utf8;
47
ab3374e4 48my $uheader =<<'EOS';
49From: =?US-ASCII?Q?Keith_Moore?= <moore@cs.utk.edu>
50To: =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk>
51CC: =?ISO-8859-1?Q?Andr=E9?= Pirard <PIRARD@vm1.ulg.ac.be>
52Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
53 =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=
54EOS
55
56is(Encode::decode('MIME-Header', $uheader), $dheader, "decode UTF-8 (RFC2047)");
57
41c240f5 58my $lheader =<<'EOS';
59From: =?US-ASCII*en-US?Q?Keith_Moore?= <moore@cs.utk.edu>
60To: =?ISO-8859-1*da-DK?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk>
61CC: =?ISO-8859-1*fr-BE?Q?Andr=E9?= Pirard <PIRARD@vm1.ulg.ac.be>
62Subject: =?ISO-8859-1*en?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
63 =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=
64EOS
65
66is(Encode::decode('MIME-Header', $lheader), $dheader, "decode language tag (RFC2231)");
67
ab3374e4 68
7e19fb92 69$dheader=<<'EOS';
70From: 小飼 弾 <dankogai@dan.co.jp>
71To: dankogai@dan.co.jp (小飼=Kogai, 弾=Dan)
72Subject: 漢字、カタカナ、ひらがなを含む、非常に長いタイトル行が一体全体どのようにしてEncodeされるのか?
73EOS
74
75my $bheader =<<'EOS';
76From:=?UTF-8?B?IOWwj+mjvCDlvL4g?=<dankogai@dan.co.jp>
77To: dankogai@dan.co.jp (=?UTF-8?B?5bCP6aO8?==Kogai,=?UTF-8?B?IOW8vg==?==Dan
78 )
79Subject:
80 =?UTF-8?B?IOa8ouWtl+OAgeOCq+OCv+OCq+ODiuOAgeOBsuOCieOBjOOBquOCkuWQq+OCgA==?=
81 =?UTF-8?B?44CB6Z2e5bi444Gr6ZW344GE44K/44Kk44OI44Or6KGM44GM5LiA5L2T5YWo?=
82 =?UTF-8?B?5L2T44Gp44Gu44KI44GG44Gr44GX44GmRW5jb2Rl44GV44KM44KL44Gu44GL?=
83 =?UTF-8?B?77yf?=
84EOS
85
86my $qheader=<<'EOS';
87From:=?UTF-8?Q?=20=E5=B0=8F=E9=A3=BC=20=E5=BC=BE=20?=<dankogai@dan.co.jp>
88To: dankogai@dan.co.jp (=?UTF-8?Q?=E5=B0=8F=E9=A3=BC?==Kogai,
89 =?UTF-8?Q?=20=E5=BC=BE?==Dan)
90Subject:
91 =?UTF-8?Q?=20=E6=BC=A2=E5=AD=97=E3=80=81=E3=82=AB=E3=82=BF=E3=82=AB?=
92 =?UTF-8?Q?=E3=83=8A=E3=80=81=E3=81=B2=E3=82=89=E3=81=8C=E3=81=AA=E3=82=92?=
93 =?UTF-8?Q?=E5=90=AB=E3=82=80=E3=80=81=E9=9D=9E=E5=B8=B8=E3=81=AB=E9=95=B7?=
94 =?UTF-8?Q?=E3=81=84=E3=82=BF=E3=82=A4=E3=83=88=E3=83=AB=E8=A1=8C=E3=81=8C?=
95 =?UTF-8?Q?=E4=B8=80=E4=BD=93=E5=85=A8=E4=BD=93=E3=81=A9=E3=81=AE=E3=82=88?=
96 =?UTF-8?Q?=E3=81=86=E3=81=AB=E3=81=97=E3=81=A6Encode=E3=81=95?=
97 =?UTF-8?Q?=E3=82=8C=E3=82=8B=E3=81=AE=E3=81=8B=EF=BC=9F?=
98EOS
99
100is(Encode::decode('MIME-Header', $bheader), $dheader, "decode B");
101is(Encode::decode('MIME-Header', $qheader), $dheader, "decode Q");
102is(Encode::encode('MIME-B', $dheader)."\n", $bheader, "encode B");
103is(Encode::encode('MIME-Q', $dheader)."\n", $qheader, "encode Q");
bedba681 104
105$dheader = "What is =?UTF-8?B?w4RwZmVs?= ?";
106$bheader = "What is =?UTF-8?B?PT9VVEYtOD9CP3c0UndabVZzPz0=?= ?";
107$qheader = "What is =?UTF-8?Q?=3D=3FUTF=2D8=3FB=3Fw4RwZmVs=3F=3D?= ?";
108is(Encode::encode('MIME-B', $dheader), $bheader, "Double decode B");
109is(Encode::encode('MIME-Q', $dheader), $qheader, "Double decode Q");
b786ee6f 110{
111 # From: Dave Evans <dave@rudolf.org.uk>
112 # Subject: Bug in Encode::MIME::Header
113 # Message-Id: <3F43440B.7060606@rudolf.org.uk>
114 use charnames ":full";
115 my $pound_1024 = "\N{POUND SIGN}1024";
116 is(Encode::encode('MIME-Q' => $pound_1024), '=?UTF-8?Q?=C2=A31024?=',
117 'pound 1024');
118}
af1f55d9 119__END__;