Add additional subtypes test
Change-Id: I2994fd72bc284c84757f5a2bfa8045aa574a8fbc
diff --git a/java/src/com/android/inputmethod/latin/utils/AdditionalSubtypeUtils.java b/java/src/com/android/inputmethod/latin/utils/AdditionalSubtypeUtils.java
index ef1d0f4..2bb30a2 100644
--- a/java/src/com/android/inputmethod/latin/utils/AdditionalSubtypeUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/AdditionalSubtypeUtils.java
@@ -27,6 +27,7 @@
import android.util.Log;
import android.view.inputmethod.InputMethodSubtype;
+import com.android.inputmethod.annotations.UsedForTesting;
import com.android.inputmethod.compat.InputMethodSubtypeCompatUtils;
import com.android.inputmethod.latin.R;
@@ -42,6 +43,7 @@
// This utility class is not publicly instantiable.
}
+ @UsedForTesting
public static boolean isAdditionalSubtype(final InputMethodSubtype subtype) {
return subtype.containsExtraValueKey(IS_ADDITIONAL_SUBTYPE);
}
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java
index 5c8a598..cd97fc9 100644
--- a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java
@@ -43,6 +43,7 @@
public class KeyboardLayoutSetTestsBase extends AndroidTestCase {
private static final int NUMBER_OF_SUBTYPES = 63;
private static final int NUMBER_OF_ASCII_CAPABLE_SUBTYPES = 40;
+ private static final int NUMBER_OF_PREDEFINED_ADDITIONAL_SUBTYPES = 2;
private static final KeyboardTheme DEFAULT_KEYBOARD_THEME =
KeyboardSwitcher.KEYBOARD_THEMES[KeyboardSwitcher.THEME_INDEX_DEFAULT];
@@ -51,6 +52,8 @@
private final ArrayList<InputMethodSubtype> mAllSubtypesList = CollectionUtils.newArrayList();
private final ArrayList<InputMethodSubtype> mAsciiCapableSubtypesList =
CollectionUtils.newArrayList();
+ private final ArrayList<InputMethodSubtype> mAdditionalSubtypesList =
+ CollectionUtils.newArrayList();
private Context mThemeContext;
private int mScreenMetrics;
@@ -68,6 +71,10 @@
final int subtypeCount = imi.getSubtypeCount();
for (int index = 0; index < subtypeCount; index++) {
final InputMethodSubtype subtype = imi.getSubtypeAt(index);
+ if (AdditionalSubtypeUtils.isAdditionalSubtype(subtype)) {
+ mAdditionalSubtypesList.add(subtype);
+ continue;
+ }
mAllSubtypesList.add(subtype);
if (InputMethodSubtypeCompatUtils.isAsciiCapable(subtype)) {
mAsciiCapableSubtypesList.add(subtype);
@@ -101,6 +108,11 @@
NUMBER_OF_ASCII_CAPABLE_SUBTYPES, mAsciiCapableSubtypesList.size());
}
+ public final void testAdditionalSubtypesCount() {
+ assertEquals(toString(mAdditionalSubtypesList),
+ NUMBER_OF_PREDEFINED_ADDITIONAL_SUBTYPES, mAdditionalSubtypesList.size());
+ }
+
protected final InputMethodSubtype getSubtype(final Locale locale,
final String keyboardLayout) {
for (final InputMethodSubtype subtype : mAllSubtypesList) {