aboutsummaryrefslogtreecommitdiff
path: root/src/clojure
diff options
context:
space:
mode:
authorStuart Sierra <mail@stuartsierra.com>2009-05-10 01:04:35 +0000
committerStuart Sierra <mail@stuartsierra.com>2009-05-10 01:04:35 +0000
commit2d8ddaa0ae6d37b2a5f4ace26c23719ae9cfd431 (patch)
tree59308d14f53c1e95498b6bb4dce7957945b11e21 /src/clojure
parent790afdb46360a7ff7a08830e4c6dd8a862d8f3d8 (diff)
json/read.clj: added tests from pass1.json
Need to move these tests into a separate file.
Diffstat (limited to 'src/clojure')
-rw-r--r--src/clojure/contrib/json/read.clj69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/clojure/contrib/json/read.clj b/src/clojure/contrib/json/read.clj
index 47d73499..1f449d10 100644
--- a/src/clojure/contrib/json/read.clj
+++ b/src/clojure/contrib/json/read.clj
@@ -250,3 +250,72 @@
(deftest- disallows-unclosed-objects
(is (thrown? Exception (read-json-string "{\"a\":1, "))))
+(declare *pass1-string*)
+
+(deftest- pass1-test
+ (let [input (read-json-string *pass1-string*)]
+ (is (= "JSON Test Pattern pass1" (first input)))
+ (is (= "array with 1 element" (get-in input [1 "object with 1 member" 0])))
+ (is (= 1234567890 (get-in input [8 "integer"])))
+ (is (= "rosebud" (last input)))))
+
+; from http://www.json.org/JSON_checker/test/pass1.json
+(def *pass1-string*
+ "[
+ \"JSON Test Pattern pass1\",
+ {\"object with 1 member\":[\"array with 1 element\"]},
+ {},
+ [],
+ -42,
+ true,
+ false,
+ null,
+ {
+ \"integer\": 1234567890,
+ \"real\": -9876.543210,
+ \"e\": 0.123456789e-12,
+ \"E\": 1.234567890E+34,
+ \"\": 23456789012E66,
+ \"zero\": 0,
+ \"one\": 1,
+ \"space\": \" \",
+ \"quote\": \"\\\"\",
+ \"backslash\": \"\\\\\",
+ \"controls\": \"\\b\\f\\n\\r\\t\",
+ \"slash\": \"/ & \\/\",
+ \"alpha\": \"abcdefghijklmnopqrstuvwyz\",
+ \"ALPHA\": \"ABCDEFGHIJKLMNOPQRSTUVWYZ\",
+ \"digit\": \"0123456789\",
+ \"0123456789\": \"digit\",
+ \"special\": \"`1~!@#$%^&*()_+-={':[,]}|;.</>?\",
+ \"hex\": \"\\u0123\\u4567\\u89AB\\uCDEF\\uabcd\\uef4A\",
+ \"true\": true,
+ \"false\": false,
+ \"null\": null,
+ \"array\":[ ],
+ \"object\":{ },
+ \"address\": \"50 St. James Street\",
+ \"url\": \"http://www.JSON.org/\",
+ \"comment\": \"// /* <!-- --\",
+ \"# -- --> */\": \" \",
+ \" s p a c e d \" :[1,2 , 3
+
+,
+
+4 , 5 , 6 ,7 ],\"compact\":[1,2,3,4,5,6,7],
+ \"jsontext\": \"{\\\"object with 1 member\\\":[\\\"array with 1 element\\\"]}\",
+ \"quotes\": \"&#34; \\u0022 %22 0x22 034 &#x22;\",
+ \"\\/\\\\\\\"\\uCAFE\\uBABE\\uAB98\\uFCDE\\ubcda\\uef4A\\b\\f\\n\\r\\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?\"
+: \"A key can be any string\"
+ },
+ 0.5 ,98.6
+,
+99.44
+,
+
+1066,
+1e1,
+0.1e1,
+1e-1,
+1e00,2e+00,2e-00
+,\"rosebud\"]") \ No newline at end of file