Index: third_party/JSON/JSON-2.59/t/xe03_bool2.t |
diff --git a/third_party/JSON/JSON-2.59/t/xe03_bool2.t b/third_party/JSON/JSON-2.59/t/xe03_bool2.t |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7d68b32d9b0e416a56af75443e9a7104a347fcfa |
--- /dev/null |
+++ b/third_party/JSON/JSON-2.59/t/xe03_bool2.t |
@@ -0,0 +1,47 @@ |
+use Test::More; |
+ |
+BEGIN { plan tests => 26 }; |
+ |
+BEGIN { $ENV{PERL_JSON_BACKEND} = 1; } |
+use JSON; |
+ |
+SKIP: { |
+ skip "can't use JSON::XS.", 26, unless( JSON->backend->is_xs ); |
+ |
+is(to_json([JSON::true]), q|[true]|); |
+is(to_json([JSON::false]), q|[false]|); |
+is(to_json([JSON::null]), q|[null]|); |
+ |
+my $jsontext = q|[true,false,null]|; |
+my $obj = from_json($jsontext); |
+ |
+isa_ok($obj->[0], 'JSON::Boolean'); |
+isa_ok($obj->[1], 'JSON::Boolean'); |
+ok(!defined $obj->[2], 'null is undef'); |
+ |
+ok($obj->[0] == 1); |
+ok($obj->[0] != 0); |
+ok($obj->[1] == 0); |
+ok($obj->[1] != 1); |
+ |
+ok($obj->[0] eq 'true', 'eq true'); |
+ok($obj->[0] ne 'false', 'ne false'); |
+ok($obj->[1] eq 'false', 'eq false'); |
+ok($obj->[1] ne 'true', 'ne true'); |
+ |
+ok($obj->[0] eq $obj->[0]); |
+ok($obj->[0] ne $obj->[1]); |
+ |
+ok(JSON::true eq 'true'); |
+ok(JSON::true ne 'false'); |
+ok(JSON::true ne 'null'); |
+ok(JSON::false eq 'false'); |
+ok(JSON::false ne 'true'); |
+ok(JSON::false ne 'null'); |
+ok(!defined JSON::null); |
+ |
+is(from_json('[true]' )->[0], JSON::true); |
+is(from_json('[false]')->[0], JSON::false); |
+is(from_json('[null]' )->[0], JSON::null); |
+ |
+} |