Fixes abort in prefilter. No global event will be fired in that case even if the...
[jquery.git] / test / unit / ajax.js
index 3041834..57e6512 100644 (file)
@@ -930,7 +930,7 @@ test("serialize()", function() {
 });
 
 test("jQuery.param()", function() {
-       expect(23);
+       expect(25);
 
        equals( !jQuery.ajaxSettings.traditional, true, "traditional flag, falsy by default" );
 
@@ -965,6 +965,11 @@ 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" );
+
+       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"};
@@ -2172,6 +2177,25 @@ test("jQuery.ajax - transitive conversions", 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 );
 });