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