From: jeresig <jeresig@gmail.com>
Date: Tue, 2 Feb 2010 02:33:58 +0000 (-0500)
Subject: Make sure the resulting className from removeClass is nicely trimmed. Fixes #5988.
X-Git-Url: http://git.asbjorn.biz/?a=commitdiff_plain;h=e76ba32cebc26108e15b2e0e03c5152624c1bad9;p=jquery.git

Make sure the resulting className from removeClass is nicely trimmed. Fixes #5988.
---

diff --git a/src/attributes.js b/src/attributes.js
index 82a4de1..b22acba 100644
--- a/src/attributes.js
+++ b/src/attributes.js
@@ -74,7 +74,7 @@ jQuery.fn.extend({
 						for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
 							className = className.replace(" " + classNames[c] + " ", " ");
 						}
-						elem.className = className.substring(1, className.length - 1);
+						elem.className = jQuery.trim( className );
 
 					} else {
 						elem.className = "";
diff --git a/test/unit/attributes.js b/test/unit/attributes.js
index fd5b203..70ae50d 100644
--- a/test/unit/attributes.js
+++ b/test/unit/attributes.js
@@ -478,7 +478,7 @@ test("addClass(Function) with incoming value", function() {
 });
 
 var testRemoveClass = function(valueObj) {
-	expect(5);
+	expect(7);
 
 	var $divs = jQuery('div');
 
@@ -508,6 +508,17 @@ var testRemoveClass = function(valueObj) {
 	var j = jQuery("#nonnodes").contents();
 	j.removeClass( valueObj("asdf") );
 	ok( !j.hasClass("asdf"), "Check node,textnode,comment for removeClass" );
+
+	var div = document.createElement("div");
+	div.className = " test foo ";
+
+	jQuery(div).removeClass( valueObj("foo") );
+	equals( div.className, "test", "Make sure remaining className is trimmed." );
+
+	div.className = " test ";
+
+	jQuery(div).removeClass( valueObj("test") );
+	equals( div.className, "", "Make sure there is nothing left after everything is removed." );
 };
 
 test("removeClass(String) - simple", function() {