Don't rely on spell checker proximity in tests
This fixes the input logic tests that were broken and suppresses their dependency upon the spell checker proximity. Instead, it gets the Keyboard instance from Latin IME and uses the actual coordinates, which results in a test run closer to what actually happens during typing. Change-Id: I3a81d249ee7fb3ac6ae6940aa2e8b2421e829e5cmain
parent
9c4396abb3
commit
109728193e
|
@ -196,7 +196,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
|
||||||
private InputMethodManagerCompatWrapper mImm;
|
private InputMethodManagerCompatWrapper mImm;
|
||||||
private Resources mResources;
|
private Resources mResources;
|
||||||
private SharedPreferences mPrefs;
|
private SharedPreferences mPrefs;
|
||||||
private final KeyboardSwitcher mKeyboardSwitcher;
|
/* package for tests */ final KeyboardSwitcher mKeyboardSwitcher;
|
||||||
private final SubtypeSwitcher mSubtypeSwitcher;
|
private final SubtypeSwitcher mSubtypeSwitcher;
|
||||||
private VoiceProxy mVoiceProxy;
|
private VoiceProxy mVoiceProxy;
|
||||||
private boolean mShouldSwitchToLastSubtype = true;
|
private boolean mShouldSwitchToLastSubtype = true;
|
||||||
|
|
|
@ -36,6 +36,7 @@ import android.view.inputmethod.InputConnection;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import com.android.inputmethod.keyboard.Key;
|
||||||
import com.android.inputmethod.keyboard.Keyboard;
|
import com.android.inputmethod.keyboard.Keyboard;
|
||||||
import com.android.inputmethod.keyboard.KeyboardActionListener;
|
import com.android.inputmethod.keyboard.KeyboardActionListener;
|
||||||
import com.android.inputmethod.latin.spellcheck.AndroidSpellCheckerService; // for proximity info
|
import com.android.inputmethod.latin.spellcheck.AndroidSpellCheckerService; // for proximity info
|
||||||
|
@ -49,6 +50,7 @@ public class InputLogicTests extends ServiceTestCase<LatinIME> {
|
||||||
private static final String PREF_DEBUG_MODE = "debug_mode";
|
private static final String PREF_DEBUG_MODE = "debug_mode";
|
||||||
|
|
||||||
private LatinIME mLatinIME;
|
private LatinIME mLatinIME;
|
||||||
|
private Keyboard mKeyboard;
|
||||||
private TextView mTextView;
|
private TextView mTextView;
|
||||||
private InputConnection mInputConnection;
|
private InputConnection mInputConnection;
|
||||||
|
|
||||||
|
@ -95,6 +97,7 @@ public class InputLogicTests extends ServiceTestCase<LatinIME> {
|
||||||
mLatinIME.onStartInputView(ei, false);
|
mLatinIME.onStartInputView(ei, false);
|
||||||
mLatinIME.onCreateInputMethodInterface().startInput(ic, ei);
|
mLatinIME.onCreateInputMethodInterface().startInput(ic, ei);
|
||||||
mInputConnection = ic;
|
mInputConnection = ic;
|
||||||
|
mKeyboard = mLatinIME.mKeyboardSwitcher.getKeyboard();
|
||||||
changeLanguage("en_US");
|
changeLanguage("en_US");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -152,6 +155,14 @@ public class InputLogicTests extends ServiceTestCase<LatinIME> {
|
||||||
// to keep these tests as pinpoint as possible and avoid bringing it too many dependencies,
|
// to keep these tests as pinpoint as possible and avoid bringing it too many dependencies,
|
||||||
// but keep them in mind if something breaks. Commenting them out as is should work.
|
// but keep them in mind if something breaks. Commenting them out as is should work.
|
||||||
//mLatinIME.onPressKey(codePoint);
|
//mLatinIME.onPressKey(codePoint);
|
||||||
|
for (final Key key : mKeyboard.mKeys) {
|
||||||
|
if (key.mCode == codePoint) {
|
||||||
|
final int x = key.mX + key.mWidth / 2;
|
||||||
|
final int y = key.mY + key.mHeight / 2;
|
||||||
|
mLatinIME.onCodeInput(codePoint, x, y);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
mLatinIME.onCodeInput(codePoint,
|
mLatinIME.onCodeInput(codePoint,
|
||||||
KeyboardActionListener.SPELL_CHECKER_COORDINATE,
|
KeyboardActionListener.SPELL_CHECKER_COORDINATE,
|
||||||
KeyboardActionListener.SPELL_CHECKER_COORDINATE);
|
KeyboardActionListener.SPELL_CHECKER_COORDINATE);
|
||||||
|
|
Loading…
Reference in New Issue