X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=test%2Funit%2Fcore.js;h=d26e7c56d32b73e8bc670652529e40ec7c258ad3;hb=d483ce0a9c8b19dafa70be93ca071673b86a65e2;hp=ef06e7ac26cc24bc0f6ea3e052496245e10d667d;hpb=e56de77df90e50b9999a02e57241b1cf498b0fe4;p=jquery.git diff --git a/test/unit/core.js b/test/unit/core.js index ef06e7a..d26e7c5 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -12,7 +12,7 @@ test("Basic requirements", function() { }); test("jQuery()", function() { - expect(23); + expect(24); // Basic constructor's behavior @@ -84,6 +84,11 @@ test("jQuery()", function() { exec = true; elem.click(); + + for ( var i = 0; i < 3; ++i ) { + elem = jQuery(""); + } + equals( elem[0].defaultValue, "TEST", "Ensure cached nodes are cloned properly (Bug #6655)" ); }); test("selector state", function() { @@ -915,7 +920,7 @@ test("jQuery._Deferred()", function() { test = false; - deferred.complete( function( value ) { + deferred.done( function( value ) { equals( value , "value" , "Test pre-resolve callback" ); test = true; } ); @@ -926,7 +931,7 @@ test("jQuery._Deferred()", function() { test = false; - deferred.complete( function( value ) { + deferred.done( function( value ) { equals( value , "value" , "Test post-resolve callback" ); test = true; } ); @@ -937,7 +942,7 @@ test("jQuery._Deferred()", function() { test = true; - deferred.complete( function() { + deferred.done( function() { ok( false , "Cancel was ignored" ); test = false; } ); @@ -947,18 +952,18 @@ test("jQuery._Deferred()", function() { deferred = jQuery._Deferred().resolve(); try { - deferred.complete( function() { + deferred.done( function() { throw "Error"; } , function() { ok( true , "Test deferred do not cancel on exception" ); } ); } catch( e ) { strictEqual( e , "Error" , "Test deferred propagates exceptions"); - deferred.complete(); + deferred.done(); } test = ""; - deferred = jQuery._Deferred().complete( function() { + deferred = jQuery._Deferred().done( function() { test += "A"; @@ -968,13 +973,13 @@ test("jQuery._Deferred()", function() { } ).resolve(); - strictEqual( test , "AB" , "Test multiple complete parameters" ); + strictEqual( test , "AB" , "Test multiple done parameters" ); test = ""; - deferred.complete( function() { + deferred.done( function() { - deferred.complete( function() { + deferred.done( function() { test += "C"; @@ -987,11 +992,11 @@ test("jQuery._Deferred()", function() { test += "B"; } ); - strictEqual( test , "ABC" , "Test complete callbacks order" ); + strictEqual( test , "ABC" , "Test done callbacks order" ); deferred = jQuery._Deferred(); - deferred.fire( jQuery , [ document ] ).complete( function( doc ) { + deferred.fire( jQuery , [ document ] ).done( function( doc ) { ok( this === jQuery && arguments.length === 1 && doc === document , "Test fire context & args" ); }); }); @@ -1058,3 +1063,75 @@ test("jQuery.when()", function() { }); } }); + +test("jQuery.subclass", function(){ + expect(378); + + var Subclass = jQuery.subclass(), + SubclassSubclass = Subclass.subclass(), + jQueryDocument = jQuery(document), + selectors, contexts, methods, method, arg, description; + + jQueryDocument.toString = function(){ return 'jQueryDocument'; }; + + Subclass.fn.subclassMethod = function(){}; + SubclassSubclass.fn.subclassSubclassMethod = function(){}; + + selectors = [ + 'body', + 'html, body', + '
' + ] + + methods = [ // all methods that return a new jQuery instance + ['eq', 1], + ['add', document], + ['end'], + ['has'], + ['closest', 'div'], + ['filter', document], + ['find'] + ] + + contexts = [undefined, document, jQueryDocument]; + + jQuery.each(selectors, function(i, selector){ + + jQuery.each(methods, function(){ + method = this[0] + arg = this[1] + + jQuery.each(contexts, function(i, context){ + + description = '("'+selector+'", '+context+').'+method+'('+(arg||'')+')'; + + same( + jQuery(selector, context)[method](arg).subclassMethod, undefined, + 'jQuery'+description+' doesnt have Subclass methods' + ); + same( + jQuery(selector, context)[method](arg).subclassSubclassMethod, undefined, + 'jQuery'+description+' doesnt have SubclassSubclass methods' + ); + same( + Subclass(selector, context)[method](arg).subclassMethod, Subclass.fn.subclassMethod, + 'Subclass'+description+' has Subclass methods' + ); + same( + Subclass(selector, context)[method](arg).subclassSubclassMethod, undefined, + 'Subclass'+description+' doesnt have SubclassSubclass methods' + ); + same( + SubclassSubclass(selector, context)[method](arg).subclassMethod, Subclass.fn.subclassMethod, + 'SubclassSubclass'+description+' has Subclass methods' + ); + same( + SubclassSubclass(selector, context)[method](arg).subclassSubclassMethod, SubclassSubclass.fn.subclassSubclassMethod, + 'SubclassSubclass'+description+' has SubclassSubclass methods' + ); + + }); + }); + }); + +});