11 plan skip_all => "Encode is not available"
14 eval { require Encode; Encode->import(); };
16 plan skip_all => "Encode is not available"
19 # use Test::NoWarnings, if available
22 my $st = eval { require Test::NoWarnings ; import Test::NoWarnings; 1; };
26 plan(tests => 7 + $extra) ;
31 my $CompressClass = identify();
32 my $UncompressClass = getInverse($CompressClass);
33 my $Error = getErrorRef($CompressClass);
34 my $UnError = getErrorRef($UncompressClass);
37 my $string = "\x{df}\x{100}";
38 my $encString = Encode::encode_utf8($string);
39 my $buffer = $encString;
41 #for my $from ( qw(filename filehandle buffer) )
44 # my $lex = new LexFile my $name ;
47 # if ($from eq 'buffer')
48 # { $input = \$buffer }
49 # elsif ($from eq 'filename')
52 # writeFile($name, $buffer);
54 # elsif ($from eq 'filehandle')
56 # $input = new IO::File "<$name" ;
59 for my $to ( qw(filehandle buffer))
61 title "OO Mode: To $to, Encode by hand";
63 my $lex2 = new LexFile my $name2 ;
68 { $output = \$buffer }
69 elsif ($to eq 'filename')
73 elsif ($to eq 'filehandle')
75 $output = new IO::File ">$name2" ;
80 my $cs = new $CompressClass($output, AutoClose =>1);
81 $cs->print($encString);
92 my $ucs = new $UncompressClass($input, Append => 1);
94 1 while $ucs->read($got) > 0 ;
95 my $decode = Encode::decode_utf8($got);
98 is $string, $decode, " Expected output";
105 title "Catch wide characters";
108 my $cs = new $CompressClass(\$out);
109 my $a = "a\xFF\x{100}";
110 eval { $cs->syswrite($a) };
111 like($@, qr/Wide character in ${CompressClass}::write/,
112 " wide characters in ${CompressClass}::write");
113 eval { syswrite($cs, $a) };
114 like($@, qr/Wide character in ${CompressClass}::write/,
115 " wide characters in ${CompressClass}::write");