michael@0: var Ci = Components.interfaces; michael@0: var Cc = Components.classes; michael@0: michael@0: var nativeJSON = Cc["@mozilla.org/dom/json;1"].createInstance(Ci.nsIJSON); michael@0: michael@0: function run_test() michael@0: { michael@0: function read_file(path) michael@0: { michael@0: try michael@0: { michael@0: var f = do_get_file(path); michael@0: var istream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream); michael@0: istream.init(f, -1, -1, false); michael@0: return nativeJSON.decodeFromStream(istream, istream.available()); michael@0: } michael@0: finally michael@0: { michael@0: istream.close(); michael@0: } michael@0: } michael@0: michael@0: var x = read_file("decodeFromStream-01.json"); michael@0: do_check_eq(x["JSON Test Pattern pass3"]["The outermost value"], "must be an object or array."); michael@0: do_check_eq(x["JSON Test Pattern pass3"]["In this test"], "It is an object."); michael@0: michael@0: x = read_file("decodeFromStream-small.json"); michael@0: do_check_eq(x.toSource(), "({})", "empty object parsed"); michael@0: }