-
Notifications
You must be signed in to change notification settings - Fork 1
/
42common.t
67 lines (49 loc) · 1.92 KB
/
42common.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#########################
use Test;
BEGIN { plan tests => 12 };
use XML::LibXML::Common qw( :libxml :encoding );
use constant TEST_STRING_GER => "Hänsel und Gretel";
use constant TEST_STRING_GER2 => "täst";
use constant TEST_STRING_UTF => 'test';
use constant TEST_STRING_JP => 'À¸ÇþÀ¸ÊÆÀ¸Íñ';
ok(1); # If we made it this far, we're ok.
#########################
# ok( ELEMENT_NODE, 1 );
ok( XML_ELEMENT_NODE, 1 );
# encoding();
ok( decodeFromUTF8('iso-8859-1',
encodeToUTF8('iso-8859-1',
TEST_STRING_GER2 ) ),
TEST_STRING_GER2 );
ok( decodeFromUTF8( 'UTF-8' ,
encodeToUTF8('UTF-8', TEST_STRING_UTF ) ),
TEST_STRING_UTF );
my $u16 = decodeFromUTF8( 'UTF-16',
encodeToUTF8('UTF-8', TEST_STRING_UTF ) );
ok( length($u16), 2*length(TEST_STRING_UTF));
my $u16be = decodeFromUTF8( 'UTF-16BE',
encodeToUTF8('UTF-8', TEST_STRING_UTF ) );
ok( length($u16be), 2*length(TEST_STRING_UTF));
my $u16le = decodeFromUTF8( 'UTF-16LE',
encodeToUTF8('UTF-8', TEST_STRING_UTF ) );
ok( length($u16le), 2*length(TEST_STRING_UTF));
#bad encoding name test.
eval {
my $str = encodeToUTF8( "foo" , TEST_STRING_GER2 );
};
ok( length( $@ ) );
ok((eval { encodeToUTF8( 'UTF-16' , '' ) eq '' ? 1 : 0 }) ==1);
print $@ if $@;
ok(eval { defined(encodeToUTF8( 'UTF-16' , undef )) ? 0 : 1 }==1);
ok(eval { decodeFromUTF8( 'UTF-16' , '' ) eq '' ? 1 : 0 }==1);
print $@ if $@;
ok(eval { defined(decodeFromUTF8( 'UTF-16' , undef )) ? 0 : 1 }==1);
print $@ if $@;
# here should be a test to test badly encoded strings. but for some
# reasons i am unable to create an apropriate test :(
# uncomment these lines if your system is capable to handel not only i
# so latin 1
#ok( decodeFromUTF8('EUC-JP',
# encodeToUTF8('EUC-JP',
# TEST_STRING_JP ) ),
# TEST_STRING_JP );