|
1 | | -use Test::More tests => 162; |
| 1 | +use Test::More tests => 152; |
2 | 2 | use utf8; |
3 | 3 | use Cpanel::JSON::XS; |
4 | 4 | use warnings; |
@@ -43,56 +43,6 @@ SKIP: { |
43 | 43 | # TODO: test utf8 hash keys, |
44 | 44 | # test utf8 strings without any char > 0x80. |
45 | 45 |
|
46 | | -# warn on the 66 non-characters as in core |
47 | | -{ |
48 | | - BEGIN { 'warnings'->import($] < 5.014 ? 'utf8' : 'nonchar') } |
49 | | - my $w = ''; |
50 | | - $SIG{__WARN__} = sub { $w = shift }; |
51 | | - my $d = Cpanel::JSON::XS->new->allow_nonref->decode('"\ufdd0"'); |
52 | | - my $warn = $w; |
53 | | - { |
54 | | - no warnings 'utf8'; |
55 | | - is ($d, "\x{fdd0}", substr($warn,0,31)."..."); |
56 | | - } |
57 | | - like ($warn, qr/^Unicode non-character U\+FDD0 is/); |
58 | | - $w = ''; |
59 | | - # higher planes |
60 | | - $d = Cpanel::JSON::XS->new->allow_nonref->decode('"\ud83f\udfff"'); |
61 | | - $warn = $w; |
62 | | - { |
63 | | - no warnings 'utf8'; |
64 | | - is ($d, "\x{1ffff}", substr($warn,0,31)."..."); |
65 | | - } |
66 | | - like ($w, qr/^Unicode non-character U\+1FFFF is/); |
67 | | - $w = ''; |
68 | | - $d = Cpanel::JSON::XS->new->allow_nonref->decode('"\ud87f\udffe"'); |
69 | | - $warn = $w; |
70 | | - { |
71 | | - no warnings 'utf8'; |
72 | | - is ($d, "\x{2fffe}", substr($warn,0,31)."..."); |
73 | | - } |
74 | | - like ($w, qr/^Unicode non-character U\+2FFFE is/); |
75 | | - |
76 | | - $w = ''; |
77 | | - $d = Cpanel::JSON::XS->new->allow_nonref->decode('"\ud8a4\uddd1"'); |
78 | | - $warn = $w; |
79 | | - is ($d, "\x{391d1}", substr($warn,0,31)."..."); |
80 | | - is ($w, ''); |
81 | | -} |
82 | | -{ |
83 | | - my $w; |
84 | | - BEGIN { 'warnings'->import($] < 5.014 ? 'utf8' : 'nonchar') } |
85 | | - $SIG{__WARN__} = sub { $w = shift }; |
86 | | - # no warning with relaxed |
87 | | - my $d = Cpanel::JSON::XS->new->allow_nonref->relaxed->decode('"\ufdd0"'); |
88 | | - my $warn = $w; |
89 | | - { |
90 | | - no warnings 'utf8'; |
91 | | - is ($d, "\x{fdd0}", "no warning with relaxed"); |
92 | | - } |
93 | | - is($w, undef); |
94 | | -} |
95 | | - |
96 | 46 | # security exploits via ill-formed subsequences |
97 | 47 | # see http://unicode.org/reports/tr36/#UTF-8_Exploit |
98 | 48 | # testcases from Encode/t/utf8strict.t |
|
0 commit comments