aboutsummaryrefslogtreecommitdiffstats
path: root/test/unit
diff options
context:
space:
mode:
authorDave Methvin <dave.methvin@gmail.com>2012-07-11 22:46:34 -0400
committerDave Methvin <dave.methvin@gmail.com>2012-07-11 23:09:07 -0400
commitf4e5c1729a2efe6086ac2407f82e928b26991f83 (patch)
treedf610b4ddf8d3b3f3aa1c7eb606b3f3ba903a215 /test/unit
parent0bde43aeee5bed5fdfb5bffaecb8c1f43c8fdf19 (diff)
downloadjquery-f4e5c1729a2efe6086ac2407f82e928b26991f83.tar.gz
jquery-f4e5c1729a2efe6086ac2407f82e928b26991f83.zip
Fix #11547. toLowerCase not work good on XML attributes.
This was fixed to some extent in gh-724 but there were insufficient test cases. Removing the lowercase completely allows IE 6/7 to work properly since there you need an exact case match for attributes, even in HTML docs. More discussion and test cases in the comments on gh-724.
Diffstat (limited to 'test/unit')
-rw-r--r--test/unit/attributes.js40
1 files changed, 26 insertions, 14 deletions
diff --git a/test/unit/attributes.js b/test/unit/attributes.js
index d5477b627..07608b4bd 100644
--- a/test/unit/attributes.js
+++ b/test/unit/attributes.js
@@ -496,7 +496,7 @@ test("attr('tabindex', value)", function() {
});
test("removeAttr(String)", function() {
- expect( 10 );
+ expect( 12 );
var $first;
equal( jQuery("#mark").removeAttr( "class" ).attr("class"), undefined, "remove class" );
@@ -520,6 +520,31 @@ test("removeAttr(String)", function() {
} catch(e) {
ok( false, "Removing contenteditable threw an error (#10429)" );
}
+
+ $first = jQuery("<div Case='mixed'></div>");
+ equal( $first.attr("Case"), "mixed", "case of attribute doesn't matter" );
+ $first.removeAttr("Case");
+ // IE 6/7 return empty string here, not undefined
+ ok( !$first.attr("Case"), "mixed-case attribute was removed" );
+});
+
+test("removeAttr(String) in XML", function() {
+ expect( 7 );
+ var xml = createDashboardXML(),
+ iwt = jQuery( "infowindowtab", xml );
+
+ equal( iwt.attr("normal"), "ab", "Check initial value" );
+ iwt.removeAttr("Normal");
+ equal( iwt.attr("normal"), "ab", "Should still be there" );
+ iwt.removeAttr("normal");
+ equal( iwt.attr("normal"), undefined, "Removed" );
+
+ equal( iwt.attr("mixedCase"), "yes", "Check initial value" );
+ equal( iwt.attr("mixedcase"), undefined, "toLowerCase not work good" );
+ iwt.removeAttr("mixedcase");
+ equal( iwt.attr("mixedCase"), "yes", "Should still be there" );
+ iwt.removeAttr("mixedCase");
+ equal( iwt.attr("mixedCase"), undefined, "Removed" );
});
test("removeAttr(Multi String, variable space width)", function() {
@@ -1239,16 +1264,3 @@ test("coords returns correct values in IE6/IE7, see #10828", function() {
area = map.html("<area shape='rect' href='#' alt='a' /></map>").find("area");
equal( area.attr("coords"), undefined, "did not retrieve coords correctly");
});
-
-test("Handle cased attributes on XML DOM correctly in removeAttr()", function() {
- expect(1);
-
- var xmlStr = "<root><item fooBar='123' /></root>",
- $xmlDoc = jQuery( jQuery.parseXML( xmlStr ) ),
- $item = $xmlDoc.find( "item" ),
- el = $item[0];
-
- $item.removeAttr( "fooBar" );
-
- equal( el.attributes.length, 0, "attribute with upper case did not get removed" );
-});