/* * Copyright (C) 2013 The Android Open Source Project * * Licensed 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 * * http://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 com.android.sdklib; import static com.android.sdklib.SdkVersionInfo.HIGHEST_KNOWN_API; import static com.android.sdklib.SdkVersionInfo.camelCaseToUnderlines; import static com.android.sdklib.SdkVersionInfo.getApiByBuildCode; import static com.android.sdklib.SdkVersionInfo.getApiByPreviewName; import static com.android.sdklib.SdkVersionInfo.getBuildCode; import static com.android.sdklib.SdkVersionInfo.getCodeName; import static com.android.sdklib.SdkVersionInfo.getVersion; import static com.android.sdklib.SdkVersionInfo.underlinesToCamelCase; import junit.framework.TestCase; public class SdkVersionInfoTest extends TestCase { public void testGetAndroidName() { assertEquals("API 16: Android 4.1 (Jelly Bean)", SdkVersionInfo.getAndroidName(16)); // Future: if we don't have a name, don't include "null" as a name assertEquals("API 500", SdkVersionInfo.getAndroidName(500)); } public void testGetBuildCode() { assertEquals("JELLY_BEAN", getBuildCode(16)); } public void testGetApiByPreviewName() { assertEquals(5, getApiByPreviewName("Eclair", false)); assertEquals(18, getApiByPreviewName("JellyBeanMR2", false)); assertEquals(21, getApiByPreviewName("Lollipop", false)); assertEquals(21, getApiByPreviewName("L", false)); assertEquals(-1, getApiByPreviewName("UnknownName", false)); assertEquals(HIGHEST_KNOWN_API + 1, getApiByPreviewName("UnknownName", true)); } public void testGetApiByBuildCode() { assertEquals(7, getApiByBuildCode("ECLAIR_MR1", false)); assertEquals(16, getApiByBuildCode("JELLY_BEAN", false)); for (int api = 1; api <= HIGHEST_KNOWN_API; api++) { assertEquals(api, getApiByBuildCode(getBuildCode(api), false)); } assertEquals(-1, getApiByBuildCode("K_SURPRISE_SURPRISE", false)); assertEquals(HIGHEST_KNOWN_API + 1, getApiByBuildCode("K_SURPRISE_SURPRISE", true)); } public void testGetCodeName() { assertNull(getCodeName(1)); assertNull(getCodeName(2)); assertEquals("Cupcake", getCodeName(3)); assertEquals("KitKat", getCodeName(19)); assertEquals("Lollipop", getCodeName(21)); } public void testCamelCaseToUnderlines() { assertEquals("", camelCaseToUnderlines("")); assertEquals("foo", camelCaseToUnderlines("foo")); assertEquals("foo", camelCaseToUnderlines("Foo")); assertEquals("foo_bar", camelCaseToUnderlines("FooBar")); assertEquals("test_xml", camelCaseToUnderlines("testXML")); assertEquals("test_foo", camelCaseToUnderlines("testFoo")); assertEquals("jelly_bean_mr2", camelCaseToUnderlines("JellyBeanMR2")); } public void testUnderlinesToCamelCase() { assertEquals("", underlinesToCamelCase("")); assertEquals("", underlinesToCamelCase("_")); assertEquals("Foo", underlinesToCamelCase("foo")); assertEquals("FooBar", underlinesToCamelCase("foo_bar")); assertEquals("FooBar", underlinesToCamelCase("foo__bar")); assertEquals("Foo", underlinesToCamelCase("foo_")); assertEquals("JellyBeanMr2", underlinesToCamelCase("jelly_bean_mr2")); } @SuppressWarnings("ConstantConditions") public void testGetAndroidVersion() { assertNull(getVersion("", null)); assertNull(getVersion("4H", null)); assertEquals(4, getVersion("4", null).getApiLevel()); assertNull(getVersion("4", null).getCodename()); assertEquals("4", getVersion("4", null).getApiString()); assertEquals(19, getVersion("19", null).getApiLevel()); // ICS is API 14, but when expressed as a preview platform, it's not yet 14 assertEquals(13, getVersion("IceCreamSandwich", null).getApiLevel()); assertEquals("IceCreamSandwich", getVersion("IceCreamSandwich", null).getCodename()); assertEquals(HIGHEST_KNOWN_API, getVersion("BackToTheFuture", null).getApiLevel()); assertEquals("BackToTheFuture", getVersion("BackToTheFuture", null).getCodename()); } }