Author: ggregory
Date: Thu Nov 22 02:21:55 2012
New Revision: 1412408

URL: http://svn.apache.org/viewvc?rev=1412408&view=rev
Log:
[LANG-858] StringEscapeUtils.escapeJava() does not output the escaped surrogate 
pairs that is Java parsable.

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

Modified: 
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/StringUtilsTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/StringUtilsTest.java?rev=1412408&r1=1412407&r2=1412408&view=diff
==============================================================================
--- 
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/StringUtilsTest.java
 (original)
+++ 
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/StringUtilsTest.java
 Thu Nov 22 02:21:55 2012
@@ -36,6 +36,7 @@ import java.util.Iterator;
 import java.util.Locale;
 
 import org.apache.commons.lang3.text.WordUtils;
+import org.junit.Ignore;
 import org.junit.Test;
 
 /**
@@ -2189,5 +2190,31 @@ public class StringUtilsTest {
         assertEquals("\uD800\uDC00", 
StringEscapeUtils.escapeCsv("\uD800\uDC00"));
         assertEquals("\uD834\uDD1E", 
StringEscapeUtils.escapeCsv("\uD834\uDD1E"));
         assertEquals("\uDBFF\uDFFD", 
StringEscapeUtils.escapeCsv("\uDBFF\uDFFD"));
+        assertEquals("\uDBFF\uDFFD", 
StringEscapeUtils.escapeHtml3("\uDBFF\uDFFD"));
+        assertEquals("\uDBFF\uDFFD", 
StringEscapeUtils.escapeHtml4("\uDBFF\uDFFD"));
+        assertEquals("\uDBFF\uDFFD", 
StringEscapeUtils.escapeXml("\uDBFF\uDFFD"));
+    }
+    
+    /**
+     * Tests LANG-858.
+     * 
+     * @throws Exception
+     */
+    @Test
+    @Ignore
+    public void testEscapeSurrogatePairsLang858() throws Exception {
+        assertEquals("\\uDBFF\\uDFFD", 
StringEscapeUtils.escapeJava("\uDBFF\uDFFD"));       //fail LANG-858
+        assertEquals("\\uDBFF\\uDFFD", 
StringEscapeUtils.escapeEcmaScript("\uDBFF\uDFFD")); //fail LANG-858
+    }
+    
+    @Test
+    public void testUnescapeSurrogatePairs() throws Exception {
+        assertEquals("\uD83D\uDE30", 
StringEscapeUtils.unescapeCsv("\uD83D\uDE30"));
+        // Examples from https://en.wikipedia.org/wiki/UTF-16
+        assertEquals("\uD800\uDC00", 
StringEscapeUtils.unescapeCsv("\uD800\uDC00"));
+        assertEquals("\uD834\uDD1E", 
StringEscapeUtils.unescapeCsv("\uD834\uDD1E"));
+        assertEquals("\uDBFF\uDFFD", 
StringEscapeUtils.unescapeCsv("\uDBFF\uDFFD"));
+        assertEquals("\uDBFF\uDFFD", 
StringEscapeUtils.unescapeHtml3("\uDBFF\uDFFD"));
+        assertEquals("\uDBFF\uDFFD", 
StringEscapeUtils.unescapeHtml4("\uDBFF\uDFFD"));
     }
 }


Reply via email to