blob: 35de238df57be3c9c6604d33d37775186486d100 [file]
/*
* 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
*
* https://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.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import org.junit.jupiter.api.Test;
/**
* Tests {@link StringUtils} trim methods.
*/
class StringUtilsTrimTest extends AbstractLangTest {
private static final String FOO = "foo";
@Test
void testAsciiTrimControl() {
// null input returns null
assertNull(StringUtils.trimAsciiControl(null));
// empty string stays empty
assertEquals("", StringUtils.trimAsciiControl(""));
// empty string stays empty
assertEquals("", StringUtils.trimAsciiControl("\u007f"));
// no control chars: unchanged
assertEquals(FOO, StringUtils.trimAsciiControl(FOO));
// spaces are NOT stripped (space is char 32, not a control char)
assertEquals(" " + FOO + " ", StringUtils.trimAsciiControl(" " + FOO + " "));
// trailing NUL (\u0000) is stripped
assertEquals(FOO, StringUtils.trimAsciiControl(FOO + "\u0000"));
// leading NUL (\u0000) is stripped
assertEquals(FOO, StringUtils.trimAsciiControl("\u0000" + FOO));
// control chars on both ends are stripped
assertEquals(FOO, StringUtils.trimAsciiControl("\t\r\n" + FOO + "\t\r\n"));
// only control chars becomes empty string
assertEquals("", StringUtils.trimAsciiControl("\u0001\u0002\u001F"));
// embedded control chars are NOT stripped
assertEquals("a\u0001b", StringUtils.trimAsciiControl("a\u0001b"));
// space in the middle preserved, control chars on ends stripped
assertEquals(" " + FOO + " ", StringUtils.trimAsciiControl("\u0001 " + FOO + " \u0001"));
// char 31 (unit separator) is stripped; char 32 (space) is not
assertEquals(" abc ", StringUtils.trimAsciiControl("\u001F abc \u001F"));
}
@Test
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
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
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));
}
}