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: I3a81d249ee7fb3ac6ae6940aa2e8b2421e829e5c
main
Jean Chalard 2012-03-22 18:08:23 +09:00
parent 9c4396abb3
commit 109728193e
2 changed files with 12 additions and 1 deletions

View File

@ -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;

View File

@ -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);