addon-sdk/source/lib/diffpatcher/test/diff.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

michael@0 1 "use strict";
michael@0 2
michael@0 3 var diff = require("../diff")
michael@0 4
michael@0 5 exports["test diff from null"] = function(assert) {
michael@0 6 var to = { a: 1, b: 2 }
michael@0 7 assert.equal(diff(null, to), to, "diff null to x returns x")
michael@0 8 assert.equal(diff(void(0), to), to, "diff undefined to x returns x")
michael@0 9
michael@0 10 }
michael@0 11
michael@0 12 exports["test diff to null"] = function(assert) {
michael@0 13 var from = { a: 1, b: 2 }
michael@0 14 assert.deepEqual(diff({ a: 1, b: 2 }, null),
michael@0 15 { a: null, b: null },
michael@0 16 "diff x null returns x with all properties nullified")
michael@0 17 }
michael@0 18
michael@0 19 exports["test diff identical"] = function(assert) {
michael@0 20 assert.deepEqual(diff({}, {}), {}, "diff on empty objects is {}")
michael@0 21
michael@0 22 assert.deepEqual(diff({ a: 1, b: 2 }, { a: 1, b: 2 }), {},
michael@0 23 "if properties match diff is {}")
michael@0 24
michael@0 25 assert.deepEqual(diff({ a: 1, b: { c: { d: 3, e: 4 } } },
michael@0 26 { a: 1, b: { c: { d: 3, e: 4 } } }), {},
michael@0 27 "diff between identical nested hashes is {}")
michael@0 28
michael@0 29 }
michael@0 30
michael@0 31 exports["test diff delete"] = function(assert) {
michael@0 32 assert.deepEqual(diff({ a: 1, b: 2 }, { b: 2 }), { a: null },
michael@0 33 "missing property is deleted")
michael@0 34 assert.deepEqual(diff({ a: 1, b: 2 }, { a: 2 }), { a: 2, b: null },
michael@0 35 "missing property is deleted another updated")
michael@0 36 assert.deepEqual(diff({ a: 1, b: 2 }, {}), { a: null, b: null },
michael@0 37 "missing propertes are deleted")
michael@0 38 assert.deepEqual(diff({ a: 1, b: { c: { d: 2 } } }, {}),
michael@0 39 { a: null, b: null },
michael@0 40 "missing deep propertes are deleted")
michael@0 41 assert.deepEqual(diff({ a: 1, b: { c: { d: 2 } } }, { b: { c: {} } }),
michael@0 42 { a: null, b: { c: { d: null } } },
michael@0 43 "missing nested propertes are deleted")
michael@0 44 }
michael@0 45
michael@0 46 exports["test add update"] = function(assert) {
michael@0 47 assert.deepEqual(diff({ a: 1, b: 2 }, { b: 2, c: 3 }), { a: null, c: 3 },
michael@0 48 "delete and add")
michael@0 49 assert.deepEqual(diff({ a: 1, b: 2 }, { a: 2, c: 3 }), { a: 2, b: null, c: 3 },
michael@0 50 "delete and adds")
michael@0 51 assert.deepEqual(diff({}, { a: 1, b: 2 }), { a: 1, b: 2 },
michael@0 52 "diff on empty objcet returns equivalen of to")
michael@0 53 assert.deepEqual(diff({ a: 1, b: { c: { d: 2 } } }, { d: 3 }),
michael@0 54 { a: null, b: null, d: 3 },
michael@0 55 "missing deep propertes are deleted")
michael@0 56 assert.deepEqual(diff({ b: { c: {} }, d: null }, { a: 1, b: { c: { d: 2 } } }),
michael@0 57 { a: 1, b: { c: { d: 2 } } },
michael@0 58 "missing nested propertes are deleted")
michael@0 59 }

mercurial