Author: veithen
Date: Fri Apr 6 21:33:09 2012
New Revision: 1310598
URL: http://svn.apache.org/viewvc?rev=1310598&view=rev
Log:
Increased the test coverage in the parts of the code that are responsible for
checking the owner document.
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestReplaceChildWrongDocument.java
(with props)
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestSetAttributeNodeNSWrongDocument.java
(with props)
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestSetAttributeNodeWrongDocument.java
(with props)
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/attributes/
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/attributes/TestSetNamedItemNSWrongDocument.java
(with props)
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/attributes/TestSetNamedItemWrongDocument.java
(with props)
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/DOMTestSuiteBuilder.java
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.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=1310598&r1=1310597&r2=1310598&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
Fri Apr 6 21:33:09 2012
@@ -74,10 +74,15 @@ public class DOMTestSuiteBuilder extends
addTest(new org.apache.axiom.ts.dom.element.TestRemoveLastChild(dbf));
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.TestSetAttributeNodeNSWrongDocument(dbf));
+ addTest(new
org.apache.axiom.ts.dom.element.TestSetAttributeNodeWrongDocument(dbf));
addTest(new
org.apache.axiom.ts.dom.element.TestSetPrefixNotNullWithNamespace(dbf));
addTest(new
org.apache.axiom.ts.dom.element.TestSetPrefixNotNullWithoutNamespace(dbf));
addTest(new org.apache.axiom.ts.dom.element.TestSetPrefixNull(dbf));
addTest(new org.apache.axiom.ts.dom.element.TestSetTextContent(dbf));
+ addTest(new
org.apache.axiom.ts.dom.element.attributes.TestSetNamedItemNSWrongDocument(dbf));
+ addTest(new
org.apache.axiom.ts.dom.element.attributes.TestSetNamedItemWrongDocument(dbf));
addTest(new org.apache.axiom.ts.dom.text.TestAppendData(dbf));
addTest(new org.apache.axiom.ts.dom.text.TestGetWholeText(dbf));
addTest(new
org.apache.axiom.ts.dom.text.TestGetWholeTextWithCDATASection(dbf));
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestReplaceChildWrongDocument.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/TestReplaceChildWrongDocument.java?rev=1310598&view=auto
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestReplaceChildWrongDocument.java
(added)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestReplaceChildWrongDocument.java
Fri Apr 6 21:33:09 2012
@@ -0,0 +1,53 @@
+/*
+ * 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.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.apache.axiom.ts.dom.DOMTestCase;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class TestReplaceChildWrongDocument extends DOMTestCase {
+ public TestReplaceChildWrongDocument(DocumentBuilderFactory dbf) {
+ super(dbf);
+ }
+
+ protected void runTest() throws Throwable {
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document document1 = db.newDocument();
+ Document document2 = db.newDocument();
+ Element parent = document1.createElementNS(null, "parent");
+ Element child1 = document1.createElementNS(null, "child1");
+ Element child2 = document1.createElementNS(null, "child2");
+ Element child3 = document1.createElementNS(null, "child3");
+ parent.appendChild(child1);
+ parent.appendChild(child2);
+ parent.appendChild(child3);
+ Element replacementChild = document2.createElementNS(null, "newchild");
+ try {
+ parent.replaceChild(replacementChild, child2);
+ fail("Expected DOMException");
+ } catch (DOMException ex) {
+ assertEquals(DOMException.WRONG_DOCUMENT_ERR, ex.code);
+ }
+ }
+}
Propchange:
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestReplaceChildWrongDocument.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestSetAttributeNodeNSWrongDocument.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/TestSetAttributeNodeNSWrongDocument.java?rev=1310598&view=auto
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestSetAttributeNodeNSWrongDocument.java
(added)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestSetAttributeNodeNSWrongDocument.java
Fri Apr 6 21:33:09 2012
@@ -0,0 +1,48 @@
+/*
+ * 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.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.apache.axiom.ts.dom.DOMTestCase;
+import org.w3c.dom.Attr;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class TestSetAttributeNodeNSWrongDocument extends DOMTestCase {
+ public TestSetAttributeNodeNSWrongDocument(DocumentBuilderFactory dbf) {
+ super(dbf);
+ }
+
+ protected void runTest() throws Throwable {
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document document1 = db.newDocument();
+ Document document2 = db.newDocument();
+ Element element = document1.createElementNS(null, "test");
+ Attr attr = document2.createAttributeNS(null, "test");
+ try {
+ element.setAttributeNodeNS(attr);
+ fail("Expected DOMException");
+ } catch (DOMException ex) {
+ assertEquals(DOMException.WRONG_DOCUMENT_ERR, ex.code);
+ }
+ }
+}
Propchange:
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestSetAttributeNodeNSWrongDocument.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestSetAttributeNodeWrongDocument.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/TestSetAttributeNodeWrongDocument.java?rev=1310598&view=auto
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestSetAttributeNodeWrongDocument.java
(added)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestSetAttributeNodeWrongDocument.java
Fri Apr 6 21:33:09 2012
@@ -0,0 +1,48 @@
+/*
+ * 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.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.apache.axiom.ts.dom.DOMTestCase;
+import org.w3c.dom.Attr;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class TestSetAttributeNodeWrongDocument extends DOMTestCase {
+ public TestSetAttributeNodeWrongDocument(DocumentBuilderFactory dbf) {
+ super(dbf);
+ }
+
+ protected void runTest() throws Throwable {
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document document1 = db.newDocument();
+ Document document2 = db.newDocument();
+ Element element = document1.createElementNS(null, "test");
+ Attr attr = document2.createAttributeNS(null, "test");
+ try {
+ element.setAttributeNode(attr);
+ fail("Expected DOMException");
+ } catch (DOMException ex) {
+ assertEquals(DOMException.WRONG_DOCUMENT_ERR, ex.code);
+ }
+ }
+}
Propchange:
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/TestSetAttributeNodeWrongDocument.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/attributes/TestSetNamedItemNSWrongDocument.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/attributes/TestSetNamedItemNSWrongDocument.java?rev=1310598&view=auto
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/attributes/TestSetNamedItemNSWrongDocument.java
(added)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/attributes/TestSetNamedItemNSWrongDocument.java
Fri Apr 6 21:33:09 2012
@@ -0,0 +1,48 @@
+/*
+ * 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.attributes;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.apache.axiom.ts.dom.DOMTestCase;
+import org.w3c.dom.Attr;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class TestSetNamedItemNSWrongDocument extends DOMTestCase {
+ public TestSetNamedItemNSWrongDocument(DocumentBuilderFactory dbf) {
+ super(dbf);
+ }
+
+ protected void runTest() throws Throwable {
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document document1 = db.newDocument();
+ Document document2 = db.newDocument();
+ Element element = document1.createElementNS(null, "test");
+ Attr attr = document2.createAttributeNS(null, "test");
+ try {
+ element.getAttributes().setNamedItemNS(attr);
+ fail("Expected DOMException");
+ } catch (DOMException ex) {
+ assertEquals(DOMException.WRONG_DOCUMENT_ERR, ex.code);
+ }
+ }
+}
Propchange:
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/attributes/TestSetNamedItemNSWrongDocument.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/attributes/TestSetNamedItemWrongDocument.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/attributes/TestSetNamedItemWrongDocument.java?rev=1310598&view=auto
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/attributes/TestSetNamedItemWrongDocument.java
(added)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/attributes/TestSetNamedItemWrongDocument.java
Fri Apr 6 21:33:09 2012
@@ -0,0 +1,48 @@
+/*
+ * 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.attributes;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.apache.axiom.ts.dom.DOMTestCase;
+import org.w3c.dom.Attr;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class TestSetNamedItemWrongDocument extends DOMTestCase {
+ public TestSetNamedItemWrongDocument(DocumentBuilderFactory dbf) {
+ super(dbf);
+ }
+
+ protected void runTest() throws Throwable {
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document document1 = db.newDocument();
+ Document document2 = db.newDocument();
+ Element element = document1.createElementNS(null, "test");
+ Attr attr = document2.createAttributeNS(null, "test");
+ try {
+ element.getAttributes().setNamedItem(attr);
+ fail("Expected DOMException");
+ } catch (DOMException ex) {
+ assertEquals(DOMException.WRONG_DOCUMENT_ERR, ex.code);
+ }
+ }
+}
Propchange:
webservices/commons/trunk/modules/axiom/modules/axiom-dom-testsuite/src/main/java/org/apache/axiom/ts/dom/element/attributes/TestSetNamedItemWrongDocument.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java?rev=1310598&r1=1310597&r2=1310598&view=diff
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java
(original)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java
Fri Apr 6 21:33:09 2012
@@ -432,13 +432,11 @@ public class ElementImpl extends ParentN
public Attr setAttributeNode(Attr attr) throws DOMException {
AttrImpl attrImpl = (AttrImpl) attr;
- if (attrImpl.getOwnerElement() != null) {// check for ownership
- if (!this.getOwnerDocument().equals(attr.getOwnerDocument())) {
- String msg = DOMMessageFormatter.formatMessage(
- DOMMessageFormatter.DOM_DOMAIN,
DOMException.WRONG_DOCUMENT_ERR,
- null);
- throw new DOMException(DOMException.WRONG_DOCUMENT_ERR, msg);
- }
+ if (!this.getOwnerDocument().equals(attr.getOwnerDocument())) {
+ String msg = DOMMessageFormatter.formatMessage(
+ DOMMessageFormatter.DOM_DOMAIN,
DOMException.WRONG_DOCUMENT_ERR,
+ null);
+ throw new DOMException(DOMException.WRONG_DOCUMENT_ERR, msg);
}
// check whether the attr is in use
@@ -511,13 +509,11 @@ public class ElementImpl extends ParentN
} else {
AttrImpl attrImpl = (AttrImpl) attr;
- if (attrImpl.getOwnerElement() != null) {// check for ownership
- if (!this.getOwnerDocument().equals(attr.getOwnerDocument())) {
- String msg = DOMMessageFormatter.formatMessage(
- DOMMessageFormatter.DOM_DOMAIN,
- DOMException.WRONG_DOCUMENT_ERR, null);
- throw new DOMException(DOMException.WRONG_DOCUMENT_ERR,
msg);
- }
+ if (!this.getOwnerDocument().equals(attr.getOwnerDocument())) {
+ String msg = DOMMessageFormatter.formatMessage(
+ DOMMessageFormatter.DOM_DOMAIN,
+ DOMException.WRONG_DOCUMENT_ERR, null);
+ throw new DOMException(DOMException.WRONG_DOCUMENT_ERR, msg);
}
// check whether the attr is in use