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