diff --git a/lib/chibi/json-test.sld b/lib/chibi/json-test.sld index c085fff9..dab39d64 100644 --- a/lib/chibi/json-test.sld +++ b/lib/chibi/json-test.sld @@ -4,7 +4,7 @@ (export run-tests) (begin (define (run-tests) - (test-begin "json") + (test-begin "json-parse") (test 1 (parse-json "1")) (test 1.5 (parse-json "1.5")) (test 1000.0 (parse-json "1e3")) @@ -67,4 +67,37 @@ ] } }}")) + (test-end) + (test-begin "json-unparse") + (test "1" (unparse-json 1)) + (test "1.5" (unparse-json 1.5)) + (test "1000" (unparse-json 1E3)) + (test "\"\\u00E1\"" (unparse-json "รก")) + (test "\"\\uD801\\uDC37\"" (unparse-json "๐ท")) + (test "\"\\uD83D\\uDE10\"" (unparse-json "๐Ÿ˜")) + (test "{\"menu\":{\"id\":\"file\",\"value\":\"File\",\"popup\":{\"menuitem\":[{\"value\":\"New\",\"onclick\":\"CreateNewDoc()\"},{\"value\":\"Open\",\"onclick\":\"OpenDoc()\"},{\"value\":\"Close\",\"onclick\":\"CloseDoc()\"}]}}}" + (unparse-json '((menu + (id . "file") + (value . "File") + (popup + (menuitem + . #(((value . "New") (onclick . "CreateNewDoc()")) + ((value . "Open") (onclick . "OpenDoc()")) + ((value . "Close") (onclick . "CloseDoc()"))))))))) + (test "{\"glossary\":{\"title\":\"example glossary\",\"GlossDiv\":{\"title\":\"S\",\"GlossList\":{\"GlossEntry\":{\"ID\":\"SGML\",\"SortAs\":\"SGML\",\"GlossTerm\":\"Standard Generalized Markup Language\",\"Acronym\":\"SGML\",\"Abbrev\":\"ISO 8879:1986\",\"GlossDef\":{\"para\":\"A meta-markup language, used to create markup languages such as DocBook.\",\"GlossSeeAlso\":[\"GML\",\"XML\"]},\"GlossSee\":\"markup\"}}}}}" + (unparse-json '((glossary + (title . "example glossary") + (GlossDiv + (title . "S") + (GlossList + (GlossEntry + (ID . "SGML") + (SortAs . "SGML") + (GlossTerm . "Standard Generalized Markup Language") + (Acronym . "SGML") + (Abbrev . "ISO 8879:1986") + (GlossDef + (para . "A meta-markup language, used to create markup languages such as DocBook.") + (GlossSeeAlso . #("GML" "XML"))) + (GlossSee . "markup")))))))) (test-end))))