diff --git a/tests/content/firebug.html b/tests/content/firebug.html index 37099e5932..f889e6e5ca 100644 --- a/tests/content/firebug.html +++ b/tests/content/firebug.html @@ -36,6 +36,7 @@ */ var testList = [ {group: "lib/array", uri: "lib/array/arrayInsert.js", desc: "Verify Arr.arrayInsert() is working as expected" }, + {group: "lib/array", uri: "lib/array/isArrayLike.js", desc: "Verify Arr.isArrayLike() is working as expected" }, {group: "lib/array", uri: "lib/array/unique.js", desc: "Verify Arr.unique() is working as expected" }, {group: "lib/css", uri: "lib/css/classes.js", desc: "Verify Css.setClass(), Css.hasClass() and Css.removeClass() are working as expected" }, {group: "lib/search", uri: "lib/search/literalRegExp.js", desc: "Verify Search.LiteralRegExp() is working as expected" }, diff --git a/tests/content/lib/array/isArrayLike.js b/tests/content/lib/array/isArrayLike.js new file mode 100644 index 0000000000..813d5ed80f --- /dev/null +++ b/tests/content/lib/array/isArrayLike.js @@ -0,0 +1,50 @@ +function runTest() +{ + function object(name) + { + this.name = name; + } + + object.prototype.toString = function() + { + return this.name; + } + + // Simulates a jQuery object + function jQuery() + { + this.splice = function() + { + console.log("splice me!"); + } + + this.length = 0; + } + + var tasks = new FBTest.TaskList(); + tasks.push(verifyResult, true, ["a"]); + tasks.push(verifyResult, true, document.getElementsByClassName("test")); + tasks.push(verifyResult, true, document.querySelectorAll("div")); + tasks.push(verifyResult, true, document.body.classList); + tasks.push(verifyResult, true, new jQuery()); + tasks.push(verifyResult, false, "a"); + tasks.push(verifyResult, false, 1); + tasks.push(verifyResult, false, null); + tasks.push(verifyResult, false, undefined); + tasks.push(verifyResult, false, NaN); + tasks.push(verifyResult, false, Infinity); + tasks.push(verifyResult, false, -Infinity); + tasks.push(verifyResult, false, new object("Peter")); + tasks.push(verifyResult, false, {hello: "Hello Firebug user!"}); + + tasks.run(FBTest.testDone, 0); +} + +function verifyResult(callback, expected, variable) +{ + var result = FW.FBL.isArrayLike(variable); + FBTest.compare(expected, result, + "Variable must" + (expected ? "" : " not") + " be an array-like object"); + + callback(); +} \ No newline at end of file