X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=test%2Funit%2Fcore.js;h=f5f38532d8c1c56c26e30dfe526052b298abbbf1;hb=b8d0c0711f8a9ecd455d4c3cf13394e55c4bf151;hp=0640cf5ce24052c6c1137c1d6d41999c1dff04b1;hpb=e277e6ed2120e9930193582307b8296ed37bd663;p=jquery.git 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);