| 1 | use strict; |
|---|
| 2 | use warnings; |
|---|
| 3 | use Test::More tests => 25; |
|---|
| 4 | use Encode::JP::Mobile; |
|---|
| 5 | use Encode::JP::Mobile::KDDIJIS; |
|---|
| 6 | use Encode; |
|---|
| 7 | |
|---|
| 8 | sub test_it { |
|---|
| 9 | my ($jis, $uni, $case) = @_; |
|---|
| 10 | $case ||= unpack "H*", $uni; |
|---|
| 11 | |
|---|
| 12 | is decode("x-iso-2022-jp-kddi", $jis), $uni, "decoding $case"; |
|---|
| 13 | is $jis, encode("x-iso-2022-jp-kddi", $uni), "encoding $case"; |
|---|
| 14 | |
|---|
| 15 | # test kddi-auto Unicode chars as well ... rare in reality though |
|---|
| 16 | my $bytes = $jis; |
|---|
| 17 | Encode::from_to($bytes, "x-iso-2022-jp-kddi" => "x-sjis-kddi"); |
|---|
| 18 | Encode::from_to($bytes, "x-sjis-kddi-auto", "x-iso-2022-jp-kddi"); |
|---|
| 19 | is $bytes, $jis, "x-sjis-kddi-auto $case"; |
|---|
| 20 | } |
|---|
| 21 | |
|---|
| 22 | test_it("\e\$B\x75\x41\e(B", "\x{E488}", "pictogram"); |
|---|
| 23 | |
|---|
| 24 | test_it "a", decode('utf8', 'a'), 'alphabet'; |
|---|
| 25 | test_it "\e\$B\x24\x57\e\(B", "\x{3077}", 'kanji(tora)'; |
|---|
| 26 | |
|---|
| 27 | is encode('x-iso-2022-jp-kddi', "\x{5bc5}"), encode('iso-2022-jp', "\x{5bc5}"), "kanji"; |
|---|
| 28 | |
|---|
| 29 | test_it "\e\$B\x75\x41\e(B", "\x{E488}", 'pictogram'; |
|---|
| 30 | test_it "\e\$B\x75\x41\x76\x76\e(B", "\x{e488}\x{e51b}", 'pictogram'; |
|---|
| 31 | test_it encode('iso-2022-jp', decode("utf8", "お")), decode('utf8', "お"), 'o'; |
|---|
| 32 | test_it encode('iso-2022-jp', decode("utf8", "おいおい。山岡くん。kanbenしてくれよ!表示。")), decode('utf8', "おいおい。山岡くん。kanbenしてくれよ!表示。"), 'kanji, hiragana, alphabet'; |
|---|
| 33 | test_it "\e\(I\x54\x2F\x4E\x5F\e(B", decode('utf8', "ヤッポ"), 'half width katakana'; |
|---|
| 34 | |
|---|
| 35 | # is decode('x-iso-2022-jp-kddi', "\e\$(D\x2B\x21\x30\x57\e(B"), "\x{00E1}\x{4F0C}", 'JIS X 0212'; |
|---|