����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
# copied over from JSON::XS and modified to use JSON
use strict;
no warnings;
use Test::More;
BEGIN { plan tests => 745 };
BEGIN { $ENV{PERL_JSON_BACKEND} ||= "JSON::backportPP"; }
use JSON;
sub splitter {
my ($coder, $text) = @_;
# work around hash randomisation bug introduced in 5.18
$coder->canonical;
for (0 .. length $text) {
my $a = substr $text, 0, $_;
my $b = substr $text, $_;
$coder->incr_parse ($a);
$coder->incr_parse ($b);
my $data = $coder->incr_parse;
#ok (defined $data, "split<$a><$b>");
ok (defined $data, "split");
my $e1 = $coder->encode ($data);
my $e2 = $coder->encode ($coder->decode ($text));
#ok ($e1 eq $e2, "data<$a><$b><$e1><$e2>");
#ok ($coder->incr_text =~ /^\s*$/, "tailws<$a><$b>");
ok ($e1 eq $e2, "data");
ok ($coder->incr_text =~ /^\s*$/, "tailws");
}
}
splitter +JSON->new->allow_nonref (0), ' ["x\\"","\\u1000\\\\n\\nx",1,{"\\\\" :5 , "": "x"}]';
splitter +JSON->new->allow_nonref (0), '[ "x\\"","\\u1000\\\\n\\nx" , 1,{"\\\\ " :5 , "": " x"} ] ';
splitter +JSON->new->allow_nonref (1), '"test"';
splitter +JSON->new->allow_nonref (1), ' "5" ';
splitter +JSON->new->allow_nonref (1), '-1e5';
SKIP: { skip "requires $JSON::BackendModule 3 or newer", 33 if $JSON::BackendModulePP and eval $JSON::BackendModulePP->VERSION < 3;
splitter +JSON->new->allow_nonref (1), ' 0.00E+00 ';
}
{
my $text = '[5],{"":1} , [ 1,2, 3], {"3":null}';
my $coder = JSON->new;
for (0 .. length $text) {
my $a = substr $text, 0, $_;
my $b = substr $text, $_;
$coder->incr_parse ($a);
$coder->incr_parse ($b);
my $j1 = $coder->incr_parse; ok ($coder->incr_text =~ s/^\s*,//, "cskip1");
my $j2 = $coder->incr_parse; ok ($coder->incr_text =~ s/^\s*,//, "cskip2");
my $j3 = $coder->incr_parse; ok ($coder->incr_text =~ s/^\s*,//, "cskip3");
my $j4 = $coder->incr_parse; ok ($coder->incr_text !~ s/^\s*,//, "cskip4");
my $j5 = $coder->incr_parse; ok ($coder->incr_text !~ s/^\s*,//, "cskip5");
ok ('[5]' eq encode_json($j1), "cjson1");
ok ('{"":1}' eq encode_json($j2), "cjson2");
ok ('[1,2,3]' eq encode_json($j3), "cjson3");
ok ('{"3":null}' eq encode_json($j4), "cjson4");
ok (!defined $j5, "cjson5");
}
}
{
my $text = '[x][5]';
my $coder = JSON->new;
$coder->incr_parse ($text);
ok (!eval { $coder->incr_parse }, "sparse1");
ok (!eval { $coder->incr_parse }, "sparse2");
$coder->incr_skip;
ok ('[5]' eq $coder->encode (scalar $coder->incr_parse), "sparse3");
}
{
my $coder = JSON->new->max_size (5);
ok (!$coder->incr_parse ("[ "), "incsize1");
eval { !$coder->incr_parse ("] ") }; ok ($@ =~ /6 bytes/, "incsize2 $@");
}
{
my $coder = JSON->new->max_depth (3);
ok (!$coder->incr_parse ("[[["), "incdepth1");
eval { !$coder->incr_parse (" [] ") }; ok ($@ =~ /maximum nesting/, "incdepth2 $@");
}
# contributed by yuval kogman, reformatted to fit style
{
my $coder = JSON->new;
my $res = eval { $coder->incr_parse("]") };
my $e = $@; # test more clobbers $@, we need it twice
ok (!$res, "unbalanced bracket");
ok ($e, "got error");
like ($e, qr/malformed/, "malformed json string error");
$coder->incr_skip;
is_deeply (eval { $coder->incr_parse("[42]") }, [42], "valid data after incr_skip");
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| 00_backend_version.t | File | 177 B | 0644 |
|
| 00_load.t | File | 266 B | 0644 |
|
| 00_load_backport_pp.t | File | 329 B | 0644 |
|
| 01_utf8.t | File | 1.3 KB | 0644 |
|
| 02_error.t | File | 2.91 KB | 0644 |
|
| 03_types.t | File | 2.48 KB | 0644 |
|
| 04_dwiw_encode.t | File | 2.09 KB | 0644 |
|
| 05_dwiw_decode.t | File | 2.09 KB | 0644 |
|
| 06_pc_pretty.t | File | 1.25 KB | 0644 |
|
| 07_pc_esc.t | File | 1.97 KB | 0644 |
|
| 08_pc_base.t | File | 2.14 KB | 0644 |
|
| 09_pc_extra_number.t | File | 770 B | 0644 |
|
| 104_sortby.t | File | 696 B | 0644 |
|
| 105_esc_slash.t | File | 325 B | 0644 |
|
| 106_allow_barekey.t | File | 402 B | 0644 |
|
| 107_allow_singlequote.t | File | 526 B | 0644 |
|
| 108_decode.t | File | 1.09 KB | 0644 |
|
| 109_encode.t | File | 1.12 KB | 0644 |
|
| 10_pc_keysort.t | File | 481 B | 0644 |
|
| 110_bignum.t | File | 1.45 KB | 0644 |
|
| 112_upgrade.t | File | 448 B | 0644 |
|
| 113_overloaded_eq.t | File | 1022 B | 0644 |
|
| 114_decode_prefix.t | File | 890 B | 0644 |
|
| 115_tie_ixhash.t | File | 754 B | 0644 |
|
| 116_incr_parse_fixed.t | File | 470 B | 0644 |
|
| 117_numbers.t | File | 850 B | 0644 |
|
| 118_boolean_values.t | File | 3.48 KB | 0644 |
|
| 119_incr_parse_utf8.t | File | 2.21 KB | 0644 |
|
| 11_pc_expo.t | File | 1.62 KB | 0644 |
|
| 120_incr_parse_truncated.t | File | 8.7 KB | 0644 |
|
| 12_blessed.t | File | 1.43 KB | 0644 |
|
| 13_limit.t | File | 903 B | 0644 |
|
| 14_latin1.t | File | 520 B | 0644 |
|
| 15_prefix.t | File | 407 B | 0644 |
|
| 16_tied.t | File | 405 B | 0644 |
|
| 17_relaxed.t | File | 669 B | 0644 |
|
| 18_json_checker.t | File | 3.86 KB | 0644 |
|
| 19_incr.t | File | 3.32 KB | 0644 |
|
| 20_faihu.t | File | 963 B | 0644 |
|
| 20_unknown.t | File | 1003 B | 0644 |
|
| 21_evans.t | File | 506 B | 0644 |
|
| 22_comment_at_eof.t | File | 1.44 KB | 0644 |
|
| 52_object.t | File | 1.18 KB | 0644 |
|
| 99_binary.t | File | 1.47 KB | 0644 |
|
| e00_func.t | File | 311 B | 0644 |
|
| e01_property.t | File | 1.62 KB | 0644 |
|
| e02_bool.t | File | 1.39 KB | 0644 |
|
| e03_bool2.t | File | 1.13 KB | 0644 |
|
| e11_conv_blessed_univ.t | File | 872 B | 0644 |
|
| e90_misc.t | File | 425 B | 0644 |
|
| gh_28_json_test_suite.t | File | 1.27 KB | 0644 |
|
| gh_29_trailing_false_value.t | File | 330 B | 0644 |
|
| rt_116998_wrong_character_offset.t | File | 718 B | 0644 |
|
| rt_122270_is_bool_for_obsolete_xs_boolean.t | File | 875 B | 0644 |
|
| rt_122270_old_xs_boolean.t | File | 875 B | 0644 |
|
| rt_90071_incr_parse.t | File | 816 B | 0644 |
|
| x00_load.t | File | 301 B | 0644 |
|
| x02_error.t | File | 2.63 KB | 0644 |
|
| x12_blessed.t | File | 1.38 KB | 0644 |
|
| x16_tied.t | File | 398 B | 0644 |
|
| x17_strange_overload.t | File | 484 B | 0644 |
|
| xe04_escape_slash.t | File | 423 B | 0644 |
|
| xe05_indent_length.t | File | 1.22 KB | 0644 |
|
| xe12_boolean.t | File | 555 B | 0644 |
|
| xe19_xs_and_suportbypp.t | File | 604 B | 0644 |
|
| xe20_croak_message.t | File | 585 B | 0644 |
|
| xe21_is_pp.t | File | 581 B | 0644 |
|
| zero-mojibake.t | File | 389 B | 0644 |
|