Skip to content
Permalink
Browse files

Makes sure statusCode callbacks are ordered in the same way success a…

…nd error callbacks are. Unit tests added.
  • Loading branch information
jaubourg committed Jan 20, 2011
1 parent 64e1cdb commit 9ab00a712fe3757f130dce8b42293c82a68c690e
Showing with 34 additions and 7 deletions.
  1. +4 −4 src/ajax.js
  2. +30 −3 test/unit/ajax.js
@@ -427,10 +427,8 @@ jQuery.extend({
// Stored error
error,

// Keep track of statusCode callbacks
oldStatusCode = statusCode;

statusCode = undefined;
// To keep track of statusCode based callbacks
oldStatusCode;

// If successful, handle type chaining
if ( status >= 200 && status < 300 || status === 304 ) {
@@ -588,6 +586,8 @@ jQuery.extend({
}

// Status-dependent callbacks
oldStatusCode = statusCode;
statusCode = undefined;
jXHR.statusCode( oldStatusCode );

if ( s.global ) {
@@ -1911,9 +1911,9 @@ test( "jQuery.ajax - Location object as url (#7531)", 1, function () {

test( "jQuery.ajax - statusCode" , function() {

var count = 10;
var count = 12;

expect( 16 );
expect( 20 );
stop();

function countComplete() {
@@ -1975,8 +1975,35 @@ test( "jQuery.ajax - statusCode" , function() {
}
}).statusCode( createStatusCodes( "all (immediately with method)" , isSuccess ) );

});
var testString = "";

jQuery.ajax( url( uri ), {
success: function( a , b , jXHR ) {
ok( isSuccess , "success" );
var statusCode = {};
statusCode[ jXHR.status ] = function() {
testString += "B";
};
jXHR.statusCode( statusCode );
testString += "A";
},
error: function( jXHR ) {
ok( ! isSuccess , "error" );
var statusCode = {};
statusCode[ jXHR.status ] = function() {
testString += "B";
};
jXHR.statusCode( statusCode );
testString += "A";
},
complete: function() {
strictEqual( testString , "AB" , "Test statusCode callbacks are ordered like " +
( isSuccess ? "success" : "error" ) + " callbacks" );
countComplete();
}
} );

});
});

test("jQuery.ajax - active counter", function() {

0 comments on commit 9ab00a7

Please sign in to comment.
You can’t perform that action at this time.