Author: ggregory
Date: Wed Nov 21 19:51:28 2012
New Revision: 1412256

URL: http://svn.apache.org/viewvc?rev=1412256&view=rev
Log:
Add testEscapeXmlAllCharacters.

Modified:
    
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java

Modified: 
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java?rev=1412256&r1=1412255&r2=1412256&view=diff
==============================================================================
--- 
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java
 (original)
+++ 
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java
 Wed Nov 21 19:51:28 2012
@@ -350,6 +350,24 @@ public class StringEscapeUtilsTest {
                 escapeXml.translate("\uD84C\uDFB4"));
     }
     
+    @Test
+    public void testEscapeXmlAllCharacters() {
+        // http://www.w3.org/TR/xml/#charsets says:
+        // Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | 
[#x10000-#x10FFFF] /* any Unicode character,
+        // excluding the surrogate blocks, FFFE, and FFFF. */
+        CharSequenceTranslator escapeXml = StringEscapeUtils.ESCAPE_XML
+                .with(NumericEntityEscaper.below(9), 
NumericEntityEscaper.between(0xB, 0xC), NumericEntityEscaper.between(0xE, 0x19),
+                        NumericEntityEscaper.between(0xD800, 0xDFFF), 
NumericEntityEscaper.between(0xFFFE, 0xFFFF), 
NumericEntityEscaper.above(0x110000));
+
+        assertEquals("�", 
escapeXml.translate("\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008"));
+        assertEquals("\t", escapeXml.translate("\t")); // 0x9
+        assertEquals("\n", escapeXml.translate("\n")); // 0xA
+        assertEquals("", escapeXml.translate("\u000B\u000C"));
+        assertEquals("\r", escapeXml.translate("\r")); // 0xD
+        assertEquals("Hello World! Ain't this great?", 
escapeXml.translate("Hello World! Ain't this great?"));
+        assertEquals("", 
escapeXml.translate("\u000E\u000F\u0018\u0019"));
+    }
+    
     /**
      * Reverse of the above.
      *
@@ -360,7 +378,7 @@ public class StringEscapeUtilsTest {
         assertEquals("Supplementary character must be represented using a 
single escape", "\uD84C\uDFB4",
                 StringEscapeUtils.unescapeXml("𣎴") );
     }
-    
+        
     // Tests issue #38569
     // http://issues.apache.org/bugzilla/show_bug.cgi?id=38569
     @Test


Reply via email to