summaryrefslogtreecommitdiffstats
path: root/dom/json/test/unit/test_decodeFromStream.js
blob: eb30d26196ab5032459b7bed9e35d56b4910dc6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var Ci = Components.interfaces;
var Cc = Components.classes;

var nativeJSON = Cc["@mozilla.org/dom/json;1"].createInstance(Ci.nsIJSON);

function run_test()
{
  function read_file(path)
  {
    try
    {
      var f = do_get_file(path);
      var istream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream);
      istream.init(f, -1, -1, false);
      return nativeJSON.decodeFromStream(istream, istream.available());
    }
    finally
    {
      istream.close();
    }
  }

  var x = read_file("decodeFromStream-01.json");
  do_check_eq(x["JSON Test Pattern pass3"]["The outermost value"], "must be an object or array.");
  do_check_eq(x["JSON Test Pattern pass3"]["In this test"], "It is an object.");

  x = read_file("decodeFromStream-small.json");
  do_check_eq(x.toSource(), "({})", "empty object parsed");
}