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/05/08 08:16:46 UTC

svn commit: r1742775 - in /webservices/axiom/trunk/aspects/core-aspects/src: main/java/org/apache/axiom/core/stream/serializer/SerializerXmlHandler.java test/java/org/apache/axiom/core/stream/serializer/SerializerTest.java

Author: veithen
Date: Sun May  8 08:16:45 2016
New Revision: 1742775

URL: http://svn.apache.org/viewvc?rev=1742775&view=rev
Log:
Add test case.

Modified:
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerXmlHandler.java
    webservices/axiom/trunk/aspects/core-aspects/src/test/java/org/apache/axiom/core/stream/serializer/SerializerTest.java

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerXmlHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerXmlHandler.java?rev=1742775&r1=1742774&r2=1742775&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerXmlHandler.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerXmlHandler.java Sun May  8 08:16:45 2016
@@ -19,6 +19,7 @@
 package org.apache.axiom.core.stream.serializer;
 
 import java.io.IOException;
+import java.io.OutputStream;
 import java.io.Writer;
 import java.util.Stack;
 
@@ -46,6 +47,12 @@ public class SerializerXmlHandler implem
         serializer.setWriter(writer);
     }
 
+    public SerializerXmlHandler(OutputStream out, String encoding) {
+        this.serializer = new ToXMLStream();
+        serializer.setOutputStream(out);
+        serializer.setEncoding(encoding);
+    }
+
     private static String getQName(String prefix, String localName) {
         if (prefix.length() == 0) {
             return localName;

Modified: webservices/axiom/trunk/aspects/core-aspects/src/test/java/org/apache/axiom/core/stream/serializer/SerializerTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/test/java/org/apache/axiom/core/stream/serializer/SerializerTest.java?rev=1742775&r1=1742774&r2=1742775&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/test/java/org/apache/axiom/core/stream/serializer/SerializerTest.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/test/java/org/apache/axiom/core/stream/serializer/SerializerTest.java Sun May  8 08:16:45 2016
@@ -20,6 +20,7 @@ package org.apache.axiom.core.stream.ser
 
 import static com.google.common.truth.Truth.assertThat;
 
+import java.io.ByteArrayOutputStream;
 import java.io.StringWriter;
 
 import org.junit.Test;
@@ -34,4 +35,21 @@ public class SerializerTest {
         handler.endElement();
         assertThat(sw.toString()).matches("<test ?/>");
     }
+
+    /**
+     * Test that characters are converted to entities only when necessary.
+     * 
+     * @throws Exception
+     */
+    @Test
+    public void testISO_8859_15() throws Exception {
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        SerializerXmlHandler handler = new SerializerXmlHandler(baos, "iso-8859-15");
+        handler.startElement("", "test", "");
+        handler.attributesCompleted();
+        handler.processCharacterData("a\u03A3\u20AC", false);  // 20AC = Euro sign
+        handler.endElement();
+        handler.completed();
+        assertThat(new String(baos.toByteArray(), "iso-8859-15")).isEqualTo("<test>a&#931;\u20AC</test>");
+    }
 }