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>