Data: camelCasing should not ignore case

Fixes gh-2070
This commit is contained in:
Timmy Willison 2015-05-04 10:49:21 -04:00
parent 0204c3089e
commit cf16f860b0
2 changed files with 11 additions and 1 deletions

View File

@ -26,7 +26,7 @@ var
// Matches dashed string for camelizing // Matches dashed string for camelizing
rmsPrefix = /^-ms-/, rmsPrefix = /^-ms-/,
rdashAlpha = /-([a-z])/gi, rdashAlpha = /-([a-z])/g,
// Used by jQuery.camelCase as callback to replace() // Used by jQuery.camelCase as callback to replace()
fcamelCase = function( all, letter ) { fcamelCase = function( all, letter ) {

View File

@ -592,6 +592,16 @@ test(".data always sets data with the camelCased key (gh-2257)", function() {
}); });
}); });
test( ".data should not strip more than one hyphen when camelCasing (gh-2070)", function() {
expect( 3 );
var div = jQuery( "<div data-nested-single='single' data-nested--double='double' data-nested---triple='triple'></div>" ).appendTo( "#qunit-fixture" ),
allData = div.data();
equal( allData.nestedSingle, "single", "Key is correctly camelCased" );
equal( allData[ "nested-Double" ], "double", "Key with double hyphens is correctly camelCased" );
equal( allData[ "nested--Triple" ], "triple", "Key with triple hyphens is correctly camelCased" );
});
test(".data supports interoperable hyphenated/camelCase get/set of properties with arbitrary non-null|NaN|undefined values", function() { test(".data supports interoperable hyphenated/camelCase get/set of properties with arbitrary non-null|NaN|undefined values", function() {
var div = jQuery("<div/>", { id: "hyphened" }).appendTo("#qunit-fixture"), var div = jQuery("<div/>", { id: "hyphened" }).appendTo("#qunit-fixture"),
datas = { datas = {