Merge "Add test only methods to test personalized dicts."
diff --git a/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java b/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
index 449030c..b1239f0 100644
--- a/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
+++ b/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
@@ -50,8 +50,7 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        mCurrentTime = 0;
-        setCurrentTimeForTestMode(mCurrentTime);
+        resetCurrentTimeForTestMode();
     }
 
     @Override
@@ -60,9 +59,14 @@
         super.tearDown();
     }
 
+    private void resetCurrentTimeForTestMode() {
+        mCurrentTime = 0;
+        setCurrentTimeForTestMode(mCurrentTime);
+    }
+
     private void forcePassingShortTime() {
-        // 4 days.
-        final int timeToElapse = (int)TimeUnit.DAYS.toSeconds(4);
+        // 3 days.
+        final int timeToElapse = (int)TimeUnit.DAYS.toSeconds(3);
         mCurrentTime += timeToElapse;
         setCurrentTimeForTestMode(mCurrentTime);
     }
@@ -250,10 +254,12 @@
         final Locale dummyLocale = new Locale("test_decaying" + System.currentTimeMillis());
         final int numberOfWords = 5000;
         final Random random = new Random(123456);
+        resetCurrentTimeForTestMode();
         clearHistory(dummyLocale);
         final List<String> words = generateWords(numberOfWords, random);
         final UserHistoryDictionary dict =
                 PersonalizationHelper.getUserHistoryDictionary(getContext(), dummyLocale);
+        dict.waitAllTasksForTests();
         String prevWord = null;
         for (final String word : words) {
             dict.addToDictionary(prevWord, word, true, mCurrentTime);
@@ -261,10 +267,14 @@
             assertTrue(dict.isInUnderlyingBinaryDictionaryForTests(word));
         }
         forcePassingShortTime();
+        dict.decayIfNeeded();
+        dict.waitAllTasksForTests();
         for (final String word : words) {
             assertTrue(dict.isInUnderlyingBinaryDictionaryForTests(word));
         }
         forcePassingLongTime();
+        dict.decayIfNeeded();
+        dict.waitAllTasksForTests();
         for (final String word : words) {
             assertFalse(dict.isInUnderlyingBinaryDictionaryForTests(word));
         }