X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=test%2Funit%2Fajax.js;h=4162d585a133a426a0e3923a615a98056b9b2eb8;hb=f83cdc3c4c134b2796335e9f9806f3b67e7ca87f;hp=14f8928572bd90963401f5f01594a342b57dcf9d;hpb=afefb4f3d28f47c0a93cc9dfddfcbadb595a8efb;p=jquery.git diff --git a/test/unit/ajax.js b/test/unit/ajax.js index 14f8928..4162d58 100644 --- a/test/unit/ajax.js +++ b/test/unit/ajax.js @@ -257,6 +257,29 @@ test("jQuery.ajax() - responseText on error", function() { }); }); +test(".ajax() - retry with jQuery.ajax( this )", function() { + + expect( 1 ); + + stop(); + + var firstTime = 1; + + jQuery.ajax({ + url: url("data/errorWithText.php"), + error: function() { + if ( firstTime ) { + firstTime = 0; + jQuery.ajax( this ); + } else { + ok( true , "Test retrying with jQuery.ajax(this) works" ); + start(); + } + } + }); + +}); + test(".ajax() - headers" , function() { expect( 2 ); @@ -293,6 +316,28 @@ test(".ajax() - headers" , function() { }); +test(".ajax() - Accept header" , function() { + + expect( 1 ); + + stop(); + + jQuery.ajax(url("data/headers.php?keys=accept"), { + headers: { + Accept: "very wrong accept value" + }, + beforeSend: function( xhr ) { + xhr.setRequestHeader( "Accept", "*/*" ); + }, + success: function( data ) { + strictEqual( data , "accept: */*\n" , "Test Accept header is set to last value provided" ); + start(); + }, + error: function(){ ok(false, "error"); } + }); + +}); + test(".ajax() - contentType" , function() { expect( 2 ); @@ -360,53 +405,48 @@ test(".ajax() - hash", function() { test("jQuery ajax - cross-domain detection", function() { - expect( 3 ); + expect( 4 ); var loc = document.location, otherPort = loc.port === 666 ? 667 : 666, - otherProtocol = loc.protocol === "http:" ? "https:" : "http:", - protocolFlag, - hostFlag, - portFlag; + otherProtocol = loc.protocol === "http:" ? "https:" : "http:"; - if ( jQuery.ajax({ + jQuery.ajax({ + dataType: "jsonp", url: otherProtocol + "//" + loc.host, beforeSend: function( _ , s ) { - protocolFlag = 1; ok( s.crossDomain , "Test different protocols are detected as cross-domain" ); return false; } - }) === false ) { - if ( ! protocolFlag ) { - ok( ! jQuery.support.cors , "Test different protocols are detected as cross-domain (no transport)" ); - } - } + }); - if ( jQuery.ajax({ + jQuery.ajax({ + dataType: "jsonp", url: loc.protocol + '//somewebsitethatdoesnotexist-656329477541.com:' + ( loc.port || 80 ), beforeSend: function( _ , s ) { - hostFlag = 1; ok( s.crossDomain , "Test different hostnames are detected as cross-domain" ); return false; } - }) === false ) { - if ( ! hostFlag ) { - ok( ! jQuery.support.cors , "Test different hostnames are detected as cross-domain (no transport)" ); - } - } + }); - if ( jQuery.ajax({ + jQuery.ajax({ + dataType: "jsonp", url: loc.protocol + "//" + loc.hostname + ":" + otherPort, beforeSend: function( _ , s ) { - portFlag = 1; ok( s.crossDomain , "Test different ports are detected as cross-domain" ); return false; } - }) === false ) { - if ( ! portFlag ) { - ok( ! jQuery.support.cors , "Test different ports are detected as cross-domain (no transport)" ); + }); + + jQuery.ajax({ + dataType: "jsonp", + url: loc.protocol + "//" + loc.host, + crossDomain: true, + beforeSend: function( _ , s ) { + ok( s.crossDomain , "Test forced crossDomain is detected as cross-domain" ); + return false; } - } + }); }); @@ -1007,6 +1047,18 @@ test("load(String, Function) - check file with only a script tag", function() { }); }); +test("load(String, Function) - dataFilter in ajaxSettings", function() { + expect(2); + stop(); + jQuery.ajaxSetup({ dataFilter: function() { return "Hello World"; } }); + var div = jQuery("
").load(url("data/name.html"), function(responseText) { + strictEqual( div.html(), "Hello World" , "Test div was filled with filtered data" ); + strictEqual( responseText, "Hello World" , "Test callback receives filtered data" ); + jQuery.ajaxSetup({ dataFilter: 0 }); + start(); + }); +}); + test("load(String, Object, Function)", function() { expect(2); stop(); @@ -1063,10 +1115,10 @@ test("jQuery.getScript(String, Function) - no callback", function() { }); test("jQuery.ajax() - JSONP, Local", function() { - expect(9); + expect(10); var count = 0; - function plus(){ if ( ++count == 9 ) start(); } + function plus(){ if ( ++count == 10 ) start(); } stop(); @@ -1113,6 +1165,22 @@ test("jQuery.ajax() - JSONP, Local", function() { jQuery.ajax({ url: "data/jsonp.php", dataType: "jsonp", + data: { + callback: "?" + }, + success: function(data){ + ok( data.data, "JSON results returned (GET, processed data callback)" ); + plus(); + }, + error: function(data){ + ok( false, "Ajax error JSON (GET, processed data callback)" ); + plus(); + } + }); + + jQuery.ajax({ + url: "data/jsonp.php", + dataType: "jsonp", jsonp: "callback", success: function(data){ ok( data.data, "JSON results returned (GET, data obj callback)" );