aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/apache/commons/lang3/StringUtilsTrimStripTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/org/apache/commons/lang3/StringUtilsTrimStripTest.java')
-rw-r--r--src/test/java/org/apache/commons/lang3/StringUtilsTrimStripTest.java248
1 files changed, 248 insertions, 0 deletions
diff --git a/src/test/java/org/apache/commons/lang3/StringUtilsTrimStripTest.java b/src/test/java/org/apache/commons/lang3/StringUtilsTrimStripTest.java
new file mode 100644
index 000000000..79bff3f1e
--- /dev/null
+++ b/src/test/java/org/apache/commons/lang3/StringUtilsTrimStripTest.java
@@ -0,0 +1,248 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.lang3;
+
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+
+/**
+ * Unit tests {@link org.apache.commons.lang3.StringUtils} - Trim/Strip methods
+ */
+public class StringUtilsTrimStripTest extends AbstractLangTest {
+ private static final String FOO = "foo";
+
+ @Test
+ public void testTrim() {
+ assertEquals(FOO, StringUtils.trim(FOO + " "));
+ assertEquals(FOO, StringUtils.trim(" " + FOO + " "));
+ assertEquals(FOO, StringUtils.trim(" " + FOO));
+ assertEquals(FOO, StringUtils.trim(FOO + ""));
+ assertEquals("", StringUtils.trim(" \t\r\n\b "));
+ assertEquals("", StringUtils.trim(StringUtilsTest.TRIMMABLE));
+ assertEquals(StringUtilsTest.NON_TRIMMABLE, StringUtils.trim(StringUtilsTest.NON_TRIMMABLE));
+ assertEquals("", StringUtils.trim(""));
+ assertNull(StringUtils.trim(null));
+ }
+
+ @Test
+ public void testTrimToNull() {
+ assertEquals(FOO, StringUtils.trimToNull(FOO + " "));
+ assertEquals(FOO, StringUtils.trimToNull(" " + FOO + " "));
+ assertEquals(FOO, StringUtils.trimToNull(" " + FOO));
+ assertEquals(FOO, StringUtils.trimToNull(FOO + ""));
+ assertNull(StringUtils.trimToNull(" \t\r\n\b "));
+ assertNull(StringUtils.trimToNull(StringUtilsTest.TRIMMABLE));
+ assertEquals(StringUtilsTest.NON_TRIMMABLE, StringUtils.trimToNull(StringUtilsTest.NON_TRIMMABLE));
+ assertNull(StringUtils.trimToNull(""));
+ assertNull(StringUtils.trimToNull(null));
+ }
+
+ @Test
+ public void testTrimToEmpty() {
+ assertEquals(FOO, StringUtils.trimToEmpty(FOO + " "));
+ assertEquals(FOO, StringUtils.trimToEmpty(" " + FOO + " "));
+ assertEquals(FOO, StringUtils.trimToEmpty(" " + FOO));
+ assertEquals(FOO, StringUtils.trimToEmpty(FOO + ""));
+ assertEquals("", StringUtils.trimToEmpty(" \t\r\n\b "));
+ assertEquals("", StringUtils.trimToEmpty(StringUtilsTest.TRIMMABLE));
+ assertEquals(StringUtilsTest.NON_TRIMMABLE, StringUtils.trimToEmpty(StringUtilsTest.NON_TRIMMABLE));
+ assertEquals("", StringUtils.trimToEmpty(""));
+ assertEquals("", StringUtils.trimToEmpty(null));
+ }
+
+ @Test
+ public void testStrip_String() {
+ assertNull(StringUtils.strip(null));
+ assertEquals("", StringUtils.strip(""));
+ assertEquals("", StringUtils.strip(" "));
+ assertEquals("abc", StringUtils.strip(" abc "));
+ assertEquals(StringUtilsTest.NON_WHITESPACE,
+ StringUtils.strip(StringUtilsTest.WHITESPACE + StringUtilsTest.NON_WHITESPACE + StringUtilsTest.WHITESPACE));
+ }
+
+ @Test
+ public void testStripToNull_String() {
+ assertNull(StringUtils.stripToNull(null));
+ assertNull(StringUtils.stripToNull(""));
+ assertNull(StringUtils.stripToNull(" "));
+ assertNull(StringUtils.stripToNull(StringUtilsTest.WHITESPACE));
+ assertEquals("ab c", StringUtils.stripToNull(" ab c "));
+ assertEquals(StringUtilsTest.NON_WHITESPACE,
+ StringUtils.stripToNull(StringUtilsTest.WHITESPACE + StringUtilsTest.NON_WHITESPACE + StringUtilsTest.WHITESPACE));
+ }
+
+ @Test
+ public void testStripToEmpty_String() {
+ assertEquals("", StringUtils.stripToEmpty(null));
+ assertEquals("", StringUtils.stripToEmpty(""));
+ assertEquals("", StringUtils.stripToEmpty(" "));
+ assertEquals("", StringUtils.stripToEmpty(StringUtilsTest.WHITESPACE));
+ assertEquals("ab c", StringUtils.stripToEmpty(" ab c "));
+ assertEquals(StringUtilsTest.NON_WHITESPACE,
+ StringUtils.stripToEmpty(StringUtilsTest.WHITESPACE + StringUtilsTest.NON_WHITESPACE + StringUtilsTest.WHITESPACE));
+ }
+
+ @Test
+ public void testStrip_StringString() {
+ // null strip
+ assertNull(StringUtils.strip(null, null));
+ assertEquals("", StringUtils.strip("", null));
+ assertEquals("", StringUtils.strip(" ", null));
+ assertEquals("abc", StringUtils.strip(" abc ", null));
+ assertEquals(StringUtilsTest.NON_WHITESPACE,
+ StringUtils.strip(StringUtilsTest.WHITESPACE + StringUtilsTest.NON_WHITESPACE + StringUtilsTest.WHITESPACE, null));
+
+ // "" strip
+ assertNull(StringUtils.strip(null, ""));
+ assertEquals("", StringUtils.strip("", ""));
+ assertEquals(" ", StringUtils.strip(" ", ""));
+ assertEquals(" abc ", StringUtils.strip(" abc ", ""));
+ assertEquals(StringUtilsTest.WHITESPACE, StringUtils.strip(StringUtilsTest.WHITESPACE, ""));
+
+ // " " strip
+ assertNull(StringUtils.strip(null, " "));
+ assertEquals("", StringUtils.strip("", " "));
+ assertEquals("", StringUtils.strip(" ", " "));
+ assertEquals("abc", StringUtils.strip(" abc ", " "));
+
+ // "ab" strip
+ assertNull(StringUtils.strip(null, "ab"));
+ assertEquals("", StringUtils.strip("", "ab"));
+ assertEquals(" ", StringUtils.strip(" ", "ab"));
+ assertEquals(" abc ", StringUtils.strip(" abc ", "ab"));
+ assertEquals("c", StringUtils.strip("abcabab", "ab"));
+ assertEquals(StringUtilsTest.WHITESPACE, StringUtils.strip(StringUtilsTest.WHITESPACE, ""));
+ }
+
+ @Test
+ public void testStripStart_StringString() {
+ // null stripStart
+ assertNull(StringUtils.stripStart(null, null));
+ assertEquals("", StringUtils.stripStart("", null));
+ assertEquals("", StringUtils.stripStart(" ", null));
+ assertEquals("abc ", StringUtils.stripStart(" abc ", null));
+ assertEquals(StringUtilsTest.NON_WHITESPACE + StringUtilsTest.WHITESPACE,
+ StringUtils.stripStart(StringUtilsTest.WHITESPACE + StringUtilsTest.NON_WHITESPACE + StringUtilsTest.WHITESPACE, null));
+
+ // "" stripStart
+ assertNull(StringUtils.stripStart(null, ""));
+ assertEquals("", StringUtils.stripStart("", ""));
+ assertEquals(" ", StringUtils.stripStart(" ", ""));
+ assertEquals(" abc ", StringUtils.stripStart(" abc ", ""));
+ assertEquals(StringUtilsTest.WHITESPACE, StringUtils.stripStart(StringUtilsTest.WHITESPACE, ""));
+
+ // " " stripStart
+ assertNull(StringUtils.stripStart(null, " "));
+ assertEquals("", StringUtils.stripStart("", " "));
+ assertEquals("", StringUtils.stripStart(" ", " "));
+ assertEquals("abc ", StringUtils.stripStart(" abc ", " "));
+
+ // "ab" stripStart
+ assertNull(StringUtils.stripStart(null, "ab"));
+ assertEquals("", StringUtils.stripStart("", "ab"));
+ assertEquals(" ", StringUtils.stripStart(" ", "ab"));
+ assertEquals(" abc ", StringUtils.stripStart(" abc ", "ab"));
+ assertEquals("cabab", StringUtils.stripStart("abcabab", "ab"));
+ assertEquals(StringUtilsTest.WHITESPACE, StringUtils.stripStart(StringUtilsTest.WHITESPACE, ""));
+ }
+
+ @Test
+ public void testStripEnd_StringString() {
+ // null stripEnd
+ assertNull(StringUtils.stripEnd(null, null));
+ assertEquals("", StringUtils.stripEnd("", null));
+ assertEquals("", StringUtils.stripEnd(" ", null));
+ assertEquals(" abc", StringUtils.stripEnd(" abc ", null));
+ assertEquals(StringUtilsTest.WHITESPACE + StringUtilsTest.NON_WHITESPACE,
+ StringUtils.stripEnd(StringUtilsTest.WHITESPACE + StringUtilsTest.NON_WHITESPACE + StringUtilsTest.WHITESPACE, null));
+
+ // "" stripEnd
+ assertNull(StringUtils.stripEnd(null, ""));
+ assertEquals("", StringUtils.stripEnd("", ""));
+ assertEquals(" ", StringUtils.stripEnd(" ", ""));
+ assertEquals(" abc ", StringUtils.stripEnd(" abc ", ""));
+ assertEquals(StringUtilsTest.WHITESPACE, StringUtils.stripEnd(StringUtilsTest.WHITESPACE, ""));
+
+ // " " stripEnd
+ assertNull(StringUtils.stripEnd(null, " "));
+ assertEquals("", StringUtils.stripEnd("", " "));
+ assertEquals("", StringUtils.stripEnd(" ", " "));
+ assertEquals(" abc", StringUtils.stripEnd(" abc ", " "));
+
+ // "ab" stripEnd
+ assertNull(StringUtils.stripEnd(null, "ab"));
+ assertEquals("", StringUtils.stripEnd("", "ab"));
+ assertEquals(" ", StringUtils.stripEnd(" ", "ab"));
+ assertEquals(" abc ", StringUtils.stripEnd(" abc ", "ab"));
+ assertEquals("abc", StringUtils.stripEnd("abcabab", "ab"));
+ assertEquals(StringUtilsTest.WHITESPACE, StringUtils.stripEnd(StringUtilsTest.WHITESPACE, ""));
+ }
+
+ @Test
+ public void testStripAll() {
+ // test stripAll method, merely an array version of the above strip
+ final String[] empty = {};
+ final String[] fooSpace = { " "+FOO+" ", " "+FOO, FOO+" " };
+ final String[] fooDots = { ".."+FOO+"..", ".."+FOO, FOO+".." };
+ final String[] foo = { FOO, FOO, FOO };
+
+ assertNull(StringUtils.stripAll((String[]) null));
+ // Additional varargs tests
+ assertArrayEquals(empty, StringUtils.stripAll()); // empty array
+ assertArrayEquals(new String[]{null}, StringUtils.stripAll((String) null)); // == new String[]{null}
+
+ assertArrayEquals(empty, StringUtils.stripAll(empty));
+ assertArrayEquals(foo, StringUtils.stripAll(fooSpace));
+
+ assertNull(StringUtils.stripAll(null, null));
+ assertArrayEquals(foo, StringUtils.stripAll(fooSpace, null));
+ assertArrayEquals(foo, StringUtils.stripAll(fooDots, "."));
+ }
+
+ @Test
+ public void testStripAccents() {
+ final String cue = "\u00C7\u00FA\u00EA";
+ assertEquals("Cue", StringUtils.stripAccents(cue), "Failed to strip accents from " + cue);
+
+ final String lots = "\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C7\u00C8\u00C9" +
+ "\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF\u00D1\u00D2\u00D3" +
+ "\u00D4\u00D5\u00D6\u00D9\u00DA\u00DB\u00DC\u00DD";
+ assertEquals("AAAAAACEEEEIIIINOOOOOUUUUY",
+ StringUtils.stripAccents(lots),
+ "Failed to strip accents from " + lots);
+
+ assertNull(StringUtils.stripAccents(null), "Failed null safety");
+ assertEquals("", StringUtils.stripAccents(""), "Failed empty String");
+ assertEquals("control", StringUtils.stripAccents("control"), "Failed to handle non-accented text");
+ assertEquals("eclair", StringUtils.stripAccents("\u00E9clair"), "Failed to handle easy example");
+ assertEquals("ALOSZZCN aloszzcn", StringUtils.stripAccents("\u0104\u0141\u00D3\u015A\u017B\u0179\u0106\u0143 "
+ + "\u0105\u0142\u00F3\u015B\u017C\u017A\u0107\u0144"));
+ }
+
+ @Test
+ @Disabled
+ public void testStripAccents_Korean() {
+ // LANG-1655
+ final String input = "잊지마 넌 흐린 어둠사이 왼손으로 그린 별 하나";
+ assertEquals(input, StringUtils.stripAccents(input), "Failed to handle non-accented text");
+
+ }
+}