]> git.donarmstrong.com Git - debbugs.git/blob - t/01_mime.t
unfinalize; document XSS fix
[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 => 6;
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
40
41 # Make sure that create_mime_message has encoded headers and doesn't enclude any 8-bit characters
42
43 $test_str = Encode::encode("UTF-8",$test_str);
44 ok(Debbugs::MIME::create_mime_message([Subject => $test_str,
45                                        From    => $test_str,
46                                       ],
47                                       $test_str,
48                                       [],
49                                      ) !~ m{([\xF0-\xFF]+)},
50    "create_mime_message properly encodes 8bit messages."
51   );
52
53 # XXX figure out how to test parse