Author: veithen Date: Wed Apr 11 18:31:04 2012 New Revision: 1324907 URL: http://svn.apache.org/viewvc?rev=1324907&view=rev Log: Increased the test coverage of a piece of code that requires modifications for AXIOM-412.
Added: webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestSetAttributeNodeNSReplace.java (with props) Modified: webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/DOMTestSuiteBuilder.java Modified: webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/DOMTestSuiteBuilder.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/DOMTestSuiteBuilder.java?rev=1324907&r1=1324906&r2=1324907&view=diff ============================================================================== --- webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/DOMTestSuiteBuilder.java (original) +++ webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/DOMTestSuiteBuilder.java Wed Apr 11 18:31:04 2012 @@ -75,6 +75,7 @@ public class DOMTestSuiteBuilder extends addTest(new org.apache.axiom.ts.dom.element.TestRemoveSingleChild(dbf)); addTest(new org.apache.axiom.ts.dom.element.TestReplaceChild(dbf)); addTest(new org.apache.axiom.ts.dom.element.TestReplaceChildWrongDocument(dbf)); + addTest(new org.apache.axiom.ts.dom.element.TestSetAttributeNodeNSReplace(dbf)); addTest(new org.apache.axiom.ts.dom.element.TestSetAttributeNodeNSWrongDocument(dbf)); addTest(new org.apache.axiom.ts.dom.element.TestSetAttributeNodeWrongDocument(dbf)); addTest(new org.apache.axiom.ts.dom.element.TestSetPrefixNotNullWithNamespace(dbf)); Added: webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestSetAttributeNodeNSReplace.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestSetAttributeNodeNSReplace.java?rev=1324907&view=auto ============================================================================== --- webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestSetAttributeNodeNSReplace.java (added) +++ webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestSetAttributeNodeNSReplace.java Wed Apr 11 18:31:04 2012 @@ -0,0 +1,58 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.axiom.ts.dom.element; + +import javax.xml.parsers.DocumentBuilderFactory; + +import org.apache.axiom.ts.dom.DOMTestCase; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +/** + * Tests the behavior of {@link Element#setAttributeNodeNS(Attr)} when the element already has an + * attribute with the same local name and namespace URI, i.e. if the call will replace an existing + * attribute. + */ +public class TestSetAttributeNodeNSReplace extends DOMTestCase { + public TestSetAttributeNodeNSReplace(DocumentBuilderFactory dbf) { + super(dbf); + } + + protected void runTest() throws Throwable { + Document document = dbf.newDocumentBuilder().newDocument(); + + // Initialize element with original attribute + Element element = document.createElementNS("urn:ns1", "test"); + Attr attr1 = document.createAttributeNS("urn:ns2", "p:attr"); + attr1.setValue("value1"); + element.setAttributeNodeNS(attr1); + + // Replace attribute + Attr attr2 = document.createAttributeNS("urn:ns2", "q:attr"); + attr2.setValue("value2"); + element.setAttributeNodeNS(attr2); + + assertNull(attr1.getOwnerElement()); + assertSame(document, attr1.getOwnerDocument()); + assertSame(element, attr2.getOwnerElement()); + assertSame(document, attr2.getOwnerDocument()); + assertEquals("value2", element.getAttributeNS("urn:ns2", "attr")); + } +} Propchange: webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestSetAttributeNodeNSReplace.java ------------------------------------------------------------------------------ svn:eol-style = native