addon-sdk/source/lib/diffpatcher/test/patch.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.

     1 "use strict";
     3 var patch = require("../patch")
     5 exports["test patch delete"] = function(assert) {
     6   var hash = { a: 1, b: 2 }
     8   assert.deepEqual(patch(hash, { a: null }), { b: 2 }, "null removes property")
     9 }
    11 exports["test patch delete with void"] = function(assert) {
    12   var hash = { a: 1, b: 2 }
    14   assert.deepEqual(patch(hash, { a: void(0) }), { b: 2 },
    15                    "void(0) removes property")
    16 }
    18 exports["test patch delete missing"] = function(assert) {
    19   assert.deepEqual(patch({ a: 1, b: 2 }, { c: null }),
    20                    { a: 1, b: 2 },
    21                    "null removes property if exists");
    23   assert.deepEqual(patch({ a: 1, b: 2 }, { c: void(0) }),
    24                    { a: 1, b: 2 },
    25                    "void removes property if exists");
    26 }
    28 exports["test delete deleted"] = function(assert) {
    29   assert.deepEqual(patch({ a: null, b: 2, c: 3, d: void(0)},
    30                          { a: void(0), b: null, d: null }),
    31                    {c: 3},
    32                   "removed all existing and non existing");
    33 }
    35 exports["test update deleted"] = function(assert) {
    36   assert.deepEqual(patch({ a: null, b: void(0), c: 3},
    37                          { a: { b: 2 } }),
    38                    { a: { b: 2 }, c: 3 },
    39                    "replace deleted");
    40 }
    42 exports["test patch delete with void"] = function(assert) {
    43   var hash = { a: 1, b: 2 }
    45   assert.deepEqual(patch(hash, { a: void(0) }), { b: 2 },
    46                    "void(0) removes property")
    47 }
    50 exports["test patch addition"] = function(assert) {
    51   var hash = { a: 1, b: 2 }
    53   assert.deepEqual(patch(hash, { c: 3 }), { a: 1, b: 2, c: 3 },
    54                    "new properties are added")
    55 }
    57 exports["test patch addition"] = function(assert) {
    58   var hash = { a: 1, b: 2 }
    60   assert.deepEqual(patch(hash, { c: 3 }), { a: 1, b: 2, c: 3 },
    61                    "new properties are added")
    62 }
    64 exports["test hash on itself"] = function(assert) {
    65   var hash = { a: 1, b: 2 }
    67   assert.deepEqual(patch(hash, hash), hash,
    68                    "applying hash to itself returns hash itself")
    69 }
    71 exports["test patch with empty delta"] = function(assert) {
    72   var hash = { a: 1, b: 2 }
    74   assert.deepEqual(patch(hash, {}), hash,
    75                    "applying empty delta results in no changes")
    76 }
    78 exports["test patch nested data"] = function(assert) {
    79   assert.deepEqual(patch({ a: { b: 1 }, c: { d: 2 } },
    80                          { a: { b: null, e: 3 }, c: { d: 4 } }),
    81                    { a: { e: 3 }, c: { d: 4 } },
    82                    "nested structures can also be patched")
    83 }

mercurial