Fixes #8297. Makes sure response headers with empty values are handled properly and...
[jquery.git] / test / unit / ajax.js
index 59159c3..335c2ac 100644 (file)
@@ -344,7 +344,7 @@ test(".ajax() - retry with jQuery.ajax( this )", function() {
 
 test(".ajax() - headers" , function() {
 
-       expect( 2 );
+       expect( 4 );
 
        stop();
 
@@ -376,8 +376,14 @@ test(".ajax() - headers" , function() {
                        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" );
+                       strictEqual( data , tmp , "Headers were sent" );
+                       strictEqual( xhr.getResponseHeader( "Sample-Header" ) , "Hello World" , "Sample header received" );
+                       if ( jQuery.browser.mozilla ) {
+                               ok( true, "Firefox doesn't support empty headers" );
+                       } else {
+                               strictEqual( xhr.getResponseHeader( "Empty-Header" ) , "" , "Empty header received" );
+                       }
+                       strictEqual( xhr.getResponseHeader( "Sample-Header2" ) , "Hello World 2" , "Second sample header received" );
                },
                error: function(){ ok(false, "error"); }
 
@@ -922,7 +928,7 @@ test("serialize()", function() {
 });
 
 test("jQuery.param()", function() {
-       expect(25);
+       expect(24);
 
        equals( !jQuery.ajaxSettings.traditional, true, "traditional flag, falsy by default" );
 
@@ -960,8 +966,6 @@ test("jQuery.param()", function() {
        // #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"};
@@ -1198,6 +1202,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();
@@ -2169,6 +2188,34 @@ 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 );