Make InputLogicTest more robust

Change-Id: I134f14971126cbeed05b472c08747f2b88ad30e6
diff --git a/tests/src/com/android/inputmethod/latin/BinaryDictionaryDecayingTests.java b/tests/src/com/android/inputmethod/latin/BinaryDictionaryDecayingTests.java
index 7d664c8..5702a62 100644
--- a/tests/src/com/android/inputmethod/latin/BinaryDictionaryDecayingTests.java
+++ b/tests/src/com/android/inputmethod/latin/BinaryDictionaryDecayingTests.java
@@ -55,8 +55,8 @@
 
     @Override
     protected void tearDown() throws Exception {
-        super.tearDown();
         stopTestModeInNativeCode();
+        super.tearDown();
     }
 
     private void addUnigramWord(final BinaryDictionary binaryDictionary, final String word,
diff --git a/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java b/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
index 1370041..c1adf65 100644
--- a/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
+++ b/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
@@ -43,16 +43,6 @@
     private static final String TEST_DICT_FILE_EXTENSION = ".testDict";
     private static final String TEST_LOCALE = "test";
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
-    }
-
     private File createEmptyDictionaryAndGetFile(final String dictId,
             final int formatVersion) throws IOException {
        if (formatVersion == FormatSpec.VERSION4) {
diff --git a/tests/src/com/android/inputmethod/latin/EditDistanceTests.java b/tests/src/com/android/inputmethod/latin/EditDistanceTests.java
index 0b7fcbb..ffec20a 100644
--- a/tests/src/com/android/inputmethod/latin/EditDistanceTests.java
+++ b/tests/src/com/android/inputmethod/latin/EditDistanceTests.java
@@ -21,16 +21,6 @@
 
 @SmallTest
 public class EditDistanceTests extends AndroidTestCase {
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
-    }
-
     /*
      * dist(kitten, sitting) == 3
      *
diff --git a/tests/src/com/android/inputmethod/latin/InputTestsBase.java b/tests/src/com/android/inputmethod/latin/InputTestsBase.java
index fb6bda7..06b64b4 100644
--- a/tests/src/com/android/inputmethod/latin/InputTestsBase.java
+++ b/tests/src/com/android/inputmethod/latin/InputTestsBase.java
@@ -38,6 +38,8 @@
 import com.android.inputmethod.keyboard.Key;
 import com.android.inputmethod.keyboard.Keyboard;
 import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
+import com.android.inputmethod.latin.settings.DebugSettings;
+import com.android.inputmethod.latin.settings.Settings;
 import com.android.inputmethod.latin.utils.LocaleUtils;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
@@ -47,8 +49,6 @@
 public class InputTestsBase extends ServiceTestCase<LatinIMEForTests> {
     private static final String TAG = InputTestsBase.class.getSimpleName();
 
-    private static final String PREF_DEBUG_MODE = "debug_mode";
-    private static final String PREF_AUTO_CORRECTION_THRESHOLD = "auto_correction_threshold";
     // Default value for auto-correction threshold. This is the string representation of the
     // index in the resources array of auto-correction threshold settings.
     private static final String DEFAULT_AUTO_CORRECTION_THRESHOLD = "1";
@@ -65,6 +65,7 @@
     protected View mInputView;
     protected InputConnection mInputConnection;
     private boolean mPreviousDebugSetting;
+    private boolean mPreviousBigramPredictionSettings;
     private String mPreviousAutoCorrectSetting;
 
     // A helper class to ease span tests
@@ -163,7 +164,7 @@
 
     // returns the previous setting value
     protected boolean setDebugMode(final boolean value) {
-        return setBooleanPreference(PREF_DEBUG_MODE, value, false);
+        return setBooleanPreference(DebugSettings.PREF_DEBUG_MODE, value, false);
     }
 
     protected EditorInfo enrichEditorInfo(final EditorInfo ei) {
@@ -184,7 +185,9 @@
         setupService();
         mLatinIME = getService();
         mPreviousDebugSetting = setDebugMode(true);
-        mPreviousAutoCorrectSetting = setStringPreference(PREF_AUTO_CORRECTION_THRESHOLD,
+        mPreviousBigramPredictionSettings = setBooleanPreference(Settings.PREF_BIGRAM_PREDICTIONS,
+                true, true /* defaultValue */);
+        mPreviousAutoCorrectSetting = setStringPreference(Settings.PREF_AUTO_CORRECTION_THRESHOLD,
                 DEFAULT_AUTO_CORRECTION_THRESHOLD, DEFAULT_AUTO_CORRECTION_THRESHOLD);
         mLatinIME.onCreate();
         EditorInfo ei = new EditorInfo();
@@ -209,11 +212,14 @@
     }
 
     @Override
-    protected void tearDown() {
+    protected void tearDown() throws Exception {
         mLatinIME.mHandler.removeAllMessages();
-        setStringPreference(PREF_AUTO_CORRECTION_THRESHOLD, mPreviousAutoCorrectSetting,
+        setBooleanPreference(Settings.PREF_BIGRAM_PREDICTIONS, mPreviousBigramPredictionSettings,
+                true /* defaultValue */);
+        setStringPreference(Settings.PREF_AUTO_CORRECTION_THRESHOLD, mPreviousAutoCorrectSetting,
                 DEFAULT_AUTO_CORRECTION_THRESHOLD);
         setDebugMode(mPreviousDebugSetting);
+        super.tearDown();
     }
 
     // We need to run the messages added to the handler from LatinIME. The only way to do
diff --git a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java
index 75a1aa3..141730d 100644
--- a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java
+++ b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java
@@ -115,9 +115,9 @@
 
     @Override
     protected void tearDown() throws Exception {
-        super.tearDown();
         // Quit test mode.
         BinaryDictionary.setCurrentTimeForTest(-1);
+        super.tearDown();
     }
 
     private void generateWords(final int number, final Random random) {