]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/test.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / node_modules / request / node_modules / har-validator / node_modules / is-my-json-valid / node_modules / jsonpointer / test.js
1 var assert = require("assert");
2 var jsonpointer = require("./jsonpointer");
3
4 var obj = {
5   a: 1,
6   b: {
7     c: 2
8   },
9   d: {
10     e: [{a:3}, {b:4}, {c:5}]
11   }
12 };
13
14 assert.equal(jsonpointer.get(obj, "/a"), 1);
15 assert.equal(jsonpointer.get(obj, "/b/c"), 2);
16 assert.equal(jsonpointer.get(obj, "/d/e/0/a"), 3);
17 assert.equal(jsonpointer.get(obj, "/d/e/1/b"), 4);
18 assert.equal(jsonpointer.get(obj, "/d/e/2/c"), 5);
19
20 // set returns old value
21 assert.equal(jsonpointer.set(obj, "/a", 2), 1);
22 assert.equal(jsonpointer.set(obj, "/b/c", 3), 2);
23 assert.equal(jsonpointer.set(obj, "/d/e/0/a", 4), 3);
24 assert.equal(jsonpointer.set(obj, "/d/e/1/b", 5), 4);
25 assert.equal(jsonpointer.set(obj, "/d/e/2/c", 6), 5);
26
27 assert.equal(jsonpointer.get(obj, "/a"), 2);
28 assert.equal(jsonpointer.get(obj, "/b/c"), 3);
29 assert.equal(jsonpointer.get(obj, "/d/e/0/a"), 4);
30 assert.equal(jsonpointer.get(obj, "/d/e/1/b"), 5);
31 assert.equal(jsonpointer.get(obj, "/d/e/2/c"), 6);
32
33 assert.equal(jsonpointer.get(obj, ""), obj);
34 assert.throws(function(){ jsonpointer.get(obj, "a"); }, validateError);
35 assert.throws(function(){ jsonpointer.get(obj, "a/"); }, validateError);
36
37 function validateError(err) {
38   if ( (err instanceof Error) && /Invalid JSON pointer/.test(err.message) ) {
39       return true;
40   }
41 }
42
43 var complexKeys = {
44   "a/b": {
45     c: 1
46   },
47   d: {
48     "e/f": 2
49   },
50   "~1": 3,
51   "01": 4
52 }
53
54 assert.equal(jsonpointer.get(complexKeys, "/a~1b/c"), 1);
55 assert.equal(jsonpointer.get(complexKeys, "/d/e~1f"), 2);
56 assert.equal(jsonpointer.get(complexKeys, "/~01"), 3);
57 assert.equal(jsonpointer.get(complexKeys, "/01"), 4);
58 assert.equal(jsonpointer.get(complexKeys, "/a/b/c"), null);
59 assert.equal(jsonpointer.get(complexKeys, "/~1"), null);
60
61 // draft-ietf-appsawg-json-pointer-08 has special array rules
62 var ary = [ "zero", "one", "two" ];
63 assert.equal(jsonpointer.get(ary, "/01"), null);
64
65 //assert.equal(jsonpointer.set(ary, "/-", "three"), null);
66 //assert.equal(ary[3], "three");
67
68 // Examples from the draft:
69 var example = {
70   "foo": ["bar", "baz"],
71   "": 0,
72   "a/b": 1,
73   "c%d": 2,
74   "e^f": 3,
75   "g|h": 4,
76   "i\\j": 5,
77   "k\"l": 6,
78   " ": 7,
79   "m~n": 8
80 };
81
82 assert.equal(jsonpointer.get(example, ""), example);
83 var ans = jsonpointer.get(example, "/foo");
84 assert.equal(ans.length, 2);
85 assert.equal(ans[0], "bar");
86 assert.equal(ans[1], "baz");
87 assert.equal(jsonpointer.get(example, "/foo/0"), "bar");
88 assert.equal(jsonpointer.get(example, "/"), 0);
89 assert.equal(jsonpointer.get(example, "/a~1b"), 1);
90 assert.equal(jsonpointer.get(example, "/c%d"), 2);
91 assert.equal(jsonpointer.get(example, "/e^f"), 3);
92 assert.equal(jsonpointer.get(example, "/g|h"), 4);
93 assert.equal(jsonpointer.get(example, "/i\\j"), 5);
94 assert.equal(jsonpointer.get(example, "/k\"l"), 6);
95 assert.equal(jsonpointer.get(example, "/ "), 7);
96 assert.equal(jsonpointer.get(example, "/m~0n"), 8);
97
98 console.log("All tests pass.");