X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=test%2Funit%2Fajax.js;h=80da7f8f88734bf59b190ca0862c71f002aa0192;hb=1ddfdabbb983e2d3bf7f7200a3da5051f274e6fe;hp=3041834751d375679170959975c99778cde9a610;hpb=cb49b4a1b648dea8ce5b1e5dbb2ab5432a84cb63;p=jquery.git diff --git a/test/unit/ajax.js b/test/unit/ajax.js index 3041834..80da7f8 100644 --- a/test/unit/ajax.js +++ b/test/unit/ajax.js @@ -348,10 +348,14 @@ test(".ajax() - headers" , function() { 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,25 @@ 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(); }, error: function(){ ok(false, "error"); } - }); + + }).then( start, start ); }); @@ -524,22 +531,7 @@ test("jQuery ajax - cross-domain detection", function() { }); -test(".ajax() - 304", function() { - expect( 1 ); - stop(); - - jQuery.ajax({ - url: url("data/notmodified.php"), - success: function(){ ok(true, "304 ok"); }, - // Do this because opera simply refuses to implement 304 handling :( - // A feature-driven way of detecting this would be appreciated - // See: http://gist.github.com/599419 - error: function(){ ok(jQuery.browser.opera, "304 not ok "); }, - complete: function(xhr){ start(); } - }); -}); - -test(".load()) - 404 error callbacks", function() { +test(".load() - 404 error callbacks", function() { expect( 6 ); stop(); @@ -930,7 +922,7 @@ test("serialize()", function() { }); test("jQuery.param()", function() { - expect(23); + expect(24); equals( !jQuery.ajaxSettings.traditional, true, "traditional flag, falsy by default" ); @@ -965,6 +957,9 @@ test("jQuery.param()", function() { equals( jQuery.param({"foo": {"bar": [], foo: 1} }), "foo%5Bbar%5D=&foo%5Bfoo%5D=1", "Empty array param" ); equals( jQuery.param({"foo": {"bar": {}} }), "foo%5Bbar%5D=", "Empty object param" ); + // #7945 + equals( jQuery.param({"jquery": "1.4.2"}), "jquery=1.4.2", "Check that object with a jQuery property get serialized correctly" ); + jQuery.ajaxSetup({ traditional: true }); var params = {foo:"bar", baz:42, quux:"All your base are belong to us"}; @@ -1201,6 +1196,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(); @@ -2172,6 +2182,53 @@ 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 ); + + jQuery.ajaxPrefilter(function( options, _, jqXHR ) { + if ( options.abortInPrefilter ) { + jqXHR.abort(); + } + }); + + strictEqual( jQuery.ajax({ + abortInPrefilter: true, + error: function() { + ok( false, "error callback called" ); + } + }), false, "Request was properly aborted early by the prefilter" ); + +}); + test("jQuery.ajax - active counter", function() { ok( jQuery.active == 0, "ajax active counter should be zero: " + jQuery.active ); });