Commit | Line | Data |
0a95303c |
1 | BEGIN { |
2 | # chdir 't' if -d 't'; |
3 | # @INC = (-d '../../lib' ? '../lib'; |
4 | require Config; import Config; |
5 | if ($Config{'extensions'} !~ /\bEncode\b/) { |
6 | print "1..0 # Skip: Encode was not built\n"; |
7 | exit 0; |
8 | } |
9 | $| = 1; |
10 | } |
11 | use Test::More tests => 22; |
12 | use Encode; |
13 | use File::Basename; |
14 | use File::Spec; |
15 | use File::Compare; |
16 | require_ok "Encode::Japanese"; |
17 | |
18 | ok(defined(my $enc = find_encoding('euc-jp'))); |
19 | ok($enc->isa('Encode::XS')); |
20 | is($enc->name,'euc-jp'); |
21 | my $dir = dirname(__FILE__); |
22 | my $euc = File::Spec->catfile($dir,"table.euc"); |
23 | my $utf = File::Spec->catfile($dir,"table.utf8"); |
24 | my $ref = File::Spec->catfile($dir,"table.ref"); |
25 | my $rnd = File::Spec->catfile($dir,"table.rnd"); |
26 | print "# Basic decode test\n"; |
27 | open(my $src,"<",$euc) || die "Cannot open $euc:$!"; |
28 | ok(defined($src) && fileno($src)); |
29 | my $txt = join('',<$src>); |
30 | open(my $dst,">:utf8",$utf) || die "Cannot open $utf:$!"; |
31 | ok(defined($dst) && fileno($dst)); |
32 | my $uni = $enc->decode($txt,1); |
33 | ok(defined($uni)); |
34 | is(length($txt),0); |
35 | print $dst $uni; |
36 | close($dst); |
37 | close($src); |
38 | ok(compare($utf,$ref) == 0); |
39 | |
40 | print "# Basic encode test\n"; |
41 | open(my $src,"<:utf8",$ref) || die "Cannot open $ref:$!"; |
42 | ok(defined($src) && fileno($src)); |
43 | my $uni = join('',<$src>); |
44 | open(my $dst,">",$rnd) || die "Cannot open $rnd:$!"; |
45 | ok(defined($dst) && fileno($dst)); |
46 | my $txt = $enc->encode($uni,1); |
47 | ok(defined($txt)); |
48 | is(length($uni),0); |
49 | print $dst $txt; |
50 | close($dst); |
51 | close($src); |
52 | ok(compare($euc,$rnd) == 0); |
53 | |
54 | is($enc->name,'euc-jp'); |
55 | |
56 | print "# src :encoding test\n"; |
57 | open(my $src,"<encoding(euc-jp)",$euc) || die "Cannot open $euc:$!"; |
58 | ok(defined($src) && fileno($src)); |
59 | open(my $dst,">:utf8",$utf) || die "Cannot open $utf:$!"; |
60 | ok(defined($dst) || fileno($dst)); |
61 | $out = select($dst); |
62 | while (<$src>) |
63 | { |
64 | print; |
65 | } |
66 | close($dst); |
67 | close($src); |
68 | ok(compare($utf,$ref) == 0); |
69 | select($out); |
70 | |
71 | SKIP: |
72 | { |
25f7d9d3 |
73 | #skip "Multi-byte write is broken",3; |
0a95303c |
74 | print "# dst :encoding test\n"; |
75 | open(my $src,"<:utf8",$ref) || die "Cannot open $ref:$!"; |
76 | ok(defined($src) || fileno($src)); |
77 | open(my $dst,">encoding(euc-jp)",$rnd) || die "Cannot open $rnd:$!"; |
78 | ok(defined($dst) || fileno($dst)); |
79 | my $out = select($dst); |
80 | while (<$src>) |
81 | { |
82 | print; |
83 | } |
84 | close($dst); |
85 | close($src); |
86 | ok(compare($euc,$rnd) == 0); |
87 | select($out); |
88 | } |
89 | |
90 | is($enc->name,'euc-jp'); |
91 | END { |
92 | # unlink($utf,$rnd); |
93 | |
94 | } |