1#!/usr/bin/perl -w
2
3# This script is written in utf8
4
5use strict;
6use warnings;
7
8use Test::More tests => 14;
9#use Test::More 'no_plan';
10BEGIN { use_ok('MIME::EcoEncode::Fold') };
11
12use Encode;
13use MIME::EcoEncode::Fold;
14
15my $in_utf8;
16my $out_utf8;
17my $in;
18my $out;
19my $str;
20
21$in_utf8 =<<"END";
22
23あああ00000aaaaaaあああ00000aaaaaaアアア00000aaあああ
24アアア00000aaaaaaaあああ00000aaaaaaaあああ00000aaaaアア
2500000aaaaaa00000aaaaaaaaa00000aaaaaaaaaaaaaaa00000
26END
27
28
29#
30# test 2
31#
32$out_utf8 =<<"END";
33
34あああ00000aaaaaaあああ0
350000aaaaaaアアア00000aaあ
36ああ
37アアア00000aaaaaaaあああ
3800000aaaaaaaあああ00000aaa
39aアア
4000000aaaaaa00000aaaaaaaaa00000
41aaaaaaaaaaaaaaa00000
42END
43$in = $in_utf8;
44$out = $out_utf8;
45is(mime_eco_fold($in, 'UTF-8', "\n", 30), $out,
46   'UTF-8 "\n" 30');
47
48#
49# test 3
50#
51$out_utf8 =<<"END";
52
53あああ00000aaaaaaあああ0
54 0000aaaaaaアアア00000aa
55 あああ
56アアア00000aaaaaaaあああ
57 00000aaaaaaaあああ00000aa
58 aaアア
5900000aaaaaa00000aaaaaaaaa00000
60 aaaaaaaaaaaaaaa00000
61END
62$in = $in_utf8;
63$out = $out_utf8;
64is(mime_eco_fold($in, 'UTF-8', undef, 30), $out,
65   'UTF-8 undef 30');
66
67#
68# test 4
69#
70$out_utf8 =<<"END";
71
72あああ00000aaaaaa
73あああ00000aaaaaaア
74アア00000aaあああ
75アアア00000aaaaaaaあ
76ああ00000aaaaaaaあ
77ああ00000aaaaアア
7800000aaaaaa00000aaaaaaaaa00000
79aaaaaaaaaaaaaaa00000
80END
81$in = encode('7bit-jis', decode_utf8($in_utf8));
82$out = encode('7bit-jis', decode_utf8($out_utf8));
83is(mime_eco_fold($in, 'ISO-2022-JP', "\n", 30), $out,
84   'ISO-2022-JP "\n" 30');
85
86#
87# test 5
88#
89$out_utf8 =<<"END";
90
91あああ00000aaaaaa
92 あああ00000aaaaaa
93 アアア00000aaあああ
94アアア00000aaaaaaaあ
95 ああ00000aaaaaaa
96 あああ00000aaaaアア
9700000aaaaaa00000aaaaaaaaa00000
98 aaaaaaaaaaaaaaa00000
99END
100$in = encode('7bit-jis', decode_utf8($in_utf8));
101$out = encode('7bit-jis', decode_utf8($out_utf8));
102is(mime_eco_fold($in, 'ISO-2022-JP', undef, 30), $out,
103   'ISO-2022-JP undef 30');
104
105
106#
107# test 6
108#
109$out_utf8 =<<"END";
110
111あああ00000aaaaaaあああ00000aa
112aaaaアアア00000aaあああ
113アアア00000aaaaaaaあああ00000aaaa
114aaaあああ00000aaaaアア
11500000aaaaaa00000aaaaaaaaa00000
116aaaaaaaaaaaaaaa00000
117END
118$in = encode('cp932', decode_utf8($in_utf8));
119$out = encode('cp932', decode_utf8($out_utf8));
120is(mime_eco_fold($in, 'Shift_JIS', "\n", 30), $out,
121   'Shift_JIS "\n" 30');
122
123
124#
125# test 7
126#
127$out_utf8 =<<"END";
128
129あああ00000aaaaaaあああ00000aa
130 aaaaアアア00000aaあああ
131アアア00000aaaaaaaあああ00000aaaa
132 aaaあああ00000aaaaアア
13300000aaaaaa00000aaaaaaaaa00000
134 aaaaaaaaaaaaaaa00000
135END
136$in = encode('cp932', decode_utf8($in_utf8));
137$out = encode('cp932', decode_utf8($out_utf8));
138is(mime_eco_fold($in, 'Shift_JIS', undef, 30), $out,
139   'Shift_JIS undef 30');
140
141
142$str = " \n ";
143is(mime_eco_fold($str, 'UTF-8', undef, 30), $str, 'SP + "\n" + SP');
144
145$str = "";
146is(mime_eco_fold($str, 'UTF-8', undef, 30), $str, 'zero length');
147
148$str = undef;
149is(mime_eco_fold($str, 'UTF-8', undef, 30), "", 'undef');
150
151$str = "test0\x0d";
152is(mime_eco_fold($str, 'UTF-8', undef, 30), $str, '\x0d');
153
154$str = "test0\x0a";
155is(mime_eco_fold($str, 'UTF-8', undef, 30), $str, '\x0a');
156
157$str = "test0\x0d\x0a";
158is(mime_eco_fold($str, 'UTF-8', undef, 30), $str, '\x0d\x0a');
159
160$in = "00000aaaaaa00000aaaaaaaaa00000aaaaaaaaaaaaaaa00000";
161$out = "00000aaaaaa00000aaaaaaaaa00000\n aaaaaaaaaaaaaaa00000";
162is(mime_eco_fold($in, 'UTF-8', undef, 30), $out, 'ASCII');
163