You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2016/10/09 16:47:04 UTC
svn commit: r1763991 - in /webservices/axiom/trunk/aspects/core-aspects: ./
src/main/java/org/apache/axiom/core/stream/dom/
src/test/java/org/apache/axiom/core/stream/dom/
Author: veithen
Date: Sun Oct 9 16:47:04 2016
New Revision: 1763991
URL: http://svn.apache.org/viewvc?rev=1763991&view=rev
Log:
Fix DOMReader so that it defers the startElement event for the document element (instead of pushing it immediately after the startDocument event).
Added:
webservices/axiom/trunk/aspects/core-aspects/src/test/java/org/apache/axiom/core/stream/dom/
webservices/axiom/trunk/aspects/core-aspects/src/test/java/org/apache/axiom/core/stream/dom/DOMReaderTest.java (with props)
Modified:
webservices/axiom/trunk/aspects/core-aspects/pom.xml
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/dom/DOMReader.java
Modified: webservices/axiom/trunk/aspects/core-aspects/pom.xml
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/pom.xml?rev=1763991&r1=1763990&r2=1763991&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/pom.xml (original)
+++ webservices/axiom/trunk/aspects/core-aspects/pom.xml Sun Oct 9 16:47:04 2016
@@ -64,5 +64,16 @@
<version>${project.version}</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxp-testsuite</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/dom/DOMReader.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/dom/DOMReader.java?rev=1763991&r1=1763990&r2=1763991&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/dom/DOMReader.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/dom/DOMReader.java Sun Oct 9 16:47:04 2016
@@ -129,7 +129,7 @@ final class DOMReader implements XmlRead
} else {
handler.startFragment();
}
- break;
+ break loop;
case Node.DOCUMENT_TYPE_NODE:
DocumentType docType = (DocumentType)currentNode;
handler.processDocumentTypeDeclaration(docType.getName(), docType.getPublicId(), docType.getSystemId(), docType.getInternalSubset());
Added: webservices/axiom/trunk/aspects/core-aspects/src/test/java/org/apache/axiom/core/stream/dom/DOMReaderTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/test/java/org/apache/axiom/core/stream/dom/DOMReaderTest.java?rev=1763991&view=auto
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/test/java/org/apache/axiom/core/stream/dom/DOMReaderTest.java (added)
+++ webservices/axiom/trunk/aspects/core-aspects/src/test/java/org/apache/axiom/core/stream/dom/DOMReaderTest.java Sun Oct 9 16:47:04 2016
@@ -0,0 +1,63 @@
+/*
+ * 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.core.stream.dom;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+
+import org.apache.axiom.core.stream.XmlHandler;
+import org.apache.axiom.ts.jaxp.DOMImplementation;
+import org.junit.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class DOMReaderTest {
+ @Test
+ public void testSimpleDocument() throws Exception {
+ Document document = DOMImplementation.XERCES.newDocument();
+ Element root = document.createElementNS("urn:test", "p:root");
+ document.appendChild(root);
+ root.setTextContent("test");
+ XmlHandler handler = mock(XmlHandler.class);
+ DOMReader reader = new DOMReader(handler, document, false);
+
+ assertThat(reader.proceed()).isFalse();
+ verify(handler).startDocument(null, "1.0", null, false);
+ verifyNoMoreInteractions(handler);
+
+ assertThat(reader.proceed()).isFalse();
+ verify(handler).startElement("urn:test", "root", "p");
+ verify(handler).attributesCompleted();
+ verifyNoMoreInteractions(handler);
+
+ assertThat(reader.proceed()).isFalse();
+ verify(handler).processCharacterData("test", false);
+ verifyNoMoreInteractions(handler);
+
+ assertThat(reader.proceed()).isFalse();
+ verify(handler).endElement();
+ verifyNoMoreInteractions(handler);
+
+ assertThat(reader.proceed()).isTrue();
+ verify(handler).completed();
+ verifyNoMoreInteractions(handler);
+ }
+}
Propchange: webservices/axiom/trunk/aspects/core-aspects/src/test/java/org/apache/axiom/core/stream/dom/DOMReaderTest.java
------------------------------------------------------------------------------
svn:eol-style = native