🌌 SpectraShell
Current path:
home
/
.cpan
/
build
/
JSON-4.10-0
/
t
/
👤 Create WP Admin
⬆️
Go up: JSON-4.10-0
✏️ Editing: 118_boolean_values.t
use strict; use warnings; use Test::More; BEGIN { $ENV{PERL_JSON_BACKEND} ||= "JSON::backportPP"; } use JSON; BEGIN { plan skip_all => "requires Perl 5.008 or later" if $] < 5.008 } BEGIN { plan skip_all => "requires JSON::XS 4 compat backend" if ($JSON::BackendModulePP and eval $JSON::BackendModulePP->VERSION < 3) or ($JSON::BackendModule eq 'Cpanel::JSON::XS') or ($JSON::BackendModule eq 'JSON::XS' and $JSON::BackendModule->VERSION < 4); } package # Dummy::True; *Dummy::True:: = *JSON::PP::Boolean::; package # Dummy::False; *Dummy::False:: = *JSON::PP::Boolean::; package main; my $dummy_true = bless \(my $dt = 1), 'Dummy::True'; my $dummy_false = bless \(my $df = 0), 'Dummy::False'; my @tests = ([$dummy_true, $dummy_false, 'Dummy::True', 'Dummy::False']); # extra boolean classes if (eval "require boolean; 1") { push @tests, [boolean::true(), boolean::false(), 'boolean', 'boolean', 1]; } if (eval "require JSON; 1") { push @tests, [JSON::true(), JSON::false(), 'JSON::PP::Boolean', 'JSON::PP::Boolean']; push @tests, [JSON->boolean(11), JSON->boolean(undef), 'JSON::PP::Boolean', 'JSON::PP::Boolean']; push @tests, [JSON::boolean(11), JSON::boolean(undef), 'JSON::PP::Boolean', 'JSON::PP::Boolean']; } if (eval "require Data::Bool; 1") { push @tests, [Data::Bool::true(), Data::Bool::false(), 'Data::Bool::Impl', 'Data::Bool::Impl']; } if (eval "require Types::Serialiser; 1") { push @tests, [Types::Serialiser::true(), Types::Serialiser::false(), 'Types::Serialiser::BooleanBase', 'Types::Serialiser::BooleanBase']; } plan tests => 15 * @tests; my $json = JSON->new; for my $test (@tests) { my ($true, $false, $true_class, $false_class, $incompat) = @$test; my $ret = $json->boolean_values($false, $true); is $ret => $json, "returns the same object"; my ($new_false, $new_true) = $json->get_boolean_values; ok defined $new_true, "new true class is defined"; ok defined $new_false, "new false class is defined"; ok $new_true->isa($true_class), "new true class is $true_class"; ok $new_false->isa($false_class), "new false class is $false_class"; SKIP: { skip "$true_class is not compatible with JSON::PP::Boolean", 2 if $incompat; ok $new_true->isa('JSON::PP::Boolean'), "new true class is also JSON::PP::Boolean"; ok $new_false->isa('JSON::PP::Boolean'), "new false class is also JSON::PP::Boolean"; } my $should_true = $json->allow_nonref(1)->decode('true'); ok $should_true->isa($true_class), "JSON true turns into a $true_class object"; my $should_false = $json->allow_nonref(1)->decode('false'); ok $should_false->isa($false_class), "JSON false turns into a $false_class object"; SKIP: { skip "$true_class is not compatible with JSON::PP::Boolean", 2 if $incompat; my $should_true_json = eval { $json->allow_nonref(1)->encode($new_true); }; is $should_true_json => 'true', "A $true_class object turns into JSON true"; my $should_false_json = eval { $json->allow_nonref(1)->encode($new_false); }; is $should_false_json => 'false', "A $false_class object turns into JSON false"; } $ret = $json->boolean_values(); is $ret => $json, "returns the same object"; ok !$json->get_boolean_values, "reset boolean values"; $should_true = $json->allow_nonref(1)->decode('true'); ok $should_true->isa('JSON::PP::Boolean'), "JSON true turns into a JSON::PP::Boolean object"; $should_false = $json->allow_nonref(1)->decode('false'); ok $should_false->isa('JSON::PP::Boolean'), "JSON false turns into a JSON::PP::Boolean object"; }
Save
📄
00_backend_version.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
00_load.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
00_load_backport_pp.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
01_utf8.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
02_error.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
03_types.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
04_dwiw_encode.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
05_dwiw_decode.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
06_pc_pretty.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
07_pc_esc.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
08_pc_base.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
09_pc_extra_number.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
10_pc_keysort.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
11_pc_expo.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
12_blessed.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
13_limit.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
14_latin1.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
15_prefix.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
16_tied.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
17_relaxed.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
18_json_checker.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
19_incr.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
20_faihu.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
20_unknown.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
21_evans.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
22_comment_at_eof.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
52_object.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
99_binary.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
104_sortby.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
105_esc_slash.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
106_allow_barekey.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
107_allow_singlequote.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
108_decode.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
109_encode.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
110_bignum.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
112_upgrade.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
113_overloaded_eq.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
114_decode_prefix.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
115_tie_ixhash.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
116_incr_parse_fixed.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
117_numbers.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
118_boolean_values.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
119_incr_parse_utf8.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
120_incr_parse_truncated.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
e00_func.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
e01_property.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
e02_bool.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
e03_bool2.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
e11_conv_blessed_univ.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
e90_misc.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
gh_28_json_test_suite.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
gh_29_trailing_false_value.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
rt_90071_incr_parse.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
rt_116998_wrong_character_offset.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
rt_122270_is_bool_for_obsolete_xs_boolean.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
rt_122270_old_xs_boolean.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
x00_load.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
x02_error.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
x12_blessed.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
x16_tied.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
x17_strange_overload.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
xe04_escape_slash.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
xe05_indent_length.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
xe12_boolean.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
xe19_xs_and_suportbypp.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
xe20_croak_message.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
xe21_is_pp.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
zero-mojibake.t
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
Upload
📁
Create Folder