diff --git a/tests/src/com/android/inputmethod/latin/InputLogicFrenchTests.java b/tests/src/com/android/inputmethod/latin/InputLogicFrenchTests.java
index 5db120d..60a7b05 100644
--- a/tests/src/com/android/inputmethod/latin/InputLogicFrenchTests.java
+++ b/tests/src/com/android/inputmethod/latin/InputLogicFrenchTests.java
@@ -16,8 +16,6 @@
 
 package com.android.inputmethod.latin;
 
-import com.android.inputmethod.keyboard.Keyboard;
-
 public class InputLogicFrenchTests extends InputTestsBase {
 
     public void testAutoCorrectForFrench() {
diff --git a/tests/src/com/android/inputmethod/latin/InputTestsBase.java b/tests/src/com/android/inputmethod/latin/InputTestsBase.java
index 5f6b229..c56026c 100644
--- a/tests/src/com/android/inputmethod/latin/InputTestsBase.java
+++ b/tests/src/com/android/inputmethod/latin/InputTestsBase.java
@@ -138,17 +138,20 @@
         final InputMethodManager imm = (InputMethodManager)mLatinIME.getSystemService(
                 Context.INPUT_METHOD_SERVICE);
         final String packageName = mLatinIME.getPackageName();
-        for (final InputMethodInfo imi : imm.getEnabledInputMethodList()) {
+        // 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)) {
-                for (final InputMethodSubtype ims :
-                    imm.getEnabledInputMethodSubtypeList(imi, true)) {
+                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 disabled");
+        fail("LatinIME is not found");
     }
 
     // We need to run the messages added to the handler from LatinIME. The only way to do
@@ -176,7 +179,7 @@
         // The only way to get out of Looper#loop() is to call #quit() on it (or on its queue).
         // Once #quit() is called remaining messages are not processed, which is why we post
         // a message that calls it instead of calling it directly.
-        looper.loop();
+        Looper.loop();
 
         // Once #quit() has been called, the message queue has an "mQuiting" field that prevents
         // any subsequent post in this queue. However the queue itself is still fully functional!
