summaryrefslogtreecommitdiff
path: root/toolkit/modules/tests/xpcshell/test_ObjectUtils.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/modules/tests/xpcshell/test_ObjectUtils.js')
-rw-r--r--toolkit/modules/tests/xpcshell/test_ObjectUtils.js96
1 files changed, 0 insertions, 96 deletions
diff --git a/toolkit/modules/tests/xpcshell/test_ObjectUtils.js b/toolkit/modules/tests/xpcshell/test_ObjectUtils.js
deleted file mode 100644
index 9aef3e9079..0000000000
--- a/toolkit/modules/tests/xpcshell/test_ObjectUtils.js
+++ /dev/null
@@ -1,96 +0,0 @@
-Components.utils.import("resource://gre/modules/ObjectUtils.jsm");
-
-function run_test() {
- run_next_test();
-}
-
-add_task(function* test_deepEqual() {
- let deepEqual = ObjectUtils.deepEqual.bind(ObjectUtils);
- // CommonJS 7.2
- Assert.ok(deepEqual(new Date(2000, 3, 14), new Date(2000, 3, 14)), "deepEqual date");
- Assert.ok(deepEqual(new Date(NaN), new Date(NaN)), "deepEqual invalid dates");
-
- Assert.ok(!deepEqual(new Date(), new Date(2000, 3, 14)), "deepEqual date");
-
- // 7.3
- Assert.ok(deepEqual(/a/, /a/));
- Assert.ok(deepEqual(/a/g, /a/g));
- Assert.ok(deepEqual(/a/i, /a/i));
- Assert.ok(deepEqual(/a/m, /a/m));
- Assert.ok(deepEqual(/a/igm, /a/igm));
- Assert.ok(!deepEqual(/ab/, /a/));
- Assert.ok(!deepEqual(/a/g, /a/));
- Assert.ok(!deepEqual(/a/i, /a/));
- Assert.ok(!deepEqual(/a/m, /a/));
- Assert.ok(!deepEqual(/a/igm, /a/im));
-
- let re1 = /a/;
- re1.lastIndex = 3;
- Assert.ok(!deepEqual(re1, /a/));
-
- // 7.4
- Assert.ok(deepEqual(4, "4"), "deepEqual == check");
- Assert.ok(deepEqual(true, 1), "deepEqual == check");
- Assert.ok(!deepEqual(4, "5"), "deepEqual == check");
-
- // 7.5
- // having the same number of owned properties && the same set of keys
- Assert.ok(deepEqual({a: 4}, {a: 4}));
- Assert.ok(deepEqual({a: 4, b: "2"}, {a: 4, b: "2"}));
- Assert.ok(deepEqual([4], ["4"]));
- Assert.ok(!deepEqual({a: 4}, {a: 4, b: true}));
- Assert.ok(deepEqual(["a"], {0: "a"}));
-
- let a1 = [1, 2, 3];
- let a2 = [1, 2, 3];
- a1.a = "test";
- a1.b = true;
- a2.b = true;
- a2.a = "test";
- Assert.ok(!deepEqual(Object.keys(a1), Object.keys(a2)));
- Assert.ok(deepEqual(a1, a2));
-
- let nbRoot = {
- toString: function() { return this.first + " " + this.last; }
- };
-
- function nameBuilder(first, last) {
- this.first = first;
- this.last = last;
- return this;
- }
- nameBuilder.prototype = nbRoot;
-
- function nameBuilder2(first, last) {
- this.first = first;
- this.last = last;
- return this;
- }
- nameBuilder2.prototype = nbRoot;
-
- let nb1 = new nameBuilder("Ryan", "Dahl");
- let nb2 = new nameBuilder2("Ryan", "Dahl");
-
- Assert.ok(deepEqual(nb1, nb2));
-
- nameBuilder2.prototype = Object;
- nb2 = new nameBuilder2("Ryan", "Dahl");
- Assert.ok(!deepEqual(nb1, nb2));
-
- // String literal + object
- Assert.ok(!deepEqual("a", {}));
-
- // Make sure deepEqual doesn't loop forever on circular refs
-
- let b = {};
- b.b = b;
-
- let c = {};
- c.b = c;
-
- try {
- Assert.ok(!deepEqual(b, c));
- } catch (e) {
- Assert.ok(true, "Didn't recurse infinitely.");
- }
-});