aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/AdtUtilsTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/AdtUtilsTest.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/AdtUtilsTest.java127
1 files changed, 127 insertions, 0 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/AdtUtilsTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/AdtUtilsTest.java
new file mode 100644
index 000000000..c1e94ac69
--- /dev/null
+++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/AdtUtilsTest.java
@@ -0,0 +1,127 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Eclipse Public License, Version 1.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/org/documents/epl-v10.php
+ *
+ * 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.android.ide.eclipse.adt;
+
+import junit.framework.TestCase;
+
+import java.util.Locale;
+
+@SuppressWarnings("javadoc")
+public class AdtUtilsTest extends TestCase {
+ public void testExtractClassName() {
+ assertEquals("Foo", AdtUtils.extractClassName("foo"));
+ assertEquals("Foobar", AdtUtils.extractClassName("foo bar"));
+ assertEquals("JavasTypeSystem", AdtUtils.extractClassName("Java's Type System"));
+ assertEquals("Foo", AdtUtils.extractClassName("1foo "));
+ }
+
+ public void testStripAllExtensions() {
+ assertEquals("", AdtUtils.stripAllExtensions(""));
+ assertEquals("foobar", AdtUtils.stripAllExtensions("foobar"));
+ assertEquals("foobar", AdtUtils.stripAllExtensions("foobar.png"));
+ assertEquals("foobar", AdtUtils.stripAllExtensions("foobar.9.png"));
+ assertEquals(".profile", AdtUtils.stripAllExtensions(".profile"));
+ }
+
+ public void testStripLastExtension() {
+ assertEquals("", AdtUtils.stripLastExtension(""));
+ assertEquals("foobar", AdtUtils.stripLastExtension("foobar"));
+ assertEquals("foobar", AdtUtils.stripLastExtension("foobar.png"));
+ assertEquals("foobar.9", AdtUtils.stripLastExtension("foobar.9.png"));
+ assertEquals(".profile", AdtUtils.stripLastExtension(".profile"));
+ }
+
+ public void testCapitalize() {
+ assertEquals("UPPER", AdtUtils.capitalize("UPPER"));
+ assertEquals("Lower", AdtUtils.capitalize("lower"));
+ assertEquals("Capital", AdtUtils.capitalize("Capital"));
+ assertEquals("CamelCase", AdtUtils.capitalize("camelCase"));
+ assertEquals("", AdtUtils.capitalize(""));
+ assertSame("Foo", AdtUtils.capitalize("Foo"));
+ assertNull(null, AdtUtils.capitalize(null));
+ }
+
+ public void testCamelCaseToUnderlines() {
+ assertEquals("", AdtUtils.camelCaseToUnderlines(""));
+ assertEquals("foo", AdtUtils.camelCaseToUnderlines("foo"));
+ assertEquals("foo", AdtUtils.camelCaseToUnderlines("Foo"));
+ assertEquals("foo_bar", AdtUtils.camelCaseToUnderlines("FooBar"));
+ assertEquals("test_xml", AdtUtils.camelCaseToUnderlines("testXML"));
+ assertEquals("test_foo", AdtUtils.camelCaseToUnderlines("testFoo"));
+ }
+
+ public void testUnderlinesToCamelCase() {
+ assertEquals("", AdtUtils.underlinesToCamelCase(""));
+ assertEquals("", AdtUtils.underlinesToCamelCase("_"));
+ assertEquals("Foo", AdtUtils.underlinesToCamelCase("foo"));
+ assertEquals("FooBar", AdtUtils.underlinesToCamelCase("foo_bar"));
+ assertEquals("FooBar", AdtUtils.underlinesToCamelCase("foo__bar"));
+ assertEquals("Foo", AdtUtils.underlinesToCamelCase("foo_"));
+ }
+
+ public void testStripSuffix() {
+ assertEquals("Foo", AdtUtils.stripSuffix("Foo", ""));
+ assertEquals("Fo", AdtUtils.stripSuffix("Foo", "o"));
+ assertEquals("F", AdtUtils.stripSuffix("Fo", "o"));
+ assertEquals("", AdtUtils.stripSuffix("Foo", "Foo"));
+ assertEquals("LinearLayout_Layout",
+ AdtUtils.stripSuffix("LinearLayout_LayoutParams", "Params"));
+ assertEquals("Foo", AdtUtils.stripSuffix("Foo", "Bar"));
+ }
+
+ public void testFormatFloatValue() throws Exception {
+ assertEquals("1", AdtUtils.formatFloatAttribute(1.0f));
+ assertEquals("2", AdtUtils.formatFloatAttribute(2.0f));
+ assertEquals("1.50", AdtUtils.formatFloatAttribute(1.5f));
+ assertEquals("1.50", AdtUtils.formatFloatAttribute(1.50f));
+ assertEquals("1.51", AdtUtils.formatFloatAttribute(1.51f));
+ assertEquals("1.51", AdtUtils.formatFloatAttribute(1.514542f));
+ assertEquals("1.52", AdtUtils.formatFloatAttribute(1.516542f));
+ assertEquals("-1.51", AdtUtils.formatFloatAttribute(-1.51f));
+ assertEquals("-1", AdtUtils.formatFloatAttribute(-1f));
+ }
+
+ public void testFormatFloatValueLocale() throws Exception {
+ // Ensure that the layout float values aren't affected by
+ // locale settings, like using commas instead of of periods
+ Locale originalDefaultLocale = Locale.getDefault();
+
+ try {
+ Locale.setDefault(Locale.FRENCH);
+
+ // Ensure that this is a locale which uses a comma instead of a period:
+ assertEquals("5,24", String.format("%.2f", 5.236f));
+
+ // Ensure that the formatFloatAttribute is immune
+ assertEquals("1.50", AdtUtils.formatFloatAttribute(1.5f));
+ } finally {
+ Locale.setDefault(originalDefaultLocale);
+ }
+ }
+
+ public void testEscapeUnicodeChars() throws Exception {
+ assertEquals("", AdtUtils.replaceUnicodeEscapes(""));
+ assertEquals("foo bar", AdtUtils.replaceUnicodeEscapes("foo bar"));
+ assertEquals("\u25C0", AdtUtils.replaceUnicodeEscapes("\\u25C0"));
+ assertEquals("!\u25C0\u25C1!", AdtUtils.replaceUnicodeEscapes("!\\u25C0\\u25C1!"));
+ assertEquals("\u1234\\", AdtUtils.replaceUnicodeEscapes("\\u1234\\"));
+
+ assertEquals("\\U25C0", AdtUtils.replaceUnicodeEscapes("\\U25C0")); // no unicode expand
+ assertEquals("\\u25C", AdtUtils.replaceUnicodeEscapes("\\u25C")); // no unicode expand
+ assertEquals("\\\\u25C0", AdtUtils.replaceUnicodeEscapes("\\\\u25C0")); // escaped
+ assertEquals("\\u123\\", AdtUtils.replaceUnicodeEscapes("\\u123\\")); // broken
+ }
+}