first pass RT4 merge, RT#13852
[freeside.git] / rt / t / api / canonical_charset.t
diff --git a/rt/t/api/canonical_charset.t b/rt/t/api/canonical_charset.t
new file mode 100644 (file)
index 0000000..a426d89
--- /dev/null
@@ -0,0 +1,30 @@
+use warnings;
+use strict;
+
+use RT::Test nodata => 1, tests => 11;
+use RT::I18N;
+use Encode;
+
+my %map = (
+    'euc-cn'  => 'gbk',
+    'gb-2312' => 'gbk',
+    gb2312  => 'gbk',
+    utf8    => 'utf-8',
+    'utf-8' => 'utf-8',
+);
+
+for my $charset ( keys %map ) {
+    is( RT::I18N::_CanonicalizeCharset($charset),
+        $map{$charset}, "$charset => $map{$charset}" );
+    is( RT::I18N::_CanonicalizeCharset( uc $charset ),
+        $map{$charset}, uc( $charset ) . " => $map{$charset}" );
+}
+
+my $mime   = MIME::Entity->build(
+    Type => 'text/plain; charset=gb2312',
+    Data => [encode('gbk', decode_utf8("法新社倫敦11日電"))],
+);
+
+RT::I18N::SetMIMEEntityToUTF8($mime);
+is( $mime->stringify_body, '法新社倫敦11日電', 'gb2312 => gbk in mail'  );
+