Script dataType now supports ecmascript mimetypes.
[jquery.git] / test / unit / ajax.js
index 716ed9c..33f2782 100644 (file)
@@ -1221,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();
 
@@ -1365,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",
@@ -1526,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() {
@@ -1647,7 +1685,7 @@ test("jQuery.post - data", 3, function() {
                        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({
@@ -2077,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" );
@@ -2092,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 (*)" );