});
});
+test( "jQuery.ajax - multiple method signatures introduced in 1.5 ( #8107)", function() {
+
+ expect( 4 );
+
+ stop();
+
+ jQuery.when(
+ jQuery.ajax().success(function() { ok( true, 'With no arguments' ); }),
+ jQuery.ajax('data/name.html').success(function() { ok( true, 'With only string URL argument' ); }),
+ jQuery.ajax('data/name.html', {} ).success(function() { ok( true, 'With string URL param and map' ); }),
+ jQuery.ajax({ url: 'data/name.html'} ).success(function() { ok( true, 'With only map' ); })
+ ).then( start, start );
+
+});
+
test("jQuery.ajax() - textStatus and errorThrown values", function() {
var nb = 2;
jQuery.ajax({
url: url("data/errorWithText.php"),
error: function(xhr) {
- strictEqual( xhr.responseText , "plain text message" , "Test jXHR.responseText is filled for HTTP errors" );
+ strictEqual( xhr.responseText , "plain text message" , "Test jqXHR.responseText is filled for HTTP errors" );
},
complete: function() {
start();
});
-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();
});
test("jQuery.param()", function() {
- expect(23);
+ expect(25);
equals( !jQuery.ajaxSettings.traditional, true, "traditional flag, falsy by default" );
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" );
+
+ 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"};
test("jQuery.getScript(String, Function) - with callback", function() {
expect(3);
stop();
- jQuery.getScript(url("data/test.js"), function( data, _, jXHR ) {
+ jQuery.getScript(url("data/test.js"), function( data, _, jqXHR ) {
equals( foobar, "bar", 'Check if script was evaluated' );
- strictEqual( data, jXHR.responseText, "Same-domain script requests returns the source of the script (#8082)" );
+ strictEqual( data, jqXHR.responseText, "Same-domain script requests returns the source of the script (#8082)" );
setTimeout(start, 100);
});
});
dataType: "jsonp",
crossDomain: crossDomain,
jsonpCallback: "functionToCleanUp",
- beforeSend: function( jXHR ) {
- xhr = jXHR;
+ beforeSend: function( jqXHR ) {
+ xhr = jqXHR;
return false;
}
});
});
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() {
});
});
-test("jQuery.ajax - If-Modified-Since support", function() {
- expect( 3 );
+var ifModifiedNow = new Date();
- stop();
+jQuery.each( { " (cache)": true, " (no cache)": false }, function( label, cache ) {
- var url = "data/if_modified_since.php?ts=" + new Date();
+ test("jQuery.ajax - If-Modified-Since support" + label, function() {
+ expect( 3 );
- jQuery.ajax({
- url: url,
- ifModified: true,
- success: function(data, status) {
- equals(status, "success");
+ stop();
- jQuery.ajax({
- url: url,
- ifModified: true,
- success: function(data, status) {
- if ( data === "FAIL" ) {
- ok(true, "Opera is incapable of doing .setRequestHeader('If-Modified-Since').");
- ok(true, "Opera is incapable of doing .setRequestHeader('If-Modified-Since').");
- } else {
- equals(status, "notmodified");
- ok(data == null, "response body should be empty");
+ var url = "data/if_modified_since.php?ts=" + ifModifiedNow++;
+
+ jQuery.ajax({
+ url: url,
+ ifModified: true,
+ cache: cache,
+ success: function(data, status) {
+ equals(status, "success" );
+
+ jQuery.ajax({
+ url: url,
+ ifModified: true,
+ cache: cache,
+ success: function(data, status) {
+ if ( data === "FAIL" ) {
+ ok(jQuery.browser.opera, "Opera is incapable of doing .setRequestHeader('If-Modified-Since').");
+ ok(jQuery.browser.opera, "Opera is incapable of doing .setRequestHeader('If-Modified-Since').");
+ } else {
+ equals(status, "notmodified");
+ ok(data == null, "response body should be empty");
+ }
+ start();
+ },
+ error: function() {
+ // 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();
}
- start();
- },
- error: function() {
- // 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();
- }
+ });
+ },
+ 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 - Etag support", function() {
- expect( 3 );
+ test("jQuery.ajax - Etag support" + label, function() {
+ expect( 3 );
- stop();
+ stop();
- var url = "data/etag.php?ts=" + new Date();
+ var url = "data/etag.php?ts=" + ifModifiedNow++;
- jQuery.ajax({
- url: url,
- ifModified: true,
- success: function(data, status) {
- equals(status, "success");
+ jQuery.ajax({
+ url: url,
+ ifModified: true,
+ cache: cache,
+ success: function(data, status) {
+ equals(status, "success" );
- jQuery.ajax({
- url: url,
- ifModified: true,
- success: function(data, status) {
- if ( data === "FAIL" ) {
- ok(true, "Opera is incapable of doing .setRequestHeader('If-None-Match').");
- ok(true, "Opera is incapable of doing .setRequestHeader('If-None-Match').");
- } else {
- equals(status, "notmodified");
- ok(data == null, "response body should be empty");
+ jQuery.ajax({
+ url: url,
+ ifModified: true,
+ cache: cache,
+ success: function(data, status) {
+ if ( data === "FAIL" ) {
+ ok(jQuery.browser.opera, "Opera is incapable of doing .setRequestHeader('If-None-Match').");
+ ok(jQuery.browser.opera, "Opera is incapable of doing .setRequestHeader('If-None-Match').");
+ } else {
+ equals(status, "notmodified");
+ ok(data == null, "response body should be empty");
+ }
+ start();
+ },
+ error: function() {
+ // 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();
}
- start();
- },
- error: function() {
- // 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() {
- // 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();
- }
+ });
+ },
+ error: function() {
+ // 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();
+ }
+ });
});
});
}).statusCode( createStatusCodes( "immediately with method" , isSuccess ) );
jQuery.ajax( url( uri ) , {
- complete: function(jXHR) {
- jXHR.statusCode( createStatusCodes( "on complete" , isSuccess ) );
+ complete: function(jqXHR) {
+ jqXHR.statusCode( createStatusCodes( "on complete" , isSuccess ) );
countComplete();
}
});
jQuery.ajax( url( uri ) , {
- complete: function(jXHR) {
+ complete: function(jqXHR) {
setTimeout( function() {
- jXHR.statusCode( createStatusCodes( "very late binding" , isSuccess ) );
+ jqXHR.statusCode( createStatusCodes( "very late binding" , isSuccess ) );
countComplete();
} , 100 );
}
jQuery.ajax( url( uri ) , {
statusCode: createStatusCodes( "all (options)" , isSuccess ),
- complete: function(jXHR) {
- jXHR.statusCode( createStatusCodes( "all (on complete)" , isSuccess ) );
+ complete: function(jqXHR) {
+ jqXHR.statusCode( createStatusCodes( "all (on complete)" , isSuccess ) );
setTimeout( function() {
- jXHR.statusCode( createStatusCodes( "all (very late binding)" , isSuccess ) );
+ jqXHR.statusCode( createStatusCodes( "all (very late binding)" , isSuccess ) );
countComplete();
} , 100 );
}
var testString = "";
jQuery.ajax( url( uri ), {
- success: function( a , b , jXHR ) {
+ success: function( a , b , jqXHR ) {
ok( isSuccess , "success" );
var statusCode = {};
- statusCode[ jXHR.status ] = function() {
+ statusCode[ jqXHR.status ] = function() {
testString += "B";
};
- jXHR.statusCode( statusCode );
+ jqXHR.statusCode( statusCode );
testString += "A";
},
- error: function( jXHR ) {
+ error: function( jqXHR ) {
ok( ! isSuccess , "error" );
var statusCode = {};
- statusCode[ jXHR.status ] = function() {
+ statusCode[ jqXHR.status ] = function() {
testString += "B";
};
- jXHR.statusCode( statusCode );
+ jqXHR.statusCode( statusCode );
testString += "A";
},
complete: function() {
});
+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 );
});