});
test("jQuery()", function() {
- expect(24);
-
- strictEqual( commonJSDefined, jQuery, "CommonJS registered (Bug #7102)" );
+ expect(23);
// Basic constructor's behavior
});
test("jQuery._Deferred()", function() {
-
+
expect( 10 );
-
+
var deferred,
object,
test;
-
+
deferred = jQuery._Deferred();
-
+
test = false;
-
- deferred.then( function( value ) {
+
+ deferred.complete( function( value ) {
equals( value , "value" , "Test pre-resolve callback" );
test = true;
} );
-
+
deferred.resolve( "value" );
-
+
ok( test , "Test pre-resolve callbacks called right away" );
test = false;
-
- deferred.then( function( value ) {
+
+ deferred.complete( function( value ) {
equals( value , "value" , "Test post-resolve callback" );
test = true;
} );
-
+
ok( test , "Test post-resolve callbacks called right away" );
-
+
deferred.cancel();
-
+
test = true;
-
- deferred.then( function() {
+
+ deferred.complete( function() {
ok( false , "Cancel was ignored" );
test = false;
} );
-
+
ok( test , "Test cancel" );
-
+
deferred = jQuery._Deferred().resolve();
-
+
try {
- deferred.then( function() {
+ deferred.complete( function() {
throw "Error";
} , function() {
ok( true , "Test deferred do not cancel on exception" );
} );
} catch( e ) {
strictEqual( e , "Error" , "Test deferred propagates exceptions");
- deferred.then();
+ deferred.complete();
}
-
+
test = "";
- deferred = jQuery._Deferred().then( function() {
-
+ deferred = jQuery._Deferred().complete( function() {
+
test += "A";
-
+
}, function() {
-
+
test += "B";
-
+
} ).resolve();
-
- strictEqual( test , "AB" , "Test multiple then parameters" );
-
+
+ strictEqual( test , "AB" , "Test multiple complete parameters" );
+
test = "";
-
- deferred.then( function() {
-
- deferred.then( function() {
-
+
+ deferred.complete( function() {
+
+ deferred.complete( function() {
+
test += "C";
-
+
} );
-
+
test += "A";
-
+
}, function() {
-
+
test += "B";
} );
-
- strictEqual( test , "ABC" , "Test then callbacks order" );
-
+
+ strictEqual( test , "ABC" , "Test complete callbacks order" );
+
deferred = jQuery._Deferred();
-
- deferred.fire( jQuery , [ document ] ).then( function( doc ) {
+
+ deferred.fire( jQuery , [ document ] ).complete( function( doc ) {
ok( this === jQuery && arguments.length === 1 && doc === document , "Test fire context & args" );
});
});
test("jQuery.Deferred()", function() {
-
+
expect( 4 );
-
+
jQuery.Deferred( function( defer ) {
strictEqual( this , defer , "Defer passed as this & first argument" );
this.resolve( "done" );
}).then( function( value ) {
strictEqual( value , "done" , "Passed function executed" );
});
-
+
jQuery.Deferred().resolve().then( function() {
ok( true , "Success on resolve" );
- }).fail( function() {
+ }, function() {
ok( false , "Error on resolve" );
});
-
+
jQuery.Deferred().reject().then( function() {
ok( false , "Success on reject" );
- }).fail( function() {
+ }, function() {
ok( true , "Error on reject" );
});
});
-
+
test("jQuery.when()", function() {
-
- expect( 14 );
-
- var fakeDeferred = { then: function() { return this; } };
-
- fakeDeferred.then._ = [];
-
+
+ expect( 21 );
+
// Some other objects
jQuery.each( {
-
- "Object with then & no marker": { then: jQuery.noop },
- "Object with then & marker": fakeDeferred,
- "string 1/2": "",
- "string 2/2": "some string",
- "number 1/2": 0,
- "number 2/2": 1,
- "boolean 1/2": true,
- "boolean 2/2": false,
+
+ "an empty string": "",
+ "a non-empty string": "some string",
+ "zero": 0,
+ "a number other than zero": 1,
+ "true": true,
+ "false": false,
"null": null,
"undefined": undefined,
- "custom method name not found automagically": {custom: jQuery._Deferred().then}
-
+ "a plain object": {}
+
} , function( message , value ) {
-
- notStrictEqual( jQuery.when( value ) , value , message );
-
+
+ ok( jQuery.isFunction( jQuery.when( value ).then( function( resolveValue ) {
+ strictEqual( resolveValue , value , "Test the promise was resolved with " + message );
+ } ).promise ) , "Test " + message + " triggers the creation of a new Promise" );
+
} );
-
+
var cache, i;
-
+
for( i = 1 ; i < 4 ; i++ ) {
jQuery.when( cache || jQuery.Deferred( function() {
this.resolve( i );
}) ).then( function( value ) {
strictEqual( value , 1 , "Function executed" + ( i > 1 ? " only once" : "" ) );
cache = value;
- }).fail( function() {
+ }, function() {
ok( false , "Fail called" );
});
}