Author: veithen
Date: Mon Sep 27 20:31:51 2010
New Revision: 1001900
URL: http://svn.apache.org/viewvc?rev=1001900&view=rev
Log:
More thoroughly test whether the XMLStreamReader methods throw
IllegalStateException as required by the StAX specs.
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetLocalNameIllegalStateExceptionTestCase.java
- copied, changed from r1001890,
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetLocalNameOnStartDocumentTestCase.java
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetNameIllegalStateExceptionTestCase.java
(with props)
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetNamespaceURIIllegalStateExceptionTestCase.java
(with props)
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetPrefixIllegalStateExceptionTestCase.java
(with props)
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/IllegalStateExceptionTestCase.java
(with props)
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/org/apache/axiom/util/stax/dialect/alleventtypes.xml
(with props)
Removed:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetLocalNameOnStartDocumentTestCase.java
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java?rev=1001900&r1=1001899&r2=1001900&view=diff
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java
(original)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java
Mon Sep 27 20:31:51 2010
@@ -23,6 +23,7 @@ import java.util.Properties;
import javax.xml.stream.FactoryConfigurationError;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamConstants;
import junit.framework.TestSuite;
@@ -52,8 +53,51 @@ public class DialectTest extends TestSui
addDialectTest(new
GetEncodingFromDetectionTestCase("UnicodeLittleUnmarked", "UTF-16LE"));
addDialectTest(new GetEncodingTestCase());
addDialectTest(new GetEncodingWithCharacterStreamTestCase());
- addDialectTest(new GetLocalNameOnStartDocumentTestCase());
+ addDialectTest(new
GetLocalNameIllegalStateExceptionTestCase(XMLStreamConstants.START_ELEMENT,
false));
+ addDialectTest(new
GetLocalNameIllegalStateExceptionTestCase(XMLStreamConstants.END_ELEMENT,
false));
+ addDialectTest(new
GetLocalNameIllegalStateExceptionTestCase(XMLStreamConstants.PROCESSING_INSTRUCTION,
true));
+ addDialectTest(new
GetLocalNameIllegalStateExceptionTestCase(XMLStreamConstants.CHARACTERS, true));
+ addDialectTest(new
GetLocalNameIllegalStateExceptionTestCase(XMLStreamConstants.COMMENT, true));
+ addDialectTest(new
GetLocalNameIllegalStateExceptionTestCase(XMLStreamConstants.SPACE, true));
+ addDialectTest(new
GetLocalNameIllegalStateExceptionTestCase(XMLStreamConstants.START_DOCUMENT,
true));
+ addDialectTest(new
GetLocalNameIllegalStateExceptionTestCase(XMLStreamConstants.END_DOCUMENT,
true));
+ addDialectTest(new
GetLocalNameIllegalStateExceptionTestCase(XMLStreamConstants.ENTITY_REFERENCE,
false));
+ addDialectTest(new
GetLocalNameIllegalStateExceptionTestCase(XMLStreamConstants.DTD, true));
+ addDialectTest(new
GetLocalNameIllegalStateExceptionTestCase(XMLStreamConstants.CDATA, true));
+ addDialectTest(new
GetNameIllegalStateExceptionTestCase(XMLStreamConstants.START_ELEMENT, false));
+ addDialectTest(new
GetNameIllegalStateExceptionTestCase(XMLStreamConstants.END_ELEMENT, false));
+ addDialectTest(new
GetNameIllegalStateExceptionTestCase(XMLStreamConstants.PROCESSING_INSTRUCTION,
true));
+ addDialectTest(new
GetNameIllegalStateExceptionTestCase(XMLStreamConstants.CHARACTERS, true));
+ addDialectTest(new
GetNameIllegalStateExceptionTestCase(XMLStreamConstants.COMMENT, true));
+ addDialectTest(new
GetNameIllegalStateExceptionTestCase(XMLStreamConstants.SPACE, true));
+ addDialectTest(new
GetNameIllegalStateExceptionTestCase(XMLStreamConstants.START_DOCUMENT, true));
+ addDialectTest(new
GetNameIllegalStateExceptionTestCase(XMLStreamConstants.END_DOCUMENT, true));
+ addDialectTest(new
GetNameIllegalStateExceptionTestCase(XMLStreamConstants.ENTITY_REFERENCE,
true));
+ addDialectTest(new
GetNameIllegalStateExceptionTestCase(XMLStreamConstants.DTD, true));
+ addDialectTest(new
GetNameIllegalStateExceptionTestCase(XMLStreamConstants.CDATA, true));
addDialectTest(new GetNamespaceContextImplicitNamespacesTestCase());
+ addDialectTest(new
GetNamespaceURIIllegalStateExceptionTestCase(XMLStreamConstants.START_ELEMENT,
false));
+ addDialectTest(new
GetNamespaceURIIllegalStateExceptionTestCase(XMLStreamConstants.END_ELEMENT,
false));
+ addDialectTest(new
GetNamespaceURIIllegalStateExceptionTestCase(XMLStreamConstants.PROCESSING_INSTRUCTION,
true));
+ addDialectTest(new
GetNamespaceURIIllegalStateExceptionTestCase(XMLStreamConstants.CHARACTERS,
true));
+ addDialectTest(new
GetNamespaceURIIllegalStateExceptionTestCase(XMLStreamConstants.COMMENT, true));
+ addDialectTest(new
GetNamespaceURIIllegalStateExceptionTestCase(XMLStreamConstants.SPACE, true));
+ addDialectTest(new
GetNamespaceURIIllegalStateExceptionTestCase(XMLStreamConstants.START_DOCUMENT,
true));
+ addDialectTest(new
GetNamespaceURIIllegalStateExceptionTestCase(XMLStreamConstants.END_DOCUMENT,
true));
+ addDialectTest(new
GetNamespaceURIIllegalStateExceptionTestCase(XMLStreamConstants.ENTITY_REFERENCE,
true));
+ addDialectTest(new
GetNamespaceURIIllegalStateExceptionTestCase(XMLStreamConstants.DTD, true));
+ addDialectTest(new
GetNamespaceURIIllegalStateExceptionTestCase(XMLStreamConstants.CDATA, true));
+ addDialectTest(new
GetPrefixIllegalStateExceptionTestCase(XMLStreamConstants.START_ELEMENT,
false));
+ addDialectTest(new
GetPrefixIllegalStateExceptionTestCase(XMLStreamConstants.END_ELEMENT, false));
+ addDialectTest(new
GetPrefixIllegalStateExceptionTestCase(XMLStreamConstants.PROCESSING_INSTRUCTION,
true));
+ addDialectTest(new
GetPrefixIllegalStateExceptionTestCase(XMLStreamConstants.CHARACTERS, true));
+ addDialectTest(new
GetPrefixIllegalStateExceptionTestCase(XMLStreamConstants.COMMENT, true));
+ addDialectTest(new
GetPrefixIllegalStateExceptionTestCase(XMLStreamConstants.SPACE, true));
+ addDialectTest(new
GetPrefixIllegalStateExceptionTestCase(XMLStreamConstants.START_DOCUMENT,
true));
+ addDialectTest(new
GetPrefixIllegalStateExceptionTestCase(XMLStreamConstants.END_DOCUMENT, true));
+ addDialectTest(new
GetPrefixIllegalStateExceptionTestCase(XMLStreamConstants.ENTITY_REFERENCE,
true));
+ addDialectTest(new
GetPrefixIllegalStateExceptionTestCase(XMLStreamConstants.DTD, true));
+ addDialectTest(new
GetPrefixIllegalStateExceptionTestCase(XMLStreamConstants.CDATA, true));
addDialectTest(new GetPrefixWithNoPrefixTestCase());
addDialectTest(new GetTextInPrologTestCase());
addDialectTest(new GetVersionTestCase());
Copied:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetLocalNameIllegalStateExceptionTestCase.java
(from r1001890,
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetLocalNameOnStartDocumentTestCase.java)
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetLocalNameIllegalStateExceptionTestCase.java?p2=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetLocalNameIllegalStateExceptionTestCase.java&p1=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetLocalNameOnStartDocumentTestCase.java&r1=1001890&r2=1001900&rev=1001900&view=diff
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetLocalNameOnStartDocumentTestCase.java
(original)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetLocalNameIllegalStateExceptionTestCase.java
Mon Sep 27 20:31:51 2010
@@ -18,20 +18,15 @@
*/
package org.apache.axiom.util.stax.dialect;
-import java.io.StringReader;
-
-import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
-public class GetLocalNameOnStartDocumentTestCase extends DialectTestCase {
- protected void runTest() throws Throwable {
- XMLInputFactory factory = newNormalizedXMLInputFactory();
- XMLStreamReader reader = factory.createXMLStreamReader(new
StringReader("<root/>"));
- try {
- reader.getLocalName();
- fail("Expected IllegalStateException");
- } catch (IllegalStateException ex) {
- // Expected
- }
+public class GetLocalNameIllegalStateExceptionTestCase extends
IllegalStateExceptionTestCase {
+ public GetLocalNameIllegalStateExceptionTestCase(int event, boolean
expectException) {
+ super(event, expectException);
+ }
+
+ protected void invoke(XMLStreamReader reader) throws XMLStreamException {
+ reader.getLocalName();
}
}
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetNameIllegalStateExceptionTestCase.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetNameIllegalStateExceptionTestCase.java?rev=1001900&view=auto
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetNameIllegalStateExceptionTestCase.java
(added)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetNameIllegalStateExceptionTestCase.java
Mon Sep 27 20:31:51 2010
@@ -0,0 +1,32 @@
+/*
+ * 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.util.stax.dialect;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+public class GetNameIllegalStateExceptionTestCase extends
IllegalStateExceptionTestCase {
+ public GetNameIllegalStateExceptionTestCase(int event, boolean
expectException) {
+ super(event, expectException);
+ }
+
+ protected void invoke(XMLStreamReader reader) throws XMLStreamException {
+ reader.getName();
+ }
+}
Propchange:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetNameIllegalStateExceptionTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetNamespaceURIIllegalStateExceptionTestCase.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetNamespaceURIIllegalStateExceptionTestCase.java?rev=1001900&view=auto
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetNamespaceURIIllegalStateExceptionTestCase.java
(added)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetNamespaceURIIllegalStateExceptionTestCase.java
Mon Sep 27 20:31:51 2010
@@ -0,0 +1,32 @@
+/*
+ * 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.util.stax.dialect;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+public class GetNamespaceURIIllegalStateExceptionTestCase extends
IllegalStateExceptionTestCase {
+ public GetNamespaceURIIllegalStateExceptionTestCase(int event, boolean
expectException) {
+ super(event, expectException);
+ }
+
+ protected void invoke(XMLStreamReader reader) throws XMLStreamException {
+ reader.getNamespaceURI();
+ }
+}
Propchange:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetNamespaceURIIllegalStateExceptionTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetPrefixIllegalStateExceptionTestCase.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetPrefixIllegalStateExceptionTestCase.java?rev=1001900&view=auto
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetPrefixIllegalStateExceptionTestCase.java
(added)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetPrefixIllegalStateExceptionTestCase.java
Mon Sep 27 20:31:51 2010
@@ -0,0 +1,32 @@
+/*
+ * 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.util.stax.dialect;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+public class GetPrefixIllegalStateExceptionTestCase extends
IllegalStateExceptionTestCase {
+ public GetPrefixIllegalStateExceptionTestCase(int event, boolean
expectException) {
+ super(event, expectException);
+ }
+
+ protected void invoke(XMLStreamReader reader) throws XMLStreamException {
+ reader.getPrefix();
+ }
+}
Propchange:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/GetPrefixIllegalStateExceptionTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/IllegalStateExceptionTestCase.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/IllegalStateExceptionTestCase.java?rev=1001900&view=auto
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/IllegalStateExceptionTestCase.java
(added)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/IllegalStateExceptionTestCase.java
Mon Sep 27 20:31:51 2010
@@ -0,0 +1,72 @@
+/*
+ * 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.util.stax.dialect;
+
+import java.io.InputStream;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.axiom.util.stax.XMLEventUtils;
+
+public abstract class IllegalStateExceptionTestCase extends DialectTestCase {
+ private final int event;
+ private final boolean expectException;
+
+ public IllegalStateExceptionTestCase(int event, boolean expectException) {
+ this.event = event;
+ this.expectException = expectException;
+ setName(getClass().getName() + " [" +
XMLEventUtils.getEventTypeString(event) + "]");
+ }
+
+ protected final void runTest() throws Throwable {
+ XMLInputFactory factory =
getDialect().enableCDataReporting(newNormalizedXMLInputFactory());
+ factory.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES,
Boolean.FALSE);
+ InputStream in =
IllegalStateExceptionTestCase.class.getResourceAsStream("alleventtypes.xml");
+ try {
+ XMLStreamReader reader = factory.createXMLStreamReader(in);
+ while (true) {
+ if (reader.getEventType() == event) {
+ break;
+ } else if (reader.hasNext()) {
+ reader.next();
+ } else {
+ fail("Internal error: didn't encounter event " + event);
+ }
+ }
+ boolean exception;
+ try {
+ invoke(reader);
+ exception = false;
+ } catch (IllegalStateException ex) {
+ exception = true;
+ }
+ if (exception && !expectException) {
+ fail("Didn't expect IllegalStateException");
+ } else if (!exception && expectException) {
+ fail("Expected IllegalStateException");
+ }
+ } finally {
+ in.close();
+ }
+ }
+
+ protected abstract void invoke(XMLStreamReader reader) throws
XMLStreamException;
+}
Propchange:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/IllegalStateExceptionTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/org/apache/axiom/util/stax/dialect/alleventtypes.xml
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/org/apache/axiom/util/stax/dialect/alleventtypes.xml?rev=1001900&view=auto
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/org/apache/axiom/util/stax/dialect/alleventtypes.xml
(added)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/org/apache/axiom/util/stax/dialect/alleventtypes.xml
Mon Sep 27 20:31:51 2010
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding ="UTF-8"?>
+<!DOCTYPE root [
+ <!ELEMENT root (child*)>
+ <!ELEMENT child (#PCDATA)>
+ <!ENTITY test "test">
+]>
+<root>
+ <child>X<!--X--><?x?>&test;<![CDATA[X]]></child>
+</root>
\ No newline at end of file
Propchange:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/org/apache/axiom/util/stax/dialect/alleventtypes.xml
------------------------------------------------------------------------------
svn:eol-style = native