OLD | NEW |
(Empty) | |
| 1 use strict; |
| 2 use Test::More; |
| 3 BEGIN { plan tests => 31 }; |
| 4 |
| 5 BEGIN { $ENV{PERL_JSON_BACKEND} = 1; } |
| 6 |
| 7 local $^W; |
| 8 |
| 9 BEGIN { |
| 10 use lib qw(t); |
| 11 use _unicode_handling; |
| 12 } |
| 13 |
| 14 use utf8; |
| 15 use JSON; |
| 16 |
| 17 SKIP: { |
| 18 skip "can't use JSON::XS.", 31, unless( JSON->backend->is_xs ); |
| 19 |
| 20 eval { JSON->new->encode ([\-1]) }; ok $@ =~ /cannot encode reference/; |
| 21 eval { JSON->new->encode ([\undef]) }; ok $@ =~ /cannot encode reference/; |
| 22 eval { JSON->new->encode ([\2]) }; ok $@ =~ /cannot encode reference/; |
| 23 eval { JSON->new->encode ([\{}]) }; ok $@ =~ /cannot encode reference/; |
| 24 eval { JSON->new->encode ([\[]]) }; ok $@ =~ /cannot encode reference/; |
| 25 eval { JSON->new->encode ([\\1]) }; ok $@ =~ /cannot encode reference/; |
| 26 |
| 27 eval { JSON->new->allow_nonref (1)->decode ('"\u1234\udc00"') }; ok $@ =~ /missi
ng high /; |
| 28 eval { JSON->new->allow_nonref->decode ('"\ud800"') }; ok $@ =~ /missing low /; |
| 29 eval { JSON->new->allow_nonref (1)->decode ('"\ud800\u1234"') }; ok $@ =~ /surro
gate pair /; |
| 30 |
| 31 eval { JSON->new->decode ('null') }; ok $@ =~ /allow_nonref/; |
| 32 eval { JSON->new->allow_nonref (1)->decode ('+0') }; ok $@ =~ /malformed/; |
| 33 eval { JSON->new->allow_nonref->decode ('.2') }; ok $@ =~ /malformed/; |
| 34 eval { JSON->new->allow_nonref (1)->decode ('bare') }; ok $@ =~ /malformed/; |
| 35 eval { JSON->new->allow_nonref->decode ('naughty') }; ok $@ =~ /null/; |
| 36 eval { JSON->new->allow_nonref (1)->decode ('01') }; ok $@ =~ /leading zero/; |
| 37 eval { JSON->new->allow_nonref->decode ('00') }; ok $@ =~ /leading zero/; |
| 38 eval { JSON->new->allow_nonref (1)->decode ('-0.') }; ok $@ =~ /decimal point/; |
| 39 eval { JSON->new->allow_nonref->decode ('-0e') }; ok $@ =~ /exp sign/; |
| 40 eval { JSON->new->allow_nonref (1)->decode ('-e+1') }; ok $@ =~ /initial minus/; |
| 41 eval { JSON->new->allow_nonref->decode ("\"\n\"") }; ok $@ =~ /invalid character
/; |
| 42 eval { JSON->new->allow_nonref (1)->decode ("\"\x01\"") }; ok $@ =~ /invalid cha
racter/; |
| 43 eval { JSON->new->decode ('[5') }; ok $@ =~ /parsing array/; |
| 44 eval { JSON->new->decode ('{"5"') }; ok $@ =~ /':' expected/; |
| 45 eval { JSON->new->decode ('{"5":null') }; ok $@ =~ /parsing object/; |
| 46 |
| 47 eval { JSON->new->decode (undef) }; ok $@ =~ /malformed/; |
| 48 eval { JSON->new->decode (\5) }; ok !!$@; # Can't coerce readonly |
| 49 eval { JSON->new->decode ([]) }; ok $@ =~ /malformed/; |
| 50 eval { JSON->new->decode (\*STDERR) }; ok $@ =~ /malformed/; |
| 51 eval { JSON->new->decode (*STDERR) }; ok !!$@; # cannot coerce GLOB |
| 52 |
| 53 # differences between JSON::XS and JSON::PP |
| 54 |
| 55 eval { decode_json ("\"\xa0") }; ok $@ =~ /malformed.*character/; |
| 56 eval { decode_json ("\"\xa0\"") }; ok $@ =~ /malformed.*character/; |
| 57 |
| 58 #eval { decode_json ("\"\xa0") }; ok $@ =~ /JSON text must be an object or array
/; |
| 59 #eval { decode_json ("\"\xa0\"") }; ok $@ =~ /JSON text must be an object or arr
ay/; |
| 60 |
| 61 } |
OLD | NEW |