blob: 5d919c69c5ed917b5060db14ac95ecbc32bbcdc1 [file] [log] [blame]
/*
* 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());
}
}