Upgrade to Encode-2.20
[p5sagit/p5-mst-13.2.git] / ext / Encode / t / mime-header.t
index 238be30..e36e0ba 100644 (file)
@@ -1,5 +1,5 @@
 #
-# $Id: mime-header.t,v 1.3 2002/04/26 03:07:59 dankogai Exp $
+# $Id: mime-header.t,v 2.3 2007/04/06 12:53:41 dankogai Exp $
 # This script is written in utf8
 #
 BEGIN {
@@ -13,15 +13,17 @@ BEGIN {
       exit 0;
     }
     if (ord("A") == 193) {
-       print "1..0 # Skip: EBCDIC\n";
-       exit 0;
+    print "1..0 # Skip: EBCDIC\n";
+    exit 0;
     }
     $| = 1;
 }
 
+no utf8;
+
 use strict;
 #use Test::More qw(no_plan);
-use Test::More tests => 6;
+use Test::More tests => 12;
 use_ok("Encode::MIME::Header");
 
 my $eheader =<<'EOS';
@@ -39,10 +41,31 @@ CC: Andr\xE9 Pirard <PIRARD\@vm1.ulg.ac.be>
 Subject: If you can read this you understand the example.
 EOS
 
-is(Encode::decode('MIME-Header', $eheader), $dheader, "decode (RFC2047)");
+is(Encode::decode('MIME-Header', $eheader), $dheader, "decode ASCII (RFC2047)");
 
 use utf8;
 
+my $uheader =<<'EOS';
+From: =?US-ASCII?Q?Keith_Moore?= <moore@cs.utk.edu>
+To: =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk>
+CC: =?ISO-8859-1?Q?Andr=E9?= Pirard <PIRARD@vm1.ulg.ac.be>
+Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
+ =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=
+EOS
+
+is(Encode::decode('MIME-Header', $uheader), $dheader, "decode UTF-8 (RFC2047)");
+
+my $lheader =<<'EOS';
+From: =?US-ASCII*en-US?Q?Keith_Moore?= <moore@cs.utk.edu>
+To: =?ISO-8859-1*da-DK?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk>
+CC: =?ISO-8859-1*fr-BE?Q?Andr=E9?= Pirard <PIRARD@vm1.ulg.ac.be>
+Subject: =?ISO-8859-1*en?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
+ =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=
+EOS
+
+is(Encode::decode('MIME-Header', $lheader), $dheader, "decode language tag (RFC2231)");
+
+
 $dheader=<<'EOS';
 From: 小飼 弾 <dankogai@dan.co.jp>
 To: dankogai@dan.co.jp (小飼=Kogai, 弾=Dan)
@@ -78,4 +101,22 @@ is(Encode::decode('MIME-Header', $bheader), $dheader, "decode B");
 is(Encode::decode('MIME-Header', $qheader), $dheader, "decode Q");
 is(Encode::encode('MIME-B', $dheader)."\n", $bheader, "encode B");
 is(Encode::encode('MIME-Q', $dheader)."\n", $qheader, "encode Q");
+
+$dheader = "What is =?UTF-8?B?w4RwZmVs?= ?";
+$bheader = "What is =?UTF-8?B?PT9VVEYtOD9CP3c0UndabVZzPz0=?= ?";
+$qheader = "What is =?UTF-8?Q?=3D=3FUTF=2D8=3FB=3Fw4RwZmVs=3F=3D?= ?";
+is(Encode::encode('MIME-B', $dheader), $bheader, "Double decode B");
+is(Encode::encode('MIME-Q', $dheader), $qheader, "Double decode Q");
+{
+    # From: Dave Evans <dave@rudolf.org.uk>
+    # Subject: Bug in Encode::MIME::Header
+    # Message-Id: <3F43440B.7060606@rudolf.org.uk>
+    use charnames ":full";
+    my $pound_1024 = "\N{POUND SIGN}1024";
+    is(Encode::encode('MIME-Q' => $pound_1024), '=?UTF-8?Q?=C2=A31024?=',
+       'pound 1024');
+}
+
+is(Encode::encode('MIME-Q', "\x{fc}"), '=?UTF-8?Q?=C3=BC?=', 'Encode latin1 characters');
+
 __END__;