blob: dc4194ad50cfacf6cc446bc78898e4b1183d22d8 [file] [log] [blame]
/*
* Copyright (c) 2011, the Dart project authors.
*
* Licensed under the Eclipse Public License v1.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.eclipse.org/legal/epl-v10.html
*
* 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 com.google.dart.tools.core.utilities.general;
import junit.framework.TestCase;
import org.junit.Assert;
public class StringUtilitiesTest extends TestCase {
public void test_EMPTY() {
assertEquals("", StringUtilities.EMPTY);
}
public void test_EMPTY_ARRAY() {
assertEquals(0, StringUtilities.EMPTY_ARRAY.length);
}
public void test_findCommonOverlap() {
assertEquals(0, StringUtilities.findCommonOverlap("", "abcd"));
assertEquals(3, StringUtilities.findCommonOverlap("abc", "abcd"));
assertEquals(0, StringUtilities.findCommonOverlap("123456", "abcd"));
assertEquals(3, StringUtilities.findCommonOverlap("123456xxx", "xxxabcd"));
}
public void test_findCommonPrefix() {
assertEquals(0, StringUtilities.findCommonPrefix("abc", "xyz"));
assertEquals(4, StringUtilities.findCommonPrefix("1234abcdef", "1234xyz"));
assertEquals(4, StringUtilities.findCommonPrefix("1234", "1234xyz"));
}
public void test_findCommonSuffix() {
assertEquals(0, StringUtilities.findCommonSuffix("abc", "xyz"));
assertEquals(4, StringUtilities.findCommonSuffix("abcdef1234", "xyz1234"));
assertEquals(4, StringUtilities.findCommonSuffix("1234", "xyz1234"));
}
public void test_StringUtilities_endsWithIgnoreCase() {
// null cases
Assert.assertFalse(StringUtilities.endsWithIgnoreCase(null, null));
Assert.assertFalse(StringUtilities.endsWithIgnoreCase("", null));
Assert.assertFalse(StringUtilities.endsWithIgnoreCase(null, ""));
// trivial case: string is non-null and suffix is ""
Assert.assertTrue(StringUtilities.endsWithIgnoreCase("", ""));
Assert.assertTrue(StringUtilities.endsWithIgnoreCase("a", ""));
// non-trivial cases: ignore case not needed
Assert.assertTrue(StringUtilities.endsWithIgnoreCase("abcd", "abcd"));
Assert.assertTrue(StringUtilities.endsWithIgnoreCase("abcd", "bcd"));
Assert.assertTrue(StringUtilities.endsWithIgnoreCase("abcd", "cd"));
Assert.assertTrue(StringUtilities.endsWithIgnoreCase("abcd", "d"));
// non-trivial cases: ignore case needed
Assert.assertTrue(StringUtilities.endsWithIgnoreCase("abcd", "ABCD"));
Assert.assertTrue(StringUtilities.endsWithIgnoreCase("abcd", "BCD"));
Assert.assertTrue(StringUtilities.endsWithIgnoreCase("abcd", "CD"));
Assert.assertTrue(StringUtilities.endsWithIgnoreCase("abcd", "D"));
// non-trivial cases: additional tests which tests the method in the way that the editor will
// use this method
Assert.assertTrue(StringUtilities.endsWithIgnoreCase("name.html", ".html"));
Assert.assertTrue(StringUtilities.endsWithIgnoreCase("name.HTML", ".html"));
Assert.assertTrue(StringUtilities.endsWithIgnoreCase("name.HtMl", ".html"));
Assert.assertTrue(StringUtilities.endsWithIgnoreCase("name.hTmL", ".html"));
Assert.assertTrue(StringUtilities.endsWithIgnoreCase("name.dart", ".dart"));
Assert.assertTrue(StringUtilities.endsWithIgnoreCase("name.DART", ".dart"));
Assert.assertTrue(StringUtilities.endsWithIgnoreCase("name.DaRt", ".dart"));
Assert.assertTrue(StringUtilities.endsWithIgnoreCase("name.dArT", ".dart"));
// non-trivial cases again, but with an incorrect suffix
Assert.assertFalse(StringUtilities.endsWithIgnoreCase("name.htm", ".html"));
Assert.assertFalse(StringUtilities.endsWithIgnoreCase("name.HTM", ".html"));
Assert.assertFalse(StringUtilities.endsWithIgnoreCase("name.HtM", ".html"));
Assert.assertFalse(StringUtilities.endsWithIgnoreCase("name.hTm", ".html"));
Assert.assertFalse(StringUtilities.endsWithIgnoreCase("name.dar", ".dart"));
Assert.assertFalse(StringUtilities.endsWithIgnoreCase("name.DAR", ".dart"));
Assert.assertFalse(StringUtilities.endsWithIgnoreCase("name.DaR", ".dart"));
Assert.assertFalse(StringUtilities.endsWithIgnoreCase("name.dAr", ".dart"));
}
public void test_StringUtilities_parseArgumentString() {
Assert.assertArrayEquals(
new String[] {"one", "two"},
StringUtilities.parseArgumentString("one two"));
Assert.assertArrayEquals(
new String[] {"one", "two two"},
StringUtilities.parseArgumentString("one \"two two\""));
Assert.assertArrayEquals(
new String[] {"one", "arg='two two'"},
StringUtilities.parseArgumentString("one arg='two two'"));
}
}