summaryrefslogtreecommitdiffstats
path: root/devtools/client/webconsole/net/test/unit/test_json-utils.js
blob: f8ccdf3aa87fa8d517ae77ea5ecb56fb5fa71af9 (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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set ts=2 et sw=2 tw=80: */
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

var Cu = Components.utils;
const { require } = Cu.import("resource://devtools/shared/Loader.jsm", {});
const { parseJSONString, isJSON } = require("devtools/client/webconsole/net/utils/json");

// Test data
const simpleJson = '{"name":"John"}';
const jsonInFunc = 'someFunc({"name":"John"})';

const json1 = "{'a': 1}";
const json2 = "  {'a': 1}";
const json3 = "\t {'a': 1}";
const json4 = "\n\n\t {'a': 1}";
const json5 = "\n\n\t ";

const textMimeType = "text/plain";
const jsonMimeType = "text/javascript";
const unknownMimeType = "text/unknown";

/**
 * Testing API provided by webconsole/net/utils/json.js
 */
function run_test() {
  // parseJSONString
  equal(parseJSONString(simpleJson).name, "John");
  equal(parseJSONString(jsonInFunc).name, "John");

  // isJSON
  equal(isJSON(textMimeType, json1), true);
  equal(isJSON(textMimeType, json2), true);
  equal(isJSON(jsonMimeType, json3), true);
  equal(isJSON(jsonMimeType, json4), true);

  equal(isJSON(unknownMimeType, json1), true);
  equal(isJSON(textMimeType, json1), true);

  equal(isJSON(unknownMimeType), false);
  equal(isJSON(unknownMimeType, json5), false);
}