diff options
Diffstat (limited to 'tests/src')
-rw-r--r-- | tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java | 8 | ||||
-rw-r--r-- | tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java | 93 |
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); + } +} |