1#! perl
2
3# copied over from JSON::PC and modified to use JSON
4# copied over from JSON::XS and modified to use JSON
5
6use strict;
7use Test::More;
8BEGIN { plan tests => 9 };
9
10BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
11
12use JSON;
13
14my ($js,$obj,$json);
15my $pc = new JSON;
16
17$obj = {foo => "bar"};
18$js = $pc->encode($obj);
19is($js,q|{"foo":"bar"}|);
20
21$obj = [10, "hoge", {foo => "bar"}];
22$pc->pretty (1);
23$js = $pc->encode($obj);
24is($js,q|[
25   10,
26   "hoge",
27   {
28      "foo" : "bar"
29   }
30]
31|);
32
33$obj = { foo => [ {a=>"b"}, 0, 1, 2 ] };
34$pc->pretty(0);
35$js = $pc->encode($obj);
36is($js,q|{"foo":[{"a":"b"},0,1,2]}|);
37
38
39$obj = { foo => [ {a=>"b"}, 0, 1, 2 ] };
40$pc->pretty(1);
41$js = $pc->encode($obj);
42is($js,q|{
43   "foo" : [
44      {
45         "a" : "b"
46      },
47      0,
48      1,
49      2
50   ]
51}
52|);
53
54$obj = { foo => [ {a=>"b"}, 0, 1, 2 ] };
55$pc->pretty(0);
56$js = $pc->encode($obj);
57is($js,q|{"foo":[{"a":"b"},0,1,2]}|);
58
59
60$obj = {foo => "bar"};
61$pc->indent(3); # original -- $pc->indent(1);
62is($pc->encode($obj), qq|{\n   "foo":"bar"\n}\n|, "nospace");
63$pc->space_after(1);
64is($pc->encode($obj), qq|{\n   "foo": "bar"\n}\n|, "after");
65$pc->space_before(1);
66is($pc->encode($obj), qq|{\n   "foo" : "bar"\n}\n|, "both");
67$pc->space_after(0);
68is($pc->encode($obj), qq|{\n   "foo" :"bar"\n}\n|, "before");
69
70