Commit 9ab00a71 authored by jaubourg's avatar jaubourg

Makes sure statusCode callbacks are ordered in the same way success and error...

Makes sure statusCode callbacks are ordered in the same way success and error callbacks are. Unit tests added.
parent 64e1cdbb
......@@ -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() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment