Makes sure all converters keys are lowercased before any conversion is taking place...
authorjaubourg <j@ubourg.net>
Mon, 31 Jan 2011 16:39:54 +0000 (17:39 +0100)
committerjaubourg <j@ubourg.net>
Mon, 31 Jan 2011 16:40:27 +0000 (17:40 +0100)
src/ajax.js
test/unit/ajax.js

index 11eacee..39abe90 100644 (file)
@@ -842,8 +842,9 @@ function ajaxConvert( s, response ) {
        }
 
        var dataTypes = s.dataTypes,
-               converters = s.converters,
+               converters = {},
                i,
+               key,
                length = dataTypes.length,
                tmp,
                // Current and previous dataTypes
@@ -860,6 +861,16 @@ function ajaxConvert( s, response ) {
        // For each dataType in the chain
        for( i = 1; i < length; i++ ) {
 
+               // Create converters map
+               // with lowercased keys
+               if ( i === 1 ) {
+                       for( key in s.converters ) {
+                               if( typeof key === "string" ) {
+                                       converters[ key.toLowerCase() ] = s.converters[ key ];
+                               }
+                       }
+               }
+
                // Get the dataTypes
                prev = current;
                current = dataTypes[ i ];
index 716ed9c..9d088f3 100644 (file)
@@ -2077,12 +2077,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 +2092,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 (*)" );