Home | History | Annotate | Download | only in t
      1 #
      2 # decode on Perl 5.005, 5.6, 5.8 or later
      3 #
      4 use strict;
      5 use Test::More;
      6 
      7 BEGIN { plan tests => 6 };
      8 
      9 BEGIN { $ENV{PERL_JSON_BACKEND} = "JSON::backportPP"; }
     10 
     11 use JSON;
     12 
     13 BEGIN {
     14     use lib qw(t);
     15     use _unicode_handling;
     16 }
     17 
     18 no utf8;
     19 
     20 my $json = JSON->new->allow_nonref;
     21 
     22 
     23 is($json->decode(q|""|),                   ""); # utf8
     24 is($json->decode(q|"\u00fc"|),           "\xfc"); # latin1
     25 is($json->decode(q|"\u00c3\u00bc"|), "\xc3\xbc"); # utf8
     26 
     27 my $str = ''; # Japanese 'a' in utf8
     28 
     29 is($json->decode(q|"\u00e3\u0081\u0082"|), $str);
     30 
     31 utf8::decode($str); # usually UTF-8 flagged on, but no-op for 5.005.
     32 
     33 is($json->decode(q|"\u3042"|), $str);
     34 
     35 
     36 my $utf8 = $json->decode(q|"\ud808\udf45"|); # chr 12345
     37 
     38 utf8::encode($utf8); # UTf-8 flaged off
     39 
     40 is($utf8, "\xf0\x92\x8d\x85");
     41 
     42