diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 48fb798098b8226ba6bf9ba43bde8e638d525ebc..7903820f785a6fcb62c93708fe729880bee54924 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -197,7 +197,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
     private InputMethodManagerCompatWrapper mImm;
     private Resources mResources;
     private SharedPreferences mPrefs;
-    private final KeyboardSwitcher mKeyboardSwitcher;
+    /* package for tests */ final KeyboardSwitcher mKeyboardSwitcher;
     private final SubtypeSwitcher mSubtypeSwitcher;
     private VoiceProxy mVoiceProxy;
     private boolean mShouldSwitchToLastSubtype = true;
diff --git a/tests/src/com/android/inputmethod/latin/InputLogicTests.java b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
index 595fe5b106622683935ba2dfd1b9ffce81451dd8..19e1c3d2ba4d55902be4ba690ae6e582c272be6d 100644
--- a/tests/src/com/android/inputmethod/latin/InputLogicTests.java
+++ b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
@@ -36,6 +36,7 @@ import android.view.inputmethod.InputConnection;
 import android.widget.FrameLayout;
 import android.widget.TextView;
 
+import com.android.inputmethod.keyboard.Key;
 import com.android.inputmethod.keyboard.Keyboard;
 import com.android.inputmethod.keyboard.KeyboardActionListener;
 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 LatinIME mLatinIME;
+    private Keyboard mKeyboard;
     private TextView mTextView;
     private InputConnection mInputConnection;
 
@@ -95,6 +97,7 @@ public class InputLogicTests extends ServiceTestCase<LatinIME> {
         mLatinIME.onStartInputView(ei, false);
         mLatinIME.onCreateInputMethodInterface().startInput(ic, ei);
         mInputConnection = ic;
+        mKeyboard = mLatinIME.mKeyboardSwitcher.getKeyboard();
         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,
         // but keep them in mind if something breaks. Commenting them out as is should work.
         //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,
                 KeyboardActionListener.SPELL_CHECKER_COORDINATE,
                 KeyboardActionListener.SPELL_CHECKER_COORDINATE);