Integrate perlio:
[p5sagit/p5-mst-13.2.git] / ext / Encode / t / Aliases.t
CommitLineData
5d030b67 1#!../perl
2
3use strict;
5129552c 4use Encode;
5use Encode::Alias;
5d030b67 6
9d2ff094 7BEGIN {
8 if (ord("A") == 193) {
9 print "1..0 # Skip: EBCDIC\n";
10 exit 0;
11 }
12}
13
5d030b67 14my %a2c;
15
16BEGIN {
17 %a2c = (
18 'ascii' => 'US-ascii',
19 'cyrillic' => 'iso-8859-5',
20 'arabic' => 'iso-8859-6',
21 'greek' => 'iso-8859-7',
22 'hebrew' => 'iso-8859-8',
23 'thai' => 'iso-8859-11',
24 'tis620' => 'iso-8859-11',
25 'ja_JP.euc' => 'euc-jp',
26 'x-euc-jp' => 'euc-jp',
27 'zh_CN.euc' => 'euc-cn',
28 'x-euc-cn' => 'euc-cn',
29 'ko_KR.euc' => 'euc-kr',
30 'x-euc-kr' => 'euc-kr',
31 'ujis' => 'euc-jp',
32 'Shift_JIS' => 'shiftjis',
33 'x-sjis' => 'shiftjis',
34 'jis' => '7bit-jis',
35 'big-5' => 'big5',
36 'zh_TW.Big5' => 'big5',
37 'big5-hk' => 'big5-hkscs',
38 'WinLatin1' => 'cp1252',
39 'WinLatin2' => 'cp1250',
40 'WinCyrillic' => 'cp1251',
41 'WinGreek' => 'cp1253',
42 'WinTurkish' => 'cp1254',
43 'WinHebrew' => 'cp1255',
44 'WinArabic' => 'cp1256',
45 'WinBaltic' => 'cp1257',
46 'WinVietnamese' => 'cp1258',
47 );
48
49 for my $i (1..11,13..16){
50 $a2c{"ISO 8859 $i"} = "iso-8859-$i";
51 }
52 for my $i (1..10){
53 $a2c{"ISO Latin $i"} = "iso-8859-$Encode::Alias::Latin2iso[$i]";
54 }
55 for my $k (keys %Encode::Alias::Winlatin2cp){
56 my $v = $Encode::Alias::Winlatin2cp{$k};
57 $a2c{"Win" . ucfirst($k)} = "cp" . $v;
58 $a2c{"IBM-$v"} = "cp" . $v;
59 $a2c{"MS-$v"} = "cp" . $v;
60 }
61}
62
5129552c 63use Test::More tests => (scalar keys %a2c) * 3;
5d030b67 64
65print "# alias test\n";
66
67foreach my $a (keys %a2c){
68 my $e = Encode::find_encoding($a);
69 is((defined($e) and $e->name), $a2c{$a});
70}
71
72# now we override some of the aliases and see if it works fine
73
5129552c 74define_alias( qr/shift.*jis$/i => '"macjapan"' );
75define_alias( qr/sjis$/i => '"cp932"' );
5d030b67 76
77@a2c{qw(Shift_JIS x-sjis)} = qw(macjapan cp932);
78
79print "# alias test with alias overrides\n";
80
81foreach my $a (keys %a2c){
82 my $e = Encode::find_encoding($a);
83 is((defined($e) and $e->name), $a2c{$a});
84}
85
5129552c 86print "# alias undef test\n";
87
88Encode::Alias->undef_aliases;
89foreach my $a (keys %a2c){
90 my $e = Encode::find_encoding($a);
91 ok(!defined($e));
92}
93
5d030b67 94__END__
95for (my $i = 0; $i < @Encode::Alias::Alias; $i+=2){
96 my ($k, $v) = @Encode::Alias::Alias[$i, $i+1];
97 print "$k => $v\n";
98}
99
100