| 1 | # test suite for MT::I18N modules |
|---|
| 2 | |
|---|
| 3 | # english / utf-8 |
|---|
| 4 | # english / latin-1 |
|---|
| 5 | # french / utf-8 |
|---|
| 6 | # french / latin-1 |
|---|
| 7 | # japanese / utf-8 |
|---|
| 8 | # japanese / shift_jis |
|---|
| 9 | # japanese / euc |
|---|
| 10 | |
|---|
| 11 | # routines to test |
|---|
| 12 | # substr_text |
|---|
| 13 | # length_text |
|---|
| 14 | # wrap_text |
|---|
| 15 | # break_up_text |
|---|
| 16 | # first_n_text |
|---|
| 17 | # convert_high_ascii |
|---|
| 18 | # const |
|---|
| 19 | |
|---|
| 20 | use lib 't/lib', 'extlib', 'lib', '../lib', '../extlib'; |
|---|
| 21 | use Test::More tests => 35; |
|---|
| 22 | |
|---|
| 23 | use Encode; |
|---|
| 24 | use MT; |
|---|
| 25 | use MT::Test; |
|---|
| 26 | my $mt = new MT; |
|---|
| 27 | |
|---|
| 28 | my ($utf8_str, $sjis_str, $euc_str, $utf8_substr, $euc_substr, $sjis_substr, $iso2022_str, $iso2022_substr); |
|---|
| 29 | $utf8_str = $euc_str = $iso2022_str = $sjis_str = 'ãµã€ããŒã·ã§ãããããããŠã©ãŒã¯ãã³ãåœãã'; |
|---|
| 30 | $iso2022_substr = $utf8_substr = $euc_substr = $sjis_substr = 'ãµã€ããŒ'; |
|---|
| 31 | Encode::from_to($sjis_str, 'utf-8', 'shift_jis'); |
|---|
| 32 | Encode::from_to($sjis_substr, 'utf-8', 'shift_jis'); |
|---|
| 33 | Encode::from_to($euc_str, 'utf-8', 'euc-jp'); |
|---|
| 34 | Encode::from_to($euc_substr, 'utf-8', 'euc-jp'); |
|---|
| 35 | Encode::from_to($iso2022_str, 'utf-8', 'iso-2022-jp'); |
|---|
| 36 | Encode::from_to($iso2022_substr, 'utf-8', 'iso-2022-jp'); |
|---|
| 37 | |
|---|
| 38 | MT->set_language('ja'); |
|---|
| 39 | MT->config('UseJcodeModule', 0); |
|---|
| 40 | |
|---|
| 41 | require MT::I18N; |
|---|
| 42 | |
|---|
| 43 | is(MT::I18N::const('LENGTH_ENTRY_TITLE_FROM_TEXT'), 10); |
|---|
| 44 | |
|---|
| 45 | MT->config('PublishCharset', 'utf-8'); |
|---|
| 46 | is(length($utf8_str), 66); |
|---|
| 47 | is(MT::I18N::substr_text($utf8_str, 0, 4), $utf8_substr); |
|---|
| 48 | is(MT::I18N::length_text($utf8_str), 22); |
|---|
| 49 | is(lc $MT::I18N::ja::PKG, 'encode'); |
|---|
| 50 | is(MT::I18N::encode_text($utf8_str, undef, 'utf-8'), $utf8_str); |
|---|
| 51 | |
|---|
| 52 | MT->config('PublishCharset', 'Shift_JIS'); |
|---|
| 53 | is(length($sjis_str), 44); |
|---|
| 54 | is(MT::I18N::substr_text($sjis_str, 0, 4), $sjis_substr); |
|---|
| 55 | is(MT::I18N::length_text($sjis_str), 22); |
|---|
| 56 | is(MT::I18N::encode_text($sjis_str, undef, 'utf-8'), $utf8_str); |
|---|
| 57 | |
|---|
| 58 | MT->config('PublishCharset', 'euc-jp'); |
|---|
| 59 | is(length($euc_str), 44); |
|---|
| 60 | is(MT::I18N::substr_text($euc_str, 0, 4), $euc_substr); |
|---|
| 61 | is(MT::I18N::length_text($euc_str), 22); |
|---|
| 62 | is(MT::I18N::encode_text($euc_str, undef, 'utf-8'), $utf8_str); |
|---|
| 63 | |
|---|
| 64 | MT->config('PublishCharset', 'iso-2022-jp'); |
|---|
| 65 | is(length($iso2022_str), 50); |
|---|
| 66 | is(MT::I18N::substr_text($iso2022_str, 0, 4), $iso2022_substr); |
|---|
| 67 | is(MT::I18N::length_text($iso2022_str), 22); |
|---|
| 68 | is(MT::I18N::encode_text($iso2022_str, undef, 'utf-8'), $utf8_str); |
|---|
| 69 | |
|---|
| 70 | MT->config('UseJcodeModule', 1); |
|---|
| 71 | undef $MT::I18N::ja::PKG; |
|---|
| 72 | |
|---|
| 73 | MT->config('PublishCharset', 'utf-8'); |
|---|
| 74 | #binmode(STDOUT, 'utf-8'); |
|---|
| 75 | #print "UTF-8: [$utf8_str]\n"; |
|---|
| 76 | is(length($utf8_str), 66); |
|---|
| 77 | is(MT::I18N::substr_text($utf8_str, 0, 4), $utf8_substr); |
|---|
| 78 | is(MT::I18N::length_text($utf8_str), 22); |
|---|
| 79 | is(lc $MT::I18N::ja::PKG, 'jcode'); |
|---|
| 80 | is(MT::I18N::encode_text($utf8_str, undef, 'utf-8'), $utf8_str); |
|---|
| 81 | |
|---|
| 82 | MT->config('PublishCharset', 'Shift_JIS'); |
|---|
| 83 | #binmode(STDOUT, 'Shift_JIS'); |
|---|
| 84 | #print "Shift_JIS: [$sjis_str]\n"; |
|---|
| 85 | is(length($sjis_str), 44); |
|---|
| 86 | is(MT::I18N::substr_text($sjis_str, 0, 4), $sjis_substr); |
|---|
| 87 | is(MT::I18N::length_text($sjis_str), 22); |
|---|
| 88 | is(MT::I18N::encode_text($sjis_str, undef, 'utf-8'), $utf8_str); |
|---|
| 89 | |
|---|
| 90 | MT->config('PublishCharset', 'euc-jp'); |
|---|
| 91 | #binmode(STDOUT, 'euc-jp'); |
|---|
| 92 | #print "EUC-JP: [$euc_str]\n"; |
|---|
| 93 | is(length($euc_str), 44); |
|---|
| 94 | is(MT::I18N::substr_text($euc_str, 0, 4), $euc_substr); |
|---|
| 95 | is(MT::I18N::length_text($euc_str), 22); |
|---|
| 96 | is(MT::I18N::encode_text($euc_str, undef, 'utf-8'), $utf8_str); |
|---|
| 97 | |
|---|
| 98 | MT->config('PublishCharset', 'iso-2022-jp'); |
|---|
| 99 | #binmode(STDOUT, 'iso-2022-jp'); |
|---|
| 100 | #print "ISO-2022-JP: [ $iso2022_str ]\n"; |
|---|
| 101 | is(length($iso2022_str), 50); |
|---|
| 102 | is(MT::I18N::substr_text($iso2022_str, 0, 4), $iso2022_substr); |
|---|
| 103 | is(MT::I18N::length_text($iso2022_str), 22); |
|---|
| 104 | is(MT::I18N::encode_text($iso2022_str, undef, 'utf-8'), $utf8_str); |
|---|