X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=test%2Funit%2Fajax.js;h=7c572a32cfa228bbcd66dea9aa4e435975962bfe;hb=735a949a0649f0299e8e4d87b259290970a68ddf;hp=c2d572906dd8d53a5d7e70aca62ef3d2f4051779;hpb=08fcde6a59e5bb6ca9e58bf78aac64ff2c15c29d;p=jquery.git diff --git a/test/unit/ajax.js b/test/unit/ajax.js index c2d5729..7c572a3 100644 --- a/test/unit/ajax.js +++ b/test/unit/ajax.js @@ -344,14 +344,18 @@ test(".ajax() - retry with jQuery.ajax( this )", function() { test(".ajax() - headers" , function() { - expect( 2 ); + expect( 4 ); stop(); + jQuery('#foo').ajaxSend(function( evt, xhr ) { + xhr.setRequestHeader( "ajax-send", "test" ); + }); + var requestHeaders = { - siMPle: "value", - "SometHing-elsE": "other value", - OthEr: "something else" + siMPle: "value", + "SometHing-elsE": "other value", + OthEr: "something else" }, list = [], i; @@ -359,22 +363,31 @@ test(".ajax() - headers" , function() { for( i in requestHeaders ) { list.push( i ); } + list.push( "ajax-send" ); jQuery.ajax(url("data/headers.php?keys="+list.join( "_" ) ), { + headers: requestHeaders, success: function( data , _ , xhr ) { var tmp = []; for ( i in requestHeaders ) { tmp.push( i , ": " , requestHeaders[ i ] , "\n" ); } + tmp.push( "ajax-send: test\n" ); tmp = tmp.join( "" ); - equals( data , tmp , "Headers were sent" ); - equals( xhr.getResponseHeader( "Sample-Header" ) , "Hello World" , "Sample header received" ); - start(); + strictEqual( data , tmp , "Headers were sent" ); + strictEqual( xhr.getResponseHeader( "Sample-Header" ) , "Hello World" , "Sample header received" ); + if ( jQuery.browser.mozilla ) { + ok( true, "Firefox doesn't support empty headers" ); + } else { + strictEqual( xhr.getResponseHeader( "Empty-Header" ) , "" , "Empty header received" ); + } + strictEqual( xhr.getResponseHeader( "Sample-Header2" ) , "Hello World 2" , "Second sample header received" ); }, error: function(){ ok(false, "error"); } - }); + + }).then( start, start ); }); @@ -479,7 +492,7 @@ test(".ajax() - hash", function() { test("jQuery ajax - cross-domain detection", function() { - expect( 4 ); + expect( 6 ); var loc = document.location, otherPort = loc.port === 666 ? 667 : 666, @@ -496,6 +509,15 @@ test("jQuery ajax - cross-domain detection", function() { jQuery.ajax({ dataType: "jsonp", + url: 'app:/path', + beforeSend: function( _ , s ) { + ok( s.crossDomain , "Adobe AIR app:/ URL detected as cross-domain" ); + return false; + } + }); + + jQuery.ajax({ + dataType: "jsonp", url: loc.protocol + '//somewebsitethatdoesnotexist-656329477541.com:' + ( loc.port || 80 ), beforeSend: function( _ , s ) { ok( s.crossDomain , "Test different hostnames are detected as cross-domain" ); @@ -514,6 +536,15 @@ test("jQuery ajax - cross-domain detection", function() { jQuery.ajax({ dataType: "jsonp", + url: "about:blank", + beforeSend: function( _ , s ) { + ok( s.crossDomain , "Test about:blank is detected as cross-domain" ); + return false; + } + }); + + jQuery.ajax({ + dataType: "jsonp", url: loc.protocol + "//" + loc.host, crossDomain: true, beforeSend: function( _ , s ) { @@ -524,7 +555,7 @@ test("jQuery ajax - cross-domain detection", function() { }); -test(".load()) - 404 error callbacks", function() { +test(".load() - 404 error callbacks", function() { expect( 6 ); stop(); @@ -915,7 +946,7 @@ test("serialize()", function() { }); test("jQuery.param()", function() { - expect(25); + expect(24); equals( !jQuery.ajaxSettings.traditional, true, "traditional flag, falsy by default" ); @@ -953,8 +984,6 @@ test("jQuery.param()", function() { // #7945 equals( jQuery.param({"jquery": "1.4.2"}), "jquery=1.4.2", "Check that object with a jQuery property get serialized correctly" ); - equals( jQuery.param(jQuery("#form :input")), "action=Test&text2=Test&radio1=on&radio2=on&check=on&=on&hidden=&foo%5Bbar%5D=&name=name&search=search&button=&=foobar&select1=&select2=3&select3=1&select4=1&select5=3", "Make sure jQuery objects are properly serialized"); - jQuery.ajaxSetup({ traditional: true }); var params = {foo:"bar", baz:42, quux:"All your base are belong to us"}; @@ -1191,6 +1220,21 @@ test("load(String, String, Function)", function() { }); }); +test("jQuery.get(String, Function) - data in ajaxSettings (#8277)", function() { + expect(1); + stop(); + jQuery.ajaxSetup({ + data: "helloworld" + }); + jQuery.get(url('data/echoQuery.php'), function(data) { + ok( /helloworld$/.test( data ), 'Data from ajaxSettings was used'); + jQuery.ajaxSetup({ + data: null + }); + start(); + }); +}); + test("jQuery.get(String, Hash, Function) - parse xml and use text() on nodes", function() { expect(2); stop(); @@ -2162,6 +2206,34 @@ test("jQuery.ajax - transitive conversions", function() { }); +test("jQuery.ajax - overrideMimeType", function() { + + expect( 2 ); + + stop(); + + jQuery.when( + + jQuery.ajax( url("data/json.php") , { + beforeSend: function( xhr ) { + xhr.overrideMimeType( "application/json" ); + }, + success: function( json ) { + ok( json.data , "Mimetype overriden using beforeSend" ); + } + }), + + jQuery.ajax( url("data/json.php") , { + mimeType: "application/json", + success: function( json ) { + ok( json.data , "Mimetype overriden using mimeType option" ); + } + }) + + ).then( start , start ); + +}); + test("jQuery.ajax - abort in prefilter", function() { expect( 1 );