X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=test%2Funit%2Fajax.js;h=33f278274887b6f454e30be0eed350f0697ab441;hb=e0b1bb8e3d66db4166ac7ee2146903bae7ab1eb9;hp=ec28b7c8b8d8989711661e54b69ca8baa7ee4cad;hpb=d2384ad03a058370cc5978adaec5691fdee323bb;p=jquery.git diff --git a/test/unit/ajax.js b/test/unit/ajax.js index ec28b7c..33f2782 100644 --- a/test/unit/ajax.js +++ b/test/unit/ajax.js @@ -915,7 +915,7 @@ test("serialize()", function() { }); test("jQuery.param()", function() { - expect(22); + expect(23); equals( !jQuery.ajaxSettings.traditional, true, "traditional flag, falsy by default" ); @@ -978,6 +978,9 @@ test("jQuery.param()", function() { params = { param1: null }; equals( jQuery.param(params,false), "param1=null", "Make sure that null params aren't traversed." ); + + params = {'test': {'length': 3, 'foo': 'bar'} }; + equals( jQuery.param( params, false ), "test%5Blength%5D=3&test%5Bfoo%5D=bar", "Sub-object with a length property" ); }); test("synchronous request", function() { @@ -1218,10 +1221,10 @@ test("jQuery.getScript(String, Function) - no callback", function() { jQuery.each( [ "Same Domain", "Cross Domain" ] , function( crossDomain , label ) { test("jQuery.ajax() - JSONP, " + label, function() { - expect(16); + expect(20); var count = 0; - function plus(){ if ( ++count == 16 ) start(); } + function plus(){ if ( ++count == 18 ) start(); } stop(); @@ -1362,6 +1365,38 @@ jQuery.each( [ "Same Domain", "Cross Domain" ] , function( crossDomain , label ) }); jQuery.ajax({ + url: "data/jsonp.php", + dataType: "jsonp", + crossDomain: crossDomain, + jsonpCallback: "functionToCleanUp", + success: function(data){ + ok( data.data, "JSON results returned (GET, custom callback name to be cleaned up)" ); + strictEqual( window.functionToCleanUp, undefined, "Callback was removed (GET, custom callback name to be cleaned up)" ); + plus(); + var xhr; + jQuery.ajax({ + url: "data/jsonp.php", + dataType: "jsonp", + crossDomain: crossDomain, + jsonpCallback: "functionToCleanUp", + beforeSend: function( jXHR ) { + xhr = jXHR; + return false; + } + }); + xhr.error(function() { + ok( true, "Ajax error JSON (GET, custom callback name to be cleaned up)" ); + strictEqual( window.functionToCleanUp, undefined, "Callback was removed after early abort (GET, custom callback name to be cleaned up)" ); + plus(); + }); + }, + error: function(data){ + ok( false, "Ajax error JSON (GET, custom callback name to be cleaned up)" ); + plus(); + } + }); + + jQuery.ajax({ type: "POST", url: "data/jsonp.php", dataType: "jsonp", @@ -1523,17 +1558,23 @@ test("jQuery.ajax() - malformed JSON", function() { }); test("jQuery.ajax() - script by content-type", function() { - expect(1); + expect(2); stop(); - jQuery.ajax({ - url: "data/script.php", - data: { header: "script" }, - success: function() { - start(); - } - }); + jQuery.when( + + jQuery.ajax({ + url: "data/script.php", + data: { header: "script" } + }), + + jQuery.ajax({ + url: "data/script.php", + data: { header: "ecma" } + }) + + ).then( start, start ); }); test("jQuery.ajax() - json by content-type", function() { @@ -1636,17 +1677,32 @@ test("jQuery.getJSON(String, Function) - JSON object with absolute url to local }); }); -test("jQuery.post - data", function() { - expect(2); +test("jQuery.post - data", 3, function() { stop(); - jQuery.post(url("data/name.php"), {xml: "5-2", length: 3}, function(xml){ - jQuery('math', xml).each(function() { - equals( jQuery('calculation', this).text(), '5-2', 'Check for XML' ); - equals( jQuery('result', this).text(), '3', 'Check for XML' ); - }); - start(); - }); + jQuery.when( + jQuery.post( url( "data/name.php" ), { xml: "5-2", length: 3 }, function( xml ) { + jQuery( 'math', xml ).each( function() { + equals( jQuery( 'calculation', this ).text(), '5-2', 'Check for XML' ); + equals( jQuery( 'result', this ).text(), '3', 'Check for XML' ); + }); + }), + + jQuery.ajax({ + url: url('data/echoData.php'), + type: "POST", + data: { + 'test': { + 'length': 7, + 'foo': 'bar' + } + }, + success: function( data ) { + strictEqual( data, 'test%5Blength%5D=7&test%5Bfoo%5D=bar', 'Check if a sub-object with a length param is serialized correctly'); + } + }) + ).then( start, start ); + }); test("jQuery.post(String, Hash, Function) - simple with xml", function() { @@ -2059,12 +2115,12 @@ test("jQuery.ajax - transitive conversions", function() { jQuery.ajax( url("data/json.php") , { converters: { - "json myjson": function( data ) { + "json myJson": function( data ) { ok( true , "converter called" ); return data; } }, - dataType: "myjson", + dataType: "myJson", success: function() { ok( true , "Transitive conversion worked" ); strictEqual( this.dataTypes[0] , "text" , "response was retrieved as text" ); @@ -2074,13 +2130,13 @@ test("jQuery.ajax - transitive conversions", function() { jQuery.ajax( url("data/json.php") , { converters: { - "json myjson": function( data ) { + "json myJson": function( data ) { ok( true , "converter called (*)" ); return data; } }, contents: false, /* headers are wrong so we ignore them */ - dataType: "* myjson", + dataType: "* myJson", success: function() { ok( true , "Transitive conversion worked (*)" ); strictEqual( this.dataTypes[0] , "text" , "response was retrieved as text (*)" );