X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=test%2Funit%2Fajax.js;h=9e6f32de292e8808d4151523ce7009e61adbc135;hb=a2c2d68d7f29eb543d937a72bdf4b5399b7aa14a;hp=85c7380d71b0965c1017e06f3918511a9e80af95;hpb=57c046f91cbc3caf174ecc993fe883c027340901;p=jquery.git diff --git a/test/unit/ajax.js b/test/unit/ajax.js index 85c7380..9e6f32d 100644 --- a/test/unit/ajax.js +++ b/test/unit/ajax.js @@ -104,7 +104,10 @@ test(".ajax() - 304", function() { jQuery.ajax({ url: url("data/notmodified.php"), success: function(){ ok(true, "304 ok"); }, - error: function(){ ok(false, "304 not 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(); } }); }); @@ -134,7 +137,7 @@ test(".load()) - 404 error callbacks", function() { }); test("jQuery.ajax() - abort", function() { - expect( 6 ); + expect( 8 ); stop(); jQuery('#foo').ajaxStart(function(){ @@ -154,7 +157,10 @@ test("jQuery.ajax() - abort", function() { complete: function(){ ok(true, "complete"); } }); + equals( xhr.readyState, 1, "XHR readyState indicates successful dispatch" ); + xhr.abort(); + equals( xhr.readyState, 0, "XHR readyState indicates successful abortion" ); }); test("Ajax events with context", function() { @@ -286,6 +292,32 @@ test("jQuery.ajax - xml: non-namespace elements inside namespaced elements", fun }); }); +test("jQuery.ajax - HEAD requests", function() { + expect(2); + + stop(); + jQuery.ajax({ + url: url("data/name.html"), + type: "HEAD", + success: function(data, status, xhr){ + var h = xhr.getAllResponseHeaders(); + ok( /Date/i.test(h), 'No Date in HEAD response' ); + + jQuery.ajax({ + url: url("data/name.html"), + data: { whip_it: "good" }, + type: "HEAD", + success: function(data, status, xhr){ + var h = xhr.getAllResponseHeaders(); + ok( /Date/i.test(h), 'No Date in HEAD response with data' ); + start(); + } + }); + } + }); + +}); + test("jQuery.ajax - beforeSend", function() { expect(1); stop(); @@ -678,10 +710,10 @@ test("jQuery.getScript(String, Function) - no callback", function() { }); test("jQuery.ajax() - JSONP, Local", function() { - expect(8); + expect(9); var count = 0; - function plus(){ if ( ++count == 8 ) start(); } + function plus(){ if ( ++count == 9 ) start(); } stop(); @@ -796,6 +828,17 @@ test("jQuery.ajax() - JSONP, Local", function() { plus(); } }); + + //#7578 + jQuery.ajax({ + url: "data/jsonp.php", + dataType: "jsonp", + beforeSend: function(){ + strictEqual( this.cache, false, "cache must be false on JSON request" ); + plus(); + return false; + } + }); }); test("JSONP - Custom JSONP Callback", function() { @@ -1249,13 +1292,20 @@ test("jQuery.ajax - If-Modified-Since support", function() { start(); }, error: function() { - equals(false, "error"); + // 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 + ok(jQuery.browser.opera, "error"); + ok(jQuery.browser.opera, "error"); start(); } }); }, error: function() { - equals(false, "error"); + // 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 + ok(jQuery.browser.opera, "error"); start(); } }); @@ -1288,20 +1338,27 @@ test("jQuery.ajax - Etag support", function() { start(); }, error: function() { - equals(false, "error"); + // 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 + ok(jQuery.browser.opera, "error"); + ok(jQuery.browser.opera, "error"); start(); } }); }, error: function() { - equals(false, "error"); + // 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 + ok(jQuery.browser.opera, "error"); start(); } }); }); test("jQuery.ajax - active counter", function() { - ok( jQuery.ajax.active == 0, "ajax active counter should be zero: " + jQuery.ajax.active ); + ok( jQuery.active == 0, "ajax active counter should be zero: " + jQuery.active ); });