1 2use Test::More; 3use strict; 4 5BEGIN { plan tests => 90 }; 6 7BEGIN { $ENV{PERL_JSON_BACKEND} = 1; } 8 9 10use JSON; 11 12SKIP: { 13 skip "can't use JSON::XS.", 90, unless( JSON->backend->is_xs ); 14 15my @simples = 16 qw/ascii latin1 utf8 indent canonical space_before space_after allow_nonref shrink allow_blessed 17 convert_blessed relaxed 18 /; 19 20my $json = new JSON; 21 22for my $name (@simples) { 23 my $method = 'get_' . $name; 24 ok(! $json->$method(), $method . ' default'); 25 $json->$name(); 26 ok($json->$method(), $method . ' set true'); 27 $json->$name(0); 28 ok(! $json->$method(), $method . ' set false'); 29 $json->$name(); 30 ok($json->$method(), $method . ' set true again'); 31} 32 33 34ok($json->get_max_depth == 512, 'get_max_depth default'); 35$json->max_depth(7); 36ok($json->get_max_depth == 7, 'get_max_depth set 7 => 7'); 37$json->max_depth(); 38ok($json->get_max_depth != 0, 'get_max_depth no arg'); 39 40ok($json->get_max_size == 0, 'get_max_size default'); 41$json->max_size(7); 42ok($json->get_max_size == 7, 'get_max_size set 7 => 7'); 43$json->max_size(); 44ok($json->get_max_size == 0, 'get_max_size no arg'); 45 46 47for my $name (@simples) { 48 $json->$name(); 49 ok($json->property($name), $name); 50 $json->$name(0); 51 ok(! $json->property($name), $name); 52 $json->$name(); 53 ok($json->property($name), $name); 54} 55 56} 57