Element#addClassName can create an additional new 'class' attribute -------------------------------------------------------------------
Key: TAP5-804 URL: https://issues.apache.org/jira/browse/TAP5-804 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.0.18 Reporter: Paul Field When writing a mixin that uses Element#addClassName, I noticed that I was getting two 'class' attributes in my element - rather than the one I was expecting. I've narrowed the problem down to a problem with how namespaces are used in Element and the following test case shows the problem. The "actual" output is: <e class="a b" class="a" xmlns="http://www.w3.org/1999/xhtml"></e> -------------------------------------- package test.com.db.fusion.iface.web.tapestry5.mixins; import junit.framework.TestCase; import org.apache.tapestry5.dom.DefaultMarkupModel; import org.apache.tapestry5.dom.Document; import org.apache.tapestry5.dom.Element; public class AddClassNameTest extends TestCase { public void test() { Document document = new Document(new DefaultMarkupModel()); Element element = document.newRootElement("http://www.w3.org/1999/xhtml", "e"); element.attribute("class", "a"); element.addClassName("b"); assertEquals("<e class=\"a b\" xmlns=\"http://www.w3.org/1999/xhtml\"></e>", element.toString()); } } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.