Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(219)

Side by Side Diff: third_party/JSON/JSON-2.59/t/08_pc_base.t

Issue 15736030: Add JSON.pm to third_party (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix permissions and shebangs Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 use Test::More;
2
3 # copied over from JSON::PC and modified to use JSON
4 # copied over from JSON::XS and modified to use JSON
5
6 use strict;
7 BEGIN { plan tests => 20 };
8
9 BEGIN { $ENV{PERL_JSON_BACKEND} = "JSON::backportPP"; }
10
11 use JSON;
12
13 my ($js,$obj);
14
15 my $pc = new JSON;
16
17 $js = q|{}|;
18
19 $obj = $pc->decode($js);
20 $js = $pc->encode($obj);
21 is($js,'{}', '{}');
22
23 $js = q|[]|;
24 $obj = $pc->decode($js);
25 $js = $pc->encode($obj);
26 is($js,'[]', '[]');
27
28
29 $js = q|{"foo":"bar"}|;
30 $obj = $pc->decode($js);
31 is($obj->{foo},'bar');
32 $js = $pc->encode($obj);
33 is($js,'{"foo":"bar"}', '{"foo":"bar"}');
34
35 $js = q|{"foo":""}|;
36 $obj = $pc->decode($js);
37 $js = $pc->encode($obj);
38 is($js,'{"foo":""}', '{"foo":""}');
39
40 $js = q|{"foo":" "}|;
41 $obj = $pc->decode($js);
42 $js = $pc->encode($obj);
43 is($js,'{"foo":" "}' ,'{"foo":" "}');
44
45 $js = q|{"foo":"0"}|;
46 $obj = $pc->decode($js);
47 $js = $pc->encode($obj);
48 is($js,'{"foo":"0"}',q|{"foo":"0"} - autoencode (default)|);
49
50
51 $js = q|{"foo":"0 0"}|;
52 $obj = $pc->decode($js);
53 $js = $pc->encode($obj);
54 is($js,'{"foo":"0 0"}','{"foo":"0 0"}');
55
56 $js = q|[1,2,3]|;
57 $obj = $pc->decode($js);
58 is($obj->[1],2);
59 $js = $pc->encode($obj);
60 is($js,'[1,2,3]');
61
62 $js = q|{"foo":{"bar":"hoge"}}|;
63 $obj = $pc->decode($js);
64 is($obj->{foo}->{bar},'hoge');
65 $js = $pc->encode($obj);
66 is($js,q|{"foo":{"bar":"hoge"}}|);
67
68 $js = q|[{"foo":[1,2,3]},-0.12,{"a":"b"}]|;
69 $obj = $pc->decode($js);
70 $js = $pc->encode($obj);
71 is($js,q|[{"foo":[1,2,3]},-0.12,{"a":"b"}]|);
72
73
74 $obj = ["\x01"];
75 is($js = $pc->encode($obj),'["\\u0001"]');
76 $obj = $pc->decode($js);
77 is($obj->[0],"\x01");
78
79 $obj = ["\e"];
80 is($js = $pc->encode($obj),'["\\u001b"]');
81 $obj = $pc->decode($js);
82 is($obj->[0],"\e");
83
84 $js = '{"id":"}';
85 eval q{ $pc->decode($js) };
86 like($@, qr/unexpected end/i);
87
88 $obj = { foo => sub { "bar" } };
89 eval q{ $js = $pc->encode($obj) };
90 like($@, qr/JSON can only/i, 'invalid value (coderef)');
91
92 #$obj = { foo => bless {}, "Hoge" };
93 #eval q{ $js = $pc->encode($obj) };
94 #like($@, qr/JSON can only/i, 'invalid value (blessd object)');
95
96 $obj = { foo => \$js };
97 eval q{ $js = $pc->encode($obj) };
98 like($@, qr/cannot encode reference/i, 'invalid value (ref)');
99
OLDNEW
« no previous file with comments | « third_party/JSON/JSON-2.59/t/07_pc_esc.t ('k') | third_party/JSON/JSON-2.59/t/09_pc_extra_number.t » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698