Author: veithen
Date: Sun Sep 5 09:41:25 2010
New Revision: 992747
URL: http://svn.apache.org/viewvc?rev=992747&view=rev
Log:
Added more StAX dialect tests and fixed an issue in the dialect for the BEA
reference implementation.
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-staxdialect-tests/src/test/java/org/apache/axiom/util/stax/dialect/GetEncodingFromDetectionTestCase.java
(with props)
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/BEAInputFactoryWrapper.java
webservices/commons/trunk/modules/axiom/modules/axiom-staxdialect-tests/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java
webservices/commons/trunk/modules/axiom/modules/axiom-staxdialect-tests/src/test/java/org/apache/axiom/util/stax/dialect/DialectTestCase.java
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/BEAInputFactoryWrapper.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/BEAInputFactoryWrapper.java?rev=992747&r1=992746&r2=992747&view=diff
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/BEAInputFactoryWrapper.java
(original)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/BEAInputFactoryWrapper.java
Sun Sep 5 09:41:25 2010
@@ -74,8 +74,8 @@ class BEAInputFactoryWrapper extends XML
} catch (IOException ex) {
throw new XMLStreamException("Unable to read start bytes", ex);
}
- int marker = (startBytes[0] & 0xFF) << 24 + (startBytes[1] & 0xFF) <<
16
- + (startBytes[2] & 0xFF) << 8 + (startBytes[3] & 0xFF);
+ int marker = ((startBytes[0] & 0xFF) << 24) + ((startBytes[1] & 0xFF)
<< 16)
+ + ((startBytes[2] & 0xFF) << 8) + (startBytes[3] & 0xFF);
String encoding;
switch (marker) {
case 0x0000FEFF:
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-staxdialect-tests/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-staxdialect-tests/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java?rev=992747&r1=992746&r2=992747&view=diff
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-staxdialect-tests/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java
(original)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-staxdialect-tests/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java
Sun Sep 5 09:41:25 2010
@@ -41,6 +41,11 @@ public class DialectTest extends TestSui
addDialectTest(new DisallowDoctypeDeclWithExternalSubsetTestCase());
addDialectTest(new DisallowDoctypeDeclWithInternalSubsetTestCase());
addDialectTest(new GetCharacterEncodingSchemeTestCase());
+ addDialectTest(new GetEncodingFromDetectionTestCase("UTF-8", "UTF-8"));
+ addDialectTest(new GetEncodingFromDetectionTestCase("UnicodeBig",
"UTF-16BE"));
+ addDialectTest(new GetEncodingFromDetectionTestCase("UnicodeLittle",
"UTF-16LE"));
+ addDialectTest(new
GetEncodingFromDetectionTestCase("UnicodeBigUnmarked", "UTF-16BE"));
+ addDialectTest(new
GetEncodingFromDetectionTestCase("UnicodeLittleUnmarked", "UTF-16LE"));
addDialectTest(new GetEncodingTestCase());
addDialectTest(new GetVersionTestCase());
addDialectTest(new IsCharactersOnCDATASectionTestCase());
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-staxdialect-tests/src/test/java/org/apache/axiom/util/stax/dialect/DialectTestCase.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-staxdialect-tests/src/test/java/org/apache/axiom/util/stax/dialect/DialectTestCase.java?rev=992747&r1=992746&r2=992747&view=diff
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-staxdialect-tests/src/test/java/org/apache/axiom/util/stax/dialect/DialectTestCase.java
(original)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-staxdialect-tests/src/test/java/org/apache/axiom/util/stax/dialect/DialectTestCase.java
Sun Sep 5 09:41:25 2010
@@ -28,7 +28,9 @@ public abstract class DialectTestCase ex
void init(DialectTest test) {
this.test = test;
- setName(getClass().getName());
+ if (getName() == null) {
+ setName(getClass().getName());
+ }
}
protected XMLInputFactory newNormalizedXMLInputFactory() {
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-staxdialect-tests/src/test/java/org/apache/axiom/util/stax/dialect/GetEncodingFromDetectionTestCase.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-staxdialect-tests/src/test/java/org/apache/axiom/util/stax/dialect/GetEncodingFromDetectionTestCase.java?rev=992747&view=auto
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-staxdialect-tests/src/test/java/org/apache/axiom/util/stax/dialect/GetEncodingFromDetectionTestCase.java
(added)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-staxdialect-tests/src/test/java/org/apache/axiom/util/stax/dialect/GetEncodingFromDetectionTestCase.java
Sun Sep 5 09:41:25 2010
@@ -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.util.stax.dialect;
+
+import java.io.ByteArrayInputStream;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+
+/**
+ * Checks that {...@link XMLStreamReader#getEncoding()} returns accurate
information for XML documents
+ * without an encoding specified in the XML declaration. For this type of
document, the parser
+ * should implement the detection algorithm described in Appendix F.1 of the
XML 1.0 specifications
+ * (Fifth Edition).
+ */
+public class GetEncodingFromDetectionTestCase extends DialectTestCase {
+ private final String javaEncoding;
+ private final String xmlEncoding;
+
+ public GetEncodingFromDetectionTestCase(String javaEncoding, String
xmlEncoding) {
+ this.javaEncoding = javaEncoding;
+ this.xmlEncoding = xmlEncoding;
+ setName(getClass().getName() + " [" + javaEncoding + "]");
+ }
+
+ protected void runTest() throws Throwable {
+ XMLInputFactory factory = newNormalizedXMLInputFactory();
+ XMLStreamReader reader = factory.createXMLStreamReader(new
ByteArrayInputStream(
+ "<?xml version=\"1.0\"?><root/>".getBytes(javaEncoding)));
+ assertEquals(xmlEncoding, reader.getEncoding());
+ }
+}
Propchange:
webservices/commons/trunk/modules/axiom/modules/axiom-staxdialect-tests/src/test/java/org/apache/axiom/util/stax/dialect/GetEncodingFromDetectionTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native