| Index: third_party/simplejson/simplejson/tests/test_fail.py
|
| diff --git a/third_party/simplejson/simplejson/tests/test_fail.py b/third_party/simplejson/simplejson/tests/test_fail.py
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..002eea08fcbb108506cb383f4fc6cb605ebbe2c2
|
| --- /dev/null
|
| +++ b/third_party/simplejson/simplejson/tests/test_fail.py
|
| @@ -0,0 +1,76 @@
|
| +from unittest import TestCase
|
| +
|
| +import simplejson as json
|
| +
|
| +# Fri Dec 30 18:57:26 2005
|
| +JSONDOCS = [
|
| + # http://json.org/JSON_checker/test/fail1.json
|
| + '"A JSON payload should be an object or array, not a string."',
|
| + # http://json.org/JSON_checker/test/fail2.json
|
| + '["Unclosed array"',
|
| + # http://json.org/JSON_checker/test/fail3.json
|
| + '{unquoted_key: "keys must be quoted}',
|
| + # http://json.org/JSON_checker/test/fail4.json
|
| + '["extra comma",]',
|
| + # http://json.org/JSON_checker/test/fail5.json
|
| + '["double extra comma",,]',
|
| + # http://json.org/JSON_checker/test/fail6.json
|
| + '[ , "<-- missing value"]',
|
| + # http://json.org/JSON_checker/test/fail7.json
|
| + '["Comma after the close"],',
|
| + # http://json.org/JSON_checker/test/fail8.json
|
| + '["Extra close"]]',
|
| + # http://json.org/JSON_checker/test/fail9.json
|
| + '{"Extra comma": true,}',
|
| + # http://json.org/JSON_checker/test/fail10.json
|
| + '{"Extra value after close": true} "misplaced quoted value"',
|
| + # http://json.org/JSON_checker/test/fail11.json
|
| + '{"Illegal expression": 1 + 2}',
|
| + # http://json.org/JSON_checker/test/fail12.json
|
| + '{"Illegal invocation": alert()}',
|
| + # http://json.org/JSON_checker/test/fail13.json
|
| + '{"Numbers cannot have leading zeroes": 013}',
|
| + # http://json.org/JSON_checker/test/fail14.json
|
| + '{"Numbers cannot be hex": 0x14}',
|
| + # http://json.org/JSON_checker/test/fail15.json
|
| + '["Illegal backslash escape: \\x15"]',
|
| + # http://json.org/JSON_checker/test/fail16.json
|
| + '["Illegal backslash escape: \\\'"]',
|
| + # http://json.org/JSON_checker/test/fail17.json
|
| + '["Illegal backslash escape: \\017"]',
|
| + # http://json.org/JSON_checker/test/fail18.json
|
| + '[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]',
|
| + # http://json.org/JSON_checker/test/fail19.json
|
| + '{"Missing colon" null}',
|
| + # http://json.org/JSON_checker/test/fail20.json
|
| + '{"Double colon":: null}',
|
| + # http://json.org/JSON_checker/test/fail21.json
|
| + '{"Comma instead of colon", null}',
|
| + # http://json.org/JSON_checker/test/fail22.json
|
| + '["Colon instead of comma": false]',
|
| + # http://json.org/JSON_checker/test/fail23.json
|
| + '["Bad value", truth]',
|
| + # http://json.org/JSON_checker/test/fail24.json
|
| + "['single quote']",
|
| + # http://code.google.com/p/simplejson/issues/detail?id=3
|
| + u'["A\u001FZ control characters in string"]',
|
| +]
|
| +
|
| +SKIPS = {
|
| + 1: "why not have a string payload?",
|
| + 18: "spec doesn't specify any nesting limitations",
|
| +}
|
| +
|
| +class TestFail(TestCase):
|
| + def test_failures(self):
|
| + for idx, doc in enumerate(JSONDOCS):
|
| + idx = idx + 1
|
| + if idx in SKIPS:
|
| + json.loads(doc)
|
| + continue
|
| + try:
|
| + json.loads(doc)
|
| + except ValueError:
|
| + pass
|
| + else:
|
| + self.fail("Expected failure for fail%d.json: %r" % (idx, doc))
|
|
|