X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=test%2Funit%2Fcore.js;h=811d13fb4aa33a521faa51b73cda209d5a6d934d;hb=a44ec402771f6d622506f39073d0be260400dd21;hp=d50997b2ccb16303944bf988b7413531abd8e96f;hpb=230614b4df313493813d688b63ab68f3812a0030;p=jquery.git diff --git a/test/unit/core.js b/test/unit/core.js index d50997b..811d13f 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -12,7 +12,7 @@ test("Basic requirements", function() { }); test("jQuery()", function() { - expect(22); + expect(23); // Basic constructor's behavior @@ -25,7 +25,7 @@ test("jQuery()", function() { equals( jQuery(obj).selector, "div", "jQuery(jQueryObj) == jQueryObj" ); // can actually yield more than one, when iframes are included, the window is an array as well - equals( 1, jQuery(window).length, "Correct number of elements generated for jQuery(window)" ); + equals( jQuery(window).length, 1, "Correct number of elements generated for jQuery(window)" ); var main = jQuery("#main"); @@ -63,9 +63,12 @@ test("jQuery()", function() { equals( jQuery(document.body).get(0), jQuery('body').get(0), "Test passing an html node to the factory" ); + var exec = false; + var elem = jQuery("
", { width: 10, css: { paddingLeft:1, paddingRight:1 }, + click: function(){ ok(exec, "Click executed."); }, text: "test", "class": "test2", id: "test3" @@ -78,6 +81,9 @@ test("jQuery()", function() { equals( elem[0].firstChild.nodeValue, "test", 'jQuery quick setter text'); equals( elem[0].className, "test2", 'jQuery() quick setter class'); equals( elem[0].id, "test3", 'jQuery() quick setter id'); + + exec = true; + elem.click(); }); test("selector state", function() { @@ -177,7 +183,7 @@ test("browser", function() { } test("noConflict", function() { - expect(6); + expect(7); var $$ = jQuery; @@ -190,19 +196,49 @@ test("noConflict", function() { equals( jQuery.noConflict(true), $$, "noConflict returned the jQuery object" ); equals( jQuery, originaljQuery, "Make sure jQuery was reverted." ); equals( $, original$, "Make sure $ was reverted." ); + ok( $$("#main").html("test"), "Make sure that jQuery still works." ); jQuery = $$; }); test("trim", function() { - expect(4); + expect(9); - var nbsp = String.fromCharCode(160); + var nbsp = String.fromCharCode(160); + + equals( jQuery.trim("hello "), "hello", "trailing space" ); + equals( jQuery.trim(" hello"), "hello", "leading space" ); + equals( jQuery.trim(" hello "), "hello", "space on both sides" ); + equals( jQuery.trim(" " + nbsp + "hello " + nbsp + " "), "hello", " " ); + + equals( jQuery.trim(), "", "Nothing in." ); + equals( jQuery.trim( undefined ), "", "Undefined" ); + equals( jQuery.trim( null ), "", "Null" ); + equals( jQuery.trim( 5 ), "5", "Number" ); + equals( jQuery.trim( false ), "false", "Boolean" ); +}); - equals( jQuery.trim("hello "), "hello", "trailing space" ); - equals( jQuery.trim(" hello"), "hello", "leading space" ); - equals( jQuery.trim(" hello "), "hello", "space on both sides" ); - equals( jQuery.trim(" " + nbsp + "hello " + nbsp + " "), "hello", " " ); +test("type", function() { + expect(18); + + equals( jQuery.type(null), "null", "null" ); + equals( jQuery.type(undefined), "undefined", "undefined" ); + equals( jQuery.type(true), "boolean", "Boolean" ); + equals( jQuery.type(false), "boolean", "Boolean" ); + equals( jQuery.type(Boolean(true)), "boolean", "Boolean" ); + equals( jQuery.type(0), "number", "Number" ); + equals( jQuery.type(1), "number", "Number" ); + equals( jQuery.type(Number(1)), "number", "Number" ); + equals( jQuery.type(""), "string", "String" ); + equals( jQuery.type("a"), "string", "String" ); + equals( jQuery.type(String("a")), "string", "String" ); + equals( jQuery.type({}), "object", "Object" ); + equals( jQuery.type(/foo/), "regexp", "RegExp" ); + equals( jQuery.type(new RegExp("asdf")), "regexp", "RegExp" ); + equals( jQuery.type([1]), "array", "Array" ); + equals( jQuery.type(new Date()), "date", "Date" ); + equals( jQuery.type(new Function("return;")), "function", "Function" ); + equals( jQuery.type(function(){}), "function", "Function" ); }); test("isPlainObject", function() { @@ -246,21 +282,28 @@ test("isPlainObject", function() { // Window ok(!jQuery.isPlainObject(window), "window"); - - var iframe = document.createElement("iframe"); - document.body.appendChild(iframe); - window.iframeDone = function(otherObject){ - // Objects from other windows should be matched - ok(jQuery.isPlainObject(new otherObject), "new otherObject"); + try { + var iframe = document.createElement("iframe"); + document.body.appendChild(iframe); + + window.iframeDone = function(otherObject){ + // Objects from other windows should be matched + ok(jQuery.isPlainObject(new otherObject), "new otherObject"); + document.body.removeChild( iframe ); + start(); + }; + + var doc = iframe.contentDocument || iframe.contentWindow.document; + doc.open(); + doc.write(""); + doc.close(); + } catch(e) { document.body.removeChild( iframe ); + + ok(true, "new otherObject - iframes not supported"); start(); - }; - - var doc = iframe.contentDocument || iframe.contentWindow.document; - doc.open(); - doc.write(""); - doc.close(); + } }); test("isFunction", function() { @@ -362,9 +405,15 @@ test("isXMLDoc - HTML", function() { try { var body = jQuery(iframe).contents()[0]; - ok( !jQuery.isXMLDoc( body ), "Iframe body element" ); - } catch(e){ - ok( false, "Iframe body element exception" ); + + try { + ok( !jQuery.isXMLDoc( body ), "Iframe body element" ); + } catch(e) { + ok( false, "Iframe body element exception" ); + } + + } catch(e) { + ok( true, "Iframe body element - iframe not working correctly" ); } document.body.removeChild( iframe ); @@ -386,7 +435,7 @@ test("isXMLDoc - XML", function() { test("jQuery('html')", function() { expect(15); - reset(); + QUnit.reset(); jQuery.foo = false; var s = jQuery("")[0]; ok( s, "Creating a script" ); @@ -402,7 +451,7 @@ test("jQuery('html')", function() { equals( div.childNodes[1].nodeType, 1, "Paragraph." ); equals( div.childNodes[1].firstChild.nodeType, 3, "Paragraph text." ); - reset(); + QUnit.reset(); ok( jQuery("")[0], "Creating a link" ); ok( !jQuery("