aboutsummaryrefslogtreecommitdiffstats
path: root/tests/src
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src')
-rw-r--r--tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java8
-rw-r--r--tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java93
2 files changed, 97 insertions, 4 deletions
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java
index 0fb6ff2b4..75bd60999 100644
--- a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java
@@ -18,6 +18,7 @@ package com.android.inputmethod.keyboard;
import android.content.Context;
import android.content.res.Resources;
+import android.preference.PreferenceManager;
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;
import android.view.ContextThemeWrapper;
@@ -40,9 +41,6 @@ import java.util.Locale;
@SmallTest
public class KeyboardLayoutSetTestsBase extends AndroidTestCase {
- private static final KeyboardTheme DEFAULT_KEYBOARD_THEME =
- KeyboardTheme.getDefaultKeyboardTheme();
-
// All input method subtypes of LatinIME.
private final ArrayList<InputMethodSubtype> mAllSubtypesList = CollectionUtils.newArrayList();
private final ArrayList<InputMethodSubtype> mAsciiCapableSubtypesList =
@@ -58,7 +56,9 @@ public class KeyboardLayoutSetTestsBase extends AndroidTestCase {
super.setUp();
mScreenMetrics = mContext.getResources().getInteger(R.integer.config_screen_metrics);
- mThemeContext = new ContextThemeWrapper(mContext, DEFAULT_KEYBOARD_THEME.mStyleId);
+ final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(
+ PreferenceManager.getDefaultSharedPreferences(mContext));
+ mThemeContext = new ContextThemeWrapper(mContext, keyboardTheme.mStyleId);
RichInputMethodManager.init(mThemeContext);
final RichInputMethodManager richImm = RichInputMethodManager.getInstance();
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java b/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java
new file mode 100644
index 000000000..9b532fe6f
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2014 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.inputmethod.keyboard;
+
+import android.content.SharedPreferences;
+import android.os.Build.VERSION_CODES;
+import android.preference.PreferenceManager;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+@SmallTest
+public class KeyboardThemeTests extends AndroidTestCase {
+ private SharedPreferences mPrefs;
+
+ private static final int THEME_ID_NULL = -1;
+ private static final int THEME_ID_ICS = KeyboardTheme.THEME_ID_ICS;
+ private static final int THEME_ID_KLP = KeyboardTheme.THEME_ID_KLP;
+ private static final int THEME_ID_LMP = KeyboardTheme.THEME_ID_LMP;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ mPrefs = PreferenceManager.getDefaultSharedPreferences(getContext());
+ }
+
+ private void assertDefaultKeyboardTheme(final int sdkVersion, final int oldThemeId,
+ final int expectedThemeId) {
+ if (oldThemeId == THEME_ID_NULL) {
+ mPrefs.edit().remove(KeyboardTheme.KITKAT_KEYBOARD_THEME_KEY).apply();
+ } else {
+ final String themeIdString = Integer.toString(oldThemeId);
+ mPrefs.edit().putString(KeyboardTheme.KITKAT_KEYBOARD_THEME_KEY, themeIdString).apply();
+ }
+ final KeyboardTheme defaultTheme =
+ KeyboardTheme.getDefaultKeyboardTheme(mPrefs, sdkVersion);
+ assertNotNull(defaultTheme);
+ assertEquals(expectedThemeId, defaultTheme.mThemeId);
+ assertFalse(mPrefs.contains(KeyboardTheme.KITKAT_KEYBOARD_THEME_KEY));
+ }
+
+ private void assertDefaultKeyboardThemeICS(final int sdkVersion) {
+ assertDefaultKeyboardTheme(sdkVersion, THEME_ID_NULL, THEME_ID_ICS);
+ assertDefaultKeyboardTheme(sdkVersion, THEME_ID_ICS, THEME_ID_ICS);
+ assertDefaultKeyboardTheme(sdkVersion, THEME_ID_KLP, THEME_ID_KLP);
+ }
+
+ private void assertDefaultKeyboardThemeKLP(final int sdkVersion) {
+ assertDefaultKeyboardTheme(sdkVersion, THEME_ID_NULL, THEME_ID_KLP);
+ assertDefaultKeyboardTheme(sdkVersion, THEME_ID_ICS, THEME_ID_ICS);
+ assertDefaultKeyboardTheme(sdkVersion, THEME_ID_KLP, THEME_ID_KLP);
+ }
+
+ private void assertDefaultKeyboardThemeLMP(final int sdkVersion) {
+ // Forced to switch to LMP theme.
+ assertDefaultKeyboardTheme(sdkVersion, THEME_ID_NULL, THEME_ID_LMP);
+ assertDefaultKeyboardTheme(sdkVersion, THEME_ID_ICS, THEME_ID_LMP);
+ assertDefaultKeyboardTheme(sdkVersion, THEME_ID_KLP, THEME_ID_LMP);
+ }
+
+ public void testDefaultKeyboardThemeICS() {
+ assertDefaultKeyboardThemeICS(VERSION_CODES.ICE_CREAM_SANDWICH);
+ assertDefaultKeyboardThemeICS(VERSION_CODES.ICE_CREAM_SANDWICH_MR1);
+ }
+
+ public void testDefaultKeyboardThemeJB() {
+ assertDefaultKeyboardThemeICS(VERSION_CODES.JELLY_BEAN);
+ assertDefaultKeyboardThemeICS(VERSION_CODES.JELLY_BEAN_MR1);
+ assertDefaultKeyboardThemeICS(VERSION_CODES.JELLY_BEAN_MR2);
+ }
+
+ public void testDefaultKeyboardThemeKLP() {
+ assertDefaultKeyboardThemeKLP(VERSION_CODES.KITKAT);
+ }
+
+ public void testDefaultKeyboardThemeLMP() {
+ // TODO: Update this constant once the *next* version becomes available.
+ assertDefaultKeyboardThemeLMP(VERSION_CODES.CUR_DEVELOPMENT);
+ }
+}