X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=test%2Funit%2Fajax.js;h=d01837239b01455de6bfe0226444c165ac2fb081;hb=5ca8f0617f5c94495380ff783452a52eab706d39;hp=d262988eb85afa3f0223ea0200e1982a5af5b062;hpb=64e1cdbb95b8bbefbc9dec70ae30e0714a549619;p=jquery.git diff --git a/test/unit/ajax.js b/test/unit/ajax.js index d262988..d018372 100644 --- a/test/unit/ajax.js +++ b/test/unit/ajax.js @@ -240,6 +240,47 @@ test("jQuery.ajax() - error callbacks", function() { }); }); +test("jQuery.ajax() - textStatus and errorThrown values", function() { + + var nb = 3; + + expect( 2 * nb ); + stop(); + + function startN() { + if ( !( --nb ) ) { + start(); + } + } + + jQuery.ajax({ + url: url("data/nonExistingURL"), + error: function( _ , textStatus , errorThrown ){ + strictEqual( textStatus, "error", "textStatus is 'error' for 404" ); + strictEqual( errorThrown, "Not Found", "errorThrown is 'Not Found' for 404"); + startN(); + } + }); + + jQuery.ajax({ + url: url("data/name.php?wait=5"), + error: function( _ , textStatus , errorThrown ){ + strictEqual( textStatus, "abort", "textStatus is 'abort' for abort" ); + strictEqual( errorThrown, "abort", "errorThrown is 'abort' for abort"); + startN(); + } + }).abort(); + + jQuery.ajax({ + url: url("data/name.php?wait=5"), + error: function( _ , textStatus , errorThrown ){ + strictEqual( textStatus, "mystatus", "textStatus is 'mystatus' for abort('mystatus')" ); + strictEqual( errorThrown, "mystatus", "errorThrown is 'mystatus' for abort('mystatus')"); + startN(); + } + }).abort( "mystatus" ); +}); + test("jQuery.ajax() - responseText on error", function() { expect( 1 ); @@ -1911,9 +1952,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,7 +2016,77 @@ 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 - transitive conversions", function() { + + expect( 8 ); + + stop(); + + jQuery.when( + + jQuery.ajax( url("data/json.php") , { + converters: { + "json myjson": function( data ) { + ok( true , "converter called" ); + return data; + } + }, + dataType: "myjson", + success: function() { + ok( true , "Transitive conversion worked" ); + strictEqual( this.dataTypes[0] , "text" , "response was retrieved as text" ); + strictEqual( this.dataTypes[1] , "myjson" , "request expected myjson dataType" ); + } + }), + + jQuery.ajax( url("data/json.php") , { + converters: { + "json myjson": function( data ) { + ok( true , "converter called (*)" ); + return data; + } + }, + contents: false, /* headers are wrong so we ignore them */ + dataType: "* myjson", + success: function() { + ok( true , "Transitive conversion worked (*)" ); + strictEqual( this.dataTypes[0] , "text" , "response was retrieved as text (*)" ); + strictEqual( this.dataTypes[1] , "myjson" , "request expected myjson dataType (*)" ); + } + }) + + ).then( start , start ); });