]> git.donarmstrong.com Git - debbugs.git/blob - t/01_mime.t
Handle RFC1522 escaped commas in structured headers (#1041638)
[debbugs.git] / t / 01_mime.t
1 # -*- mode: cperl;-*-
2 # $Id: 01_mime.t,v 1.1 2005/08/17 21:46:17 don Exp $
3
4 use Test::More tests => 7;
5
6 use warnings;
7 use strict;
8
9 use Encode;
10
11 use_ok('Debbugs::MIME');
12
13 # encode_headers testing
14
15 my $test_str = decode_utf8(<<'END');
16 Döñ Ärḿßtrøñĝ <don@donarmstrong.com>
17 END
18
19 my $test_str2 = decode_utf8(<<'END');
20  Döñ Ärḿßtrøñĝ <don@donarmstrong.com>
21 END
22
23 my $test_str3 =decode_utf8(<<'END');
24 foo@bar.com (J fö"ø)
25 END
26
27 # 1: test decode
28 ok(Debbugs::MIME::decode_rfc1522(q(=?iso-8859-1?Q?D=F6n_Armstr=F3ng?= <don@donarmstrong.com>)) eq
29   decode_utf8(q(Dön Armstróng <don@donarmstrong.com>)),"decode_rfc1522 decodes and converts to UTF8 properly");
30
31
32 # 2: test encode
33 ok(Debbugs::MIME::decode_rfc1522(Debbugs::MIME::encode_rfc1522(encode_utf8($test_str))) eq $test_str,
34   "encode_rfc1522 encodes strings that decode_rfc1522 can decode");
35 ok(Debbugs::MIME::decode_rfc1522(Debbugs::MIME::encode_rfc1522(encode_utf8($test_str2))) eq $test_str2,
36   "encode_rfc1522 encodes strings that decode_rfc1522 can decode");
37 ok(Debbugs::MIME::decode_rfc1522(Debbugs::MIME::encode_rfc1522(encode_utf8($test_str3))) eq $test_str3,
38   "encode_rfc1522 properly handles parenthesis and \"");
39 ok(Debbugs::MIME::handle_escaped_commas(q(),q(From: =?UTF-8?Q?Armstrong=2C?= Don <don@donarmstrong.com>)) eq q("Armstrong, Don" <don@donarmstrong.com>),
40   "handle_escaped_commas properly handles commas in RFC1522 encoded strings");
41
42 # Make sure that create_mime_message has encoded headers and doesn't enclude any 8-bit characters
43
44 $test_str = Encode::encode("UTF-8",$test_str);
45 ok(Debbugs::MIME::create_mime_message([Subject => $test_str,
46                                        From    => $test_str,
47                                       ],
48                                       $test_str,
49                                       [],
50                                      ) !~ m{([\xF0-\xFF]+)},
51    "create_mime_message properly encodes 8bit messages."
52   );
53
54 # XXX figure out how to test parse