/* * 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'")); } }