package org.jrdf.util; import junit.framework.TestCase; /** * Unit test for {@link EscapeUtil}. * * @author Andrew Newman */ public class EscapeUtilUnitTest extends TestCase { public void testSurrgates() { // ISO 10646 Amendment 1 // High surrogates from D800...DBFF, low surrogates from DC00...DFFF. testEscapedValue("\\U00010000", "\uD800\uDC00"); testEscapedValue("\\U00010001", "\uD800\uDC01"); testEscapedValue("\\U00010401", "\uD801\uDC01"); testEscapedValue("\\U00020000", "\uD840\uDC00"); testEscapedValue("\\U00030000", "\uD880\uDC00"); testEscapedValue("\\U00100000", "\uDBC0\uDC00"); testEscapedValue("\\U0010FFFF", "\uDBFF\uDFFF"); } public void testNearSurrogates() { // ISO 10646 Amendment 1 // High surrogates from D800...DBFF, low surrogates from DC00...DFFF. testEscapedValue("\\uD799\\uDC00", "\uD799\uDC00"); testEscapedValue("\\uD799\\uDC01", "\uD799\uDC01"); testEscapedValue("\\uD800\\uDBFF", "\uD800\uDBFF"); testEscapedValue("\\uD801\\uDBFF", "\uD801\uDBFF"); testEscapedValue("\\uDC00\\uDFFF", "\uDC00\uDFFF"); testEscapedValue("\\uDBFF\\uE000", "\uDBFF\uE000"); } public void testExampleCodePoints() { testEscapedValue("\\U000233B4", "\uD84C\uDFB4"); testEscapedValue("\\u2260", "\u2260"); testEscapedValue("q", "\u0071"); testEscapedValue("\\u030C", "\u030c"); testEscapedValue("\\u00E9", "\u00E9"); } public void testControlCharacters() { testEscapedValue("\\\\", new String(new char[] {(char) 92})); testEscapedValue("\\\"", new String(new char[] {(char) 34})); testEscapedValue("\\r", new String(new char[] {(char) 13})); testEscapedValue("\\n", new String(new char[] {(char) 10})); testEscapedValue("\\t", new String(new char[] {(char) 9})); } private void testEscapedValue(String expectedValue, String testString) { assertEquals(expectedValue, EscapeUtil.escape(testString)); } }