1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.lang3;
18
19 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
20 import static org.junit.jupiter.api.Assertions.assertEquals;
21 import static org.junit.jupiter.api.Assertions.assertNull;
22
23 import org.junit.jupiter.api.Disabled;
24 import org.junit.jupiter.api.Test;
25
26
27
28
29 public class StringUtilsTrimStripTest extends AbstractLangTest {
30 private static final String FOO = "foo";
31
32 @Test
33 public void testStrip_String() {
34 assertNull(StringUtils.strip(null));
35 assertEquals("", StringUtils.strip(""));
36 assertEquals("", StringUtils.strip(" "));
37 assertEquals("abc", StringUtils.strip(" abc "));
38 assertEquals(StringUtilsTest.NON_WHITESPACE,
39 StringUtils.strip(StringUtilsTest.WHITESPACE + StringUtilsTest.NON_WHITESPACE + StringUtilsTest.WHITESPACE));
40 }
41
42 @Test
43 public void testStrip_StringString() {
44
45 assertNull(StringUtils.strip(null, null));
46 assertEquals("", StringUtils.strip("", null));
47 assertEquals("", StringUtils.strip(" ", null));
48 assertEquals("abc", StringUtils.strip(" abc ", null));
49 assertEquals(StringUtilsTest.NON_WHITESPACE,
50 StringUtils.strip(StringUtilsTest.WHITESPACE + StringUtilsTest.NON_WHITESPACE + StringUtilsTest.WHITESPACE, null));
51
52
53 assertNull(StringUtils.strip(null, ""));
54 assertEquals("", StringUtils.strip("", ""));
55 assertEquals(" ", StringUtils.strip(" ", ""));
56 assertEquals(" abc ", StringUtils.strip(" abc ", ""));
57 assertEquals(StringUtilsTest.WHITESPACE, StringUtils.strip(StringUtilsTest.WHITESPACE, ""));
58
59
60 assertNull(StringUtils.strip(null, " "));
61 assertEquals("", StringUtils.strip("", " "));
62 assertEquals("", StringUtils.strip(" ", " "));
63 assertEquals("abc", StringUtils.strip(" abc ", " "));
64
65
66 assertNull(StringUtils.strip(null, "ab"));
67 assertEquals("", StringUtils.strip("", "ab"));
68 assertEquals(" ", StringUtils.strip(" ", "ab"));
69 assertEquals(" abc ", StringUtils.strip(" abc ", "ab"));
70 assertEquals("c", StringUtils.strip("abcabab", "ab"));
71 assertEquals(StringUtilsTest.WHITESPACE, StringUtils.strip(StringUtilsTest.WHITESPACE, ""));
72 }
73
74 @Test
75 public void testStripAccents() {
76 final String cue = "\u00C7\u00FA\u00EA";
77 assertEquals("Cue", StringUtils.stripAccents(cue), "Failed to strip accents from " + cue);
78
79 final String lots = "\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C7\u00C8\u00C9" +
80 "\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF\u00D1\u00D2\u00D3" +
81 "\u00D4\u00D5\u00D6\u00D9\u00DA\u00DB\u00DC\u00DD";
82 assertEquals("AAAAAACEEEEIIIINOOOOOUUUUY",
83 StringUtils.stripAccents(lots),
84 "Failed to strip accents from " + lots);
85
86 assertNull(StringUtils.stripAccents(null), "Failed null safety");
87 assertEquals("", StringUtils.stripAccents(""), "Failed empty String");
88 assertEquals("control", StringUtils.stripAccents("control"), "Failed to handle non-accented text");
89 assertEquals("eclair", StringUtils.stripAccents("\u00E9clair"), "Failed to handle easy example");
90 assertEquals("ALOSZZCN aloszzcn", StringUtils.stripAccents("\u0104\u0141\u00D3\u015A\u017B\u0179\u0106\u0143 "
91 + "\u0105\u0142\u00F3\u015B\u017C\u017A\u0107\u0144"));
92 }
93
94 @Test
95 @Disabled
96 public void testStripAccents_Korean() {
97
98 final String input = "ìì§ë§ ë í린 ì´ë ì¬ì´ ì¼ìì¼ë¡ 그린 ë³ íë";
99 assertEquals(input, StringUtils.stripAccents(input), "Failed to handle non-accented text");
100
101 }
102
103 @Test
104 public void testStripAll() {
105
106 final String[] empty = {};
107 final String[] fooSpace = { " "+FOO+" ", " "+FOO, FOO+" " };
108 final String[] fooDots = { ".."+FOO+"..", ".."+FOO, FOO+".." };
109 final String[] foo = { FOO, FOO, FOO };
110
111 assertNull(StringUtils.stripAll((String[]) null));
112
113 assertArrayEquals(empty, StringUtils.stripAll());
114 assertArrayEquals(new String[]{null}, StringUtils.stripAll((String) null));
115
116 assertArrayEquals(empty, StringUtils.stripAll(empty));
117 assertArrayEquals(foo, StringUtils.stripAll(fooSpace));
118
119 assertNull(StringUtils.stripAll(null, null));
120 assertArrayEquals(foo, StringUtils.stripAll(fooSpace, null));
121 assertArrayEquals(foo, StringUtils.stripAll(fooDots, "."));
122 }
123
124 @Test
125 public void testStripEnd_StringString() {
126
127 assertNull(StringUtils.stripEnd(null, null));
128 assertEquals("", StringUtils.stripEnd("", null));
129 assertEquals("", StringUtils.stripEnd(" ", null));
130 assertEquals(" abc", StringUtils.stripEnd(" abc ", null));
131 assertEquals(StringUtilsTest.WHITESPACE + StringUtilsTest.NON_WHITESPACE,
132 StringUtils.stripEnd(StringUtilsTest.WHITESPACE + StringUtilsTest.NON_WHITESPACE + StringUtilsTest.WHITESPACE, null));
133
134
135 assertNull(StringUtils.stripEnd(null, ""));
136 assertEquals("", StringUtils.stripEnd("", ""));
137 assertEquals(" ", StringUtils.stripEnd(" ", ""));
138 assertEquals(" abc ", StringUtils.stripEnd(" abc ", ""));
139 assertEquals(StringUtilsTest.WHITESPACE, StringUtils.stripEnd(StringUtilsTest.WHITESPACE, ""));
140
141
142 assertNull(StringUtils.stripEnd(null, " "));
143 assertEquals("", StringUtils.stripEnd("", " "));
144 assertEquals("", StringUtils.stripEnd(" ", " "));
145 assertEquals(" abc", StringUtils.stripEnd(" abc ", " "));
146
147
148 assertNull(StringUtils.stripEnd(null, "ab"));
149 assertEquals("", StringUtils.stripEnd("", "ab"));
150 assertEquals(" ", StringUtils.stripEnd(" ", "ab"));
151 assertEquals(" abc ", StringUtils.stripEnd(" abc ", "ab"));
152 assertEquals("abc", StringUtils.stripEnd("abcabab", "ab"));
153 assertEquals(StringUtilsTest.WHITESPACE, StringUtils.stripEnd(StringUtilsTest.WHITESPACE, ""));
154 }
155
156 @Test
157 public void testStripStart_StringString() {
158
159 assertNull(StringUtils.stripStart(null, null));
160 assertEquals("", StringUtils.stripStart("", null));
161 assertEquals("", StringUtils.stripStart(" ", null));
162 assertEquals("abc ", StringUtils.stripStart(" abc ", null));
163 assertEquals(StringUtilsTest.NON_WHITESPACE + StringUtilsTest.WHITESPACE,
164 StringUtils.stripStart(StringUtilsTest.WHITESPACE + StringUtilsTest.NON_WHITESPACE + StringUtilsTest.WHITESPACE, null));
165
166
167 assertNull(StringUtils.stripStart(null, ""));
168 assertEquals("", StringUtils.stripStart("", ""));
169 assertEquals(" ", StringUtils.stripStart(" ", ""));
170 assertEquals(" abc ", StringUtils.stripStart(" abc ", ""));
171 assertEquals(StringUtilsTest.WHITESPACE, StringUtils.stripStart(StringUtilsTest.WHITESPACE, ""));
172
173
174 assertNull(StringUtils.stripStart(null, " "));
175 assertEquals("", StringUtils.stripStart("", " "));
176 assertEquals("", StringUtils.stripStart(" ", " "));
177 assertEquals("abc ", StringUtils.stripStart(" abc ", " "));
178
179
180 assertNull(StringUtils.stripStart(null, "ab"));
181 assertEquals("", StringUtils.stripStart("", "ab"));
182 assertEquals(" ", StringUtils.stripStart(" ", "ab"));
183 assertEquals(" abc ", StringUtils.stripStart(" abc ", "ab"));
184 assertEquals("cabab", StringUtils.stripStart("abcabab", "ab"));
185 assertEquals(StringUtilsTest.WHITESPACE, StringUtils.stripStart(StringUtilsTest.WHITESPACE, ""));
186 }
187
188 @Test
189 public void testStripToEmpty_String() {
190 assertEquals("", StringUtils.stripToEmpty(null));
191 assertEquals("", StringUtils.stripToEmpty(""));
192 assertEquals("", StringUtils.stripToEmpty(" "));
193 assertEquals("", StringUtils.stripToEmpty(StringUtilsTest.WHITESPACE));
194 assertEquals("ab c", StringUtils.stripToEmpty(" ab c "));
195 assertEquals(StringUtilsTest.NON_WHITESPACE,
196 StringUtils.stripToEmpty(StringUtilsTest.WHITESPACE + StringUtilsTest.NON_WHITESPACE + StringUtilsTest.WHITESPACE));
197 }
198
199 @Test
200 public void testStripToNull_String() {
201 assertNull(StringUtils.stripToNull(null));
202 assertNull(StringUtils.stripToNull(""));
203 assertNull(StringUtils.stripToNull(" "));
204 assertNull(StringUtils.stripToNull(StringUtilsTest.WHITESPACE));
205 assertEquals("ab c", StringUtils.stripToNull(" ab c "));
206 assertEquals(StringUtilsTest.NON_WHITESPACE,
207 StringUtils.stripToNull(StringUtilsTest.WHITESPACE + StringUtilsTest.NON_WHITESPACE + StringUtilsTest.WHITESPACE));
208 }
209
210 @Test
211 public void testTrim() {
212 assertEquals(FOO, StringUtils.trim(FOO + " "));
213 assertEquals(FOO, StringUtils.trim(" " + FOO + " "));
214 assertEquals(FOO, StringUtils.trim(" " + FOO));
215 assertEquals(FOO, StringUtils.trim(FOO + ""));
216 assertEquals("", StringUtils.trim(" \t\r\n\b "));
217 assertEquals("", StringUtils.trim(StringUtilsTest.TRIMMABLE));
218 assertEquals(StringUtilsTest.NON_TRIMMABLE, StringUtils.trim(StringUtilsTest.NON_TRIMMABLE));
219 assertEquals("", StringUtils.trim(""));
220 assertNull(StringUtils.trim(null));
221 }
222
223 @Test
224 public void testTrimToEmpty() {
225 assertEquals(FOO, StringUtils.trimToEmpty(FOO + " "));
226 assertEquals(FOO, StringUtils.trimToEmpty(" " + FOO + " "));
227 assertEquals(FOO, StringUtils.trimToEmpty(" " + FOO));
228 assertEquals(FOO, StringUtils.trimToEmpty(FOO + ""));
229 assertEquals("", StringUtils.trimToEmpty(" \t\r\n\b "));
230 assertEquals("", StringUtils.trimToEmpty(StringUtilsTest.TRIMMABLE));
231 assertEquals(StringUtilsTest.NON_TRIMMABLE, StringUtils.trimToEmpty(StringUtilsTest.NON_TRIMMABLE));
232 assertEquals("", StringUtils.trimToEmpty(""));
233 assertEquals("", StringUtils.trimToEmpty(null));
234 }
235
236 @Test
237 public void testTrimToNull() {
238 assertEquals(FOO, StringUtils.trimToNull(FOO + " "));
239 assertEquals(FOO, StringUtils.trimToNull(" " + FOO + " "));
240 assertEquals(FOO, StringUtils.trimToNull(" " + FOO));
241 assertEquals(FOO, StringUtils.trimToNull(FOO + ""));
242 assertNull(StringUtils.trimToNull(" \t\r\n\b "));
243 assertNull(StringUtils.trimToNull(StringUtilsTest.TRIMMABLE));
244 assertEquals(StringUtilsTest.NON_TRIMMABLE, StringUtils.trimToNull(StringUtilsTest.NON_TRIMMABLE));
245 assertNull(StringUtils.trimToNull(""));
246 assertNull(StringUtils.trimToNull(null));
247 }
248 }