Fix international tests
Tests have been broken again by recent changes to subtype choice within Latin IME. This fixes the problem and all tests pass again. This change also includes a small fix to one test that was checking for something irrelevant. Change-Id: I6a03dea24f99b0d2ad84c4161a8413f3060bb811main
parent
95e3008d25
commit
912ad4614f
|
@ -31,6 +31,7 @@ import android.view.inputmethod.InputMethodInfo;
|
|||
import android.view.inputmethod.InputMethodManager;
|
||||
import android.view.inputmethod.InputMethodSubtype;
|
||||
|
||||
import com.android.inputmethod.annotations.UsedForTesting;
|
||||
import com.android.inputmethod.keyboard.KeyboardSwitcher;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -239,7 +240,14 @@ public final class SubtypeSwitcher {
|
|||
return mNeedsToDisplayLanguage.getValue();
|
||||
}
|
||||
|
||||
private static Locale sForcedLocaleForTesting = null;
|
||||
@UsedForTesting
|
||||
void forceLocale(final Locale locale) {
|
||||
sForcedLocaleForTesting = locale;
|
||||
}
|
||||
|
||||
public Locale getCurrentSubtypeLocale() {
|
||||
if (null != sForcedLocaleForTesting) return sForcedLocaleForTesting;
|
||||
return SubtypeLocale.getSubtypeLocale(getCurrentSubtype());
|
||||
}
|
||||
|
||||
|
|
|
@ -117,7 +117,5 @@ public class BlueUnderlineTests extends InputTestsBase {
|
|||
// Now simulate the user moving the cursor.
|
||||
SpanGetter span = new SpanGetter(mTextView.getText(), UnderlineSpan.class);
|
||||
assertNull("should not be composing, so should not have an underline span", span.mSpan);
|
||||
span = new SpanGetter(mTextView.getText(), SuggestionSpan.class);
|
||||
assertNull("should not be composing, so should not have an underline span", span.mSpan);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,8 +55,6 @@ public class InputTestsBase extends ServiceTestCase<LatinIME> {
|
|||
protected MyTextView mTextView;
|
||||
protected View mInputView;
|
||||
protected InputConnection mInputConnection;
|
||||
private final HashMap<String, InputMethodSubtype> mSubtypeMap =
|
||||
new HashMap<String, InputMethodSubtype>();
|
||||
|
||||
// A helper class to ease span tests
|
||||
public static class SpanGetter {
|
||||
|
@ -143,7 +141,6 @@ public class InputTestsBase extends ServiceTestCase<LatinIME> {
|
|||
final boolean previousDebugSetting = setDebugMode(true);
|
||||
mLatinIME.onCreate();
|
||||
setDebugMode(previousDebugSetting);
|
||||
initSubtypeMap();
|
||||
final EditorInfo ei = new EditorInfo();
|
||||
ei.inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT;
|
||||
final InputConnection ic = mTextView.onCreateInputConnection(ei);
|
||||
|
@ -161,26 +158,6 @@ public class InputTestsBase extends ServiceTestCase<LatinIME> {
|
|||
changeLanguage("en_US");
|
||||
}
|
||||
|
||||
private void initSubtypeMap() {
|
||||
final InputMethodManager imm = (InputMethodManager)mLatinIME.getSystemService(
|
||||
Context.INPUT_METHOD_SERVICE);
|
||||
final String packageName = mLatinIME.getPackageName();
|
||||
// The IMEs and subtypes don't need to be enabled to run this test because IMF isn't
|
||||
// involved here.
|
||||
for (final InputMethodInfo imi : imm.getInputMethodList()) {
|
||||
if (imi.getPackageName().equals(packageName)) {
|
||||
final int subtypeCount = imi.getSubtypeCount();
|
||||
for (int i = 0; i < subtypeCount; i++) {
|
||||
final InputMethodSubtype ims = imi.getSubtypeAt(i);
|
||||
final String locale = ims.getLocale();
|
||||
mSubtypeMap.put(locale, ims);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
fail("LatinIME is not found");
|
||||
}
|
||||
|
||||
// We need to run the messages added to the handler from LatinIME. The only way to do
|
||||
// that is to call Looper#loop() on the right looper, so we're going to get the looper
|
||||
// object and call #loop() here. The messages in the handler actually run on the UI
|
||||
|
@ -270,12 +247,8 @@ public class InputTestsBase extends ServiceTestCase<LatinIME> {
|
|||
}
|
||||
|
||||
protected void changeLanguage(final String locale) {
|
||||
final InputMethodSubtype subtype = mSubtypeMap.get(locale);
|
||||
mTextView.mCurrentLocale = LocaleUtils.constructLocaleFromString(locale);
|
||||
if (subtype == null) {
|
||||
fail("InputMethodSubtype for locale " + locale + " is not enabled");
|
||||
}
|
||||
SubtypeSwitcher.getInstance().onSubtypeChanged(subtype);
|
||||
SubtypeSwitcher.getInstance().forceLocale(mTextView.mCurrentLocale);
|
||||
mLatinIME.loadKeyboard();
|
||||
mKeyboard = mLatinIME.mKeyboardSwitcher.getKeyboard();
|
||||
waitForDictionaryToBeLoaded();
|
||||
|
|
Loading…
Reference in New Issue