X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=test%2Funit%2Fcore.js;h=4cca7d967714f8e8f7b93eaba97a8e0c09b36fc5;hb=6fc2c67581e3feffc757bb6b1e719e589bd7a5b2;hp=90998bb528fc8cd8df423ec58d4173ebb94da344;hpb=5ca908d3b637a5d1e5c14b84d9a15653c3cb6d90;p=jquery.git diff --git a/test/unit/core.js b/test/unit/core.js index 90998bb..4cca7d9 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -12,7 +12,7 @@ test("Basic requirements", function() { }); test("$()", function() { - expect(4); + expect(8); var main = $("#main"); isSet( $("div p", main).get(), q("sndp", "en", "sap"), "Basic selector with jQuery object as context" ); @@ -41,6 +41,15 @@ test("$()", function() { equals( img.length, 1, "Correct number of elements generated for img" ); var div = $("

"); equals( div.length, 4, "Correct number of elements generated for div hr code b" ); + + // can actually yield more than one, when iframes are included, the window is an array as well + equals( $(window).length, 1, "Correct number of elements generated for window" ); + + equals( $(document).length, 1, "Correct number of elements generated for document" ); + + equals( $([1,2,3]).get(1), 2, "Test passing an array to the factory" ); + + equals( $(document.body).get(0), $('body').get(0), "Test passing an html node to the factory" ); }); test("browser", function() { @@ -1025,7 +1034,7 @@ test("is(String)", function() { }); test("$.extend(Object, Object)", function() { - expect(17); + expect(20); var settings = { xnumber1: 5, xnumber2: 7, xstring1: "peter", xstring2: "pan" }, options = { xnumber2: 1, xstring2: "x", xxx: "newstring" }, @@ -1049,7 +1058,17 @@ test("$.extend(Object, Object)", function() { isObj( deep1.foo, deepmerged.foo, "Check if foo: settings must be extended" ); isObj( deep2.foo, deep2copy.foo, "Check if not deep2: options must not be modified" ); equals( deep1.foo2, document, "Make sure that a deep clone was not attempted on the document" ); - + + var nullUndef; + nullUndef = jQuery.extend({}, options, { xnumber2: null }); + ok( nullUndef.xnumber2 === null, "Check to make sure null values are copied"); + + nullUndef = jQuery.extend({}, options, { xnumber2: undefined }); + ok( nullUndef.xnumber2 === options.xnumber2, "Check to make sure undefined values are not copied"); + + nullUndef = jQuery.extend({}, options, { xnumber0: null }); + ok( nullUndef.xnumber0 === null, "Check to make sure null values are inserted"); + var target = {}; var recursive = { foo:target, bar:5 }; jQuery.extend(true, target, recursive); @@ -1388,26 +1407,35 @@ test("$.className", function() { }); test("$.data", function() { - expect(3); + expect(5); var div = $("#foo")[0]; ok( jQuery.data(div, "test") == undefined, "Check for no data exists" ); jQuery.data(div, "test", "success"); ok( jQuery.data(div, "test") == "success", "Check for added data" ); jQuery.data(div, "test", "overwritten"); ok( jQuery.data(div, "test") == "overwritten", "Check for overwritten data" ); + jQuery.data(div, "test", undefined); + ok( jQuery.data(div, "test") == "overwritten", "Check that data wasn't removed"); + jQuery.data(div, "test", null); + ok( jQuery.data(div, "test") === null, "Check for null data"); }); test(".data()", function() { - expect(16); + expect(18); var div = $("#foo"); ok( div.data("test") == undefined, "Check for no data exists" ); div.data("test", "success"); ok( div.data("test") == "success", "Check for added data" ); div.data("test", "overwritten"); ok( div.data("test") == "overwritten", "Check for overwritten data" ); - + div.data("test", undefined); + ok( div.data("test") == "overwritten", "Check that data wasn't removed"); + div.data("test", null); + ok( div.data("test") === null, "Check for null data"); + + div.data("test", "overwritten"); var hits = {test:0}, gets = {test:0}; - + div .bind("setData",function(e,key,value){ hits[key] += value; }) .bind("setData.foo",function(e,key,value){ hits[key] += value; }) @@ -1511,7 +1539,7 @@ test("slice()", function() { }); test("map()", function() { - expect(6); + expect(2);//expect(6); isSet( $("#ap").map(function(){ @@ -1529,6 +1557,8 @@ test("map()", function() { "Single Map" ); + return;//these haven't been accepted yet + //for #2616 var keys = $.map( {a:1,b:2}, function( v, k ){ return k;