| /* |
| * 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 |
| } |
| } |