1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.lang3.text.translate;
19
20 import static org.junit.jupiter.api.Assertions.assertEquals;
21
22 import org.apache.commons.lang3.AbstractLangTest;
23 import org.junit.jupiter.api.Test;
24
25
26
27
28 @Deprecated
29 class UnicodeUnescaperTest extends AbstractLangTest {
30
31 @Test
32 void testLessThanFour() {
33 final UnicodeUnescaper uu = new UnicodeUnescaper();
34
35 final String input = "\\0047\\u006";
36 assertEquals(input, uu.translate(input), "A truncated Unicode escape sequence must pass through untranslated");
37 }
38
39 @Test
40 void testNonAsciiHexDigits() {
41 final UnicodeUnescaper uu = new UnicodeUnescaper();
42
43
44 assertEquals("\\u\uFF10\uFF10\uFF12\uFF12", uu.translate("\\u\uFF10\uFF10\uFF12\uFF12"),
45 "Fullwidth digit spellings must pass through untranslated");
46 assertEquals("\\u\u0660\u0660\u0664\u0661", uu.translate("\\u\u0660\u0660\u0664\u0661"),
47 "Arabic-Indic digit spellings must pass through untranslated");
48 }
49
50 @Test
51 void testSignedValue() {
52 final UnicodeUnescaper uu = new UnicodeUnescaper();
53
54
55 assertEquals("\\u-047", uu.translate("\\u-047"), "A signed Unicode escape sequence must pass through untranslated");
56 assertEquals("\\u++0047", uu.translate("\\u++0047"), "A signed Unicode escape sequence must pass through untranslated");
57
58 assertEquals("G", uu.translate("\\u+0047"), "Failed to unescape Unicode characters with 'u+' notation");
59 }
60
61
62 @Test
63 void testUPlus() {
64 final UnicodeUnescaper uu = new UnicodeUnescaper();
65 final String input = "\\u+0047";
66 assertEquals("G", uu.translate(input), "Failed to unescape Unicode characters with 'u+' notation");
67 }
68
69 @Test
70 void testUuuuu() {
71 final UnicodeUnescaper uu = new UnicodeUnescaper();
72 final String input = "\\uuuuuuuu0047";
73 final String result = uu.translate(input);
74 assertEquals("G", result, "Failed to unescape Unicode characters with many 'u' characters");
75 }
76 }