1use Test::More; 2 3BEGIN { plan tests => 26 }; 4 5BEGIN { $ENV{PERL_JSON_BACKEND} = 1; } 6use JSON; 7 8SKIP: { 9 skip "can't use JSON::XS.", 26, unless( JSON->backend->is_xs ); 10 11is(to_json([JSON::true]), q|[true]|); 12is(to_json([JSON::false]), q|[false]|); 13is(to_json([JSON::null]), q|[null]|); 14 15my $jsontext = q|[true,false,null]|; 16my $obj = from_json($jsontext); 17 18isa_ok($obj->[0], 'JSON::Boolean'); 19isa_ok($obj->[1], 'JSON::Boolean'); 20ok(!defined $obj->[2], 'null is undef'); 21 22ok($obj->[0] == 1); 23ok($obj->[0] != 0); 24ok($obj->[1] == 0); 25ok($obj->[1] != 1); 26 27ok($obj->[0] eq 'true', 'eq true'); 28ok($obj->[0] ne 'false', 'ne false'); 29ok($obj->[1] eq 'false', 'eq false'); 30ok($obj->[1] ne 'true', 'ne true'); 31 32ok($obj->[0] eq $obj->[0]); 33ok($obj->[0] ne $obj->[1]); 34 35ok(JSON::true eq 'true'); 36ok(JSON::true ne 'false'); 37ok(JSON::true ne 'null'); 38ok(JSON::false eq 'false'); 39ok(JSON::false ne 'true'); 40ok(JSON::false ne 'null'); 41ok(!defined JSON::null); 42 43is(from_json('[true]' )->[0], JSON::true); 44is(from_json('[false]')->[0], JSON::false); 45is(from_json('[null]' )->[0], JSON::null); 46 47} 48