Annotation of embedaddon/php/ext/json/tests/fail001.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: JSON (http://www.crockford.com/JSON/JSON_checker/test/fail*.json)
3: --SKIPIF--
4: <?php
5: if (!extension_loaded('json')) die('skip: json extension not available');
6: ?>
7: --FILE--
8: <?php
9:
10: $tests = array('"A JSON payload should be an object or array, not a string."',
11: '["Unclosed array"',
12: '{unquoted_key: "keys must be quoted}',
13: '["extra comma",]',
14: '["double extra comma",,]',
15: '[ , "<-- missing value"]',
16: '["Comma after the close"],',
17: '["Extra close"]]',
18: '{"Extra comma": true,}',
19: '{"Extra value after close": true} "misplaced quoted value"',
20: '{"Illegal expression": 1 + 2}',
21: '{"Illegal invocation": alert()}',
22: '{"Numbers cannot have leading zeroes": 013}',
23: '{"Numbers cannot be hex": 0x14}',
24: '["Illegal backslash escape: \\x15"]',
25: '["Illegal backslash escape: \\\'"]',
26: '["Illegal backslash escape: \\017"]',
27: '[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]',
28: '{"Missing colon" null}',
29: '{"Double colon":: null}',
30: '{"Comma instead of colon", null}',
31: '["Colon instead of comma": false]',
32: '["Bad value", truth]',
33: "['single quote']");
34:
35: foreach ($tests as $test)
36: {
37: echo 'Testing: ' . $test . "\n";
38: echo "AS OBJECT\n";
39: var_dump(json_decode($test));
40: echo "AS ARRAY\n";
41: var_dump(json_decode($test, true));
42: }
43:
44: ?>
45: --EXPECT--
46: Testing: "A JSON payload should be an object or array, not a string."
47: AS OBJECT
48: string(58) "A JSON payload should be an object or array, not a string."
49: AS ARRAY
50: string(58) "A JSON payload should be an object or array, not a string."
51: Testing: ["Unclosed array"
52: AS OBJECT
53: NULL
54: AS ARRAY
55: NULL
56: Testing: {unquoted_key: "keys must be quoted}
57: AS OBJECT
58: NULL
59: AS ARRAY
60: NULL
61: Testing: ["extra comma",]
62: AS OBJECT
63: NULL
64: AS ARRAY
65: NULL
66: Testing: ["double extra comma",,]
67: AS OBJECT
68: NULL
69: AS ARRAY
70: NULL
71: Testing: [ , "<-- missing value"]
72: AS OBJECT
73: NULL
74: AS ARRAY
75: NULL
76: Testing: ["Comma after the close"],
77: AS OBJECT
78: NULL
79: AS ARRAY
80: NULL
81: Testing: ["Extra close"]]
82: AS OBJECT
83: NULL
84: AS ARRAY
85: NULL
86: Testing: {"Extra comma": true,}
87: AS OBJECT
88: NULL
89: AS ARRAY
90: NULL
91: Testing: {"Extra value after close": true} "misplaced quoted value"
92: AS OBJECT
93: NULL
94: AS ARRAY
95: NULL
96: Testing: {"Illegal expression": 1 + 2}
97: AS OBJECT
98: NULL
99: AS ARRAY
100: NULL
101: Testing: {"Illegal invocation": alert()}
102: AS OBJECT
103: NULL
104: AS ARRAY
105: NULL
106: Testing: {"Numbers cannot have leading zeroes": 013}
107: AS OBJECT
108: NULL
109: AS ARRAY
110: NULL
111: Testing: {"Numbers cannot be hex": 0x14}
112: AS OBJECT
113: NULL
114: AS ARRAY
115: NULL
116: Testing: ["Illegal backslash escape: \x15"]
117: AS OBJECT
118: NULL
119: AS ARRAY
120: NULL
121: Testing: ["Illegal backslash escape: \'"]
122: AS OBJECT
123: NULL
124: AS ARRAY
125: NULL
126: Testing: ["Illegal backslash escape: \017"]
127: AS OBJECT
128: NULL
129: AS ARRAY
130: NULL
131: Testing: [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
132: AS OBJECT
133: NULL
134: AS ARRAY
135: NULL
136: Testing: {"Missing colon" null}
137: AS OBJECT
138: NULL
139: AS ARRAY
140: NULL
141: Testing: {"Double colon":: null}
142: AS OBJECT
143: NULL
144: AS ARRAY
145: NULL
146: Testing: {"Comma instead of colon", null}
147: AS OBJECT
148: NULL
149: AS ARRAY
150: NULL
151: Testing: ["Colon instead of comma": false]
152: AS OBJECT
153: NULL
154: AS ARRAY
155: NULL
156: Testing: ["Bad value", truth]
157: AS OBJECT
158: NULL
159: AS ARRAY
160: NULL
161: Testing: ['single quote']
162: AS OBJECT
163: NULL
164: AS ARRAY
165: NULL
166:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>