From b8d0c0711f8a9ecd455d4c3cf13394e55c4bf151 Mon Sep 17 00:00:00 2001 From: jeresig Date: Wed, 2 Dec 2009 14:57:13 -0500 Subject: [PATCH] Added some isObjectLiteral tests. --- test/unit/core.js | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/test/unit/core.js b/test/unit/core.js index 0640cf5..f5f3853 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -200,6 +200,51 @@ test("trim", function() { equals( jQuery.trim(" " + nbsp + "hello " + nbsp + " "), "hello", " " ); }); +test("isObjectLiteral", function() { + expect(7); + + stop(); + + // The use case that we want to match + ok(jQuery.isObjectLiteral({}), "{}"); + + // Instantiated objects shouldn't be matched + ok(!jQuery.isObjectLiteral(new Date), "new Date"); + + var fn = function(){}; + + // Functions shouldn't be matched + ok(!jQuery.isObjectLiteral(fn), "fn"); + + // Again, instantiated objects shouldn't be matched + ok(!jQuery.isObjectLiteral(new fn), "new fn (no methods)"); + + // Makes the function a little more realistic + // (and harder to detect, incidentally) + fn.prototype = {someMethod: function(){}}; + + // Again, instantiated objects shouldn't be matched + ok(!jQuery.isObjectLiteral(new fn), "new fn"); + + // DOM Element + ok(!jQuery.isObjectLiteral(document.createElement("div")), "DOM Element"); + + var iframe = document.createElement("iframe"); + document.body.appendChild(iframe); + + window.iframeDone = function(otherObject){ + // Objects from other windows should be matched + ok(jQuery.isObjectLiteral(new otherObject), "new otherObject"); + document.body.removeChild( iframe ); + start(); + }; + + var doc = iframe.contentDocument || iframe.contentWindow.document; + doc.open(); + doc.write(""); + doc.close(); +}); + test("isFunction", function() { expect(19); -- 1.7.10.4