Home | History | Annotate | Download | only in t
      1 # copied over from JSON::XS and modified to use JSON
      2 
      3 use strict;
      4 use Test::More;
      5 BEGIN { plan tests => 9 };
      6 
      7 BEGIN { $ENV{PERL_JSON_BACKEND} = "JSON::backportPP"; }
      8 
      9 BEGIN {
     10     use lib qw(t);
     11     use _unicode_handling;
     12 }
     13 
     14 
     15 use utf8;
     16 use JSON;
     17 
     18 
     19 ok (JSON->new->allow_nonref (1)->utf8 (1)->encode ("") eq "\"\xc3\xbc\"");
     20 ok (JSON->new->allow_nonref (1)->encode ("") eq "\"\"");
     21 
     22 SKIP: {
     23     skip "UNICODE handling is disabale.", 7 unless $JSON::can_handle_UTF16_and_utf8;
     24 
     25 ok (JSON->new->allow_nonref (1)->ascii (1)->utf8 (1)->encode (chr 0x8000) eq '"\u8000"');
     26 ok (JSON->new->allow_nonref (1)->ascii (1)->utf8 (1)->pretty (1)->encode (chr 0x10402) eq "\"\\ud801\\udc02\"\n");
     27 
     28 eval { JSON->new->allow_nonref (1)->utf8 (1)->decode ('""') };
     29 ok $@ =~ /malformed UTF-8/;
     30 
     31 ok (JSON->new->allow_nonref (1)->decode ('""') eq "");
     32 ok (JSON->new->allow_nonref (1)->decode ('"\u00fc"') eq "");
     33 ok (JSON->new->allow_nonref (1)->decode ('"\ud801\udc02' . "\x{10204}\"") eq "\x{10402}\x{10204}");
     34 ok (JSON->new->allow_nonref (1)->decode ('"\"\n\\\\\r\t\f\b"') eq "\"\012\\\015\011\014\010");
     35 
     36 }
     37