aboutsummaryrefslogtreecommitdiffstats
path: root/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
diff options
context:
space:
mode:
authorKeisuke Kuroyanagi <ksk@google.com>2013-10-03 20:55:34 +0900
committerKeisuke Kuroyanagi <ksk@google.com>2013-10-03 20:55:34 +0900
commit11f7cae094720c3ab47e6c18772b1fc44e9e5372 (patch)
tree588a97b41a8be552f6ae9140934b678b2b985f04 /tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
parent3d92954120a5bfd0a34d81a6b78c58ff07040b01 (diff)
downloadlatinime-11f7cae094720c3ab47e6c18772b1fc44e9e5372.tar.gz
latinime-11f7cae094720c3ab47e6c18772b1fc44e9e5372.tar.xz
latinime-11f7cae094720c3ab47e6c18772b1fc44e9e5372.zip
Fix UserHistoryDictionaryTests.
Bug: 6669677 Bug: 10667710 Change-Id: I6cdc6a6c9cacc7f276fda3a26ec31e3eb928471c
Diffstat (limited to 'tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java')
-rw-r--r--tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java92
1 files changed, 45 insertions, 47 deletions
diff --git a/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java b/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
index ddc9546c5..7c1decb71 100644
--- a/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
+++ b/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
@@ -109,35 +109,54 @@ public class UserHistoryDictionaryTests extends AndroidTestCase {
dict.close();
}
+ /**
+ * Clear all entries in the user history dictionary.
+ * @param testFilenameSuffix file name suffix used for testing.
+ */
+ private void clearHistory(final String testFilenameSuffix) {
+ final UserHistoryDictionary dict =
+ PersonalizationHelper.getUserHistoryDictionary(getContext(),
+ testFilenameSuffix /* locale */, mPrefs);
+ dict.clearAndFlushDictionary();
+ dict.close();
+ }
+
+ /**
+ * Shut down executer and wait until all operations of user history are done.
+ * @param testFilenameSuffix file name suffix used for testing.
+ */
+ private void waitForWriting(final String testFilenameSuffix) {
+ try {
+ final UserHistoryDictionary dict =
+ PersonalizationHelper.getUserHistoryDictionary(getContext(),
+ testFilenameSuffix, mPrefs);
+ dict.shutdownExecutorForTests();
+ while (!dict.isTerminatedForTests()) {
+ Thread.sleep(WAIT_TERMINATING_IN_MILLISECONDS);
+ }
+ } catch (InterruptedException e) {
+ Log.d(TAG, "InterruptedException: ", e);
+ }
+ }
+
public void testRandomWords() {
- File dictFile = null;
Log.d(TAG, "This test can be used for profiling.");
Log.d(TAG, "Usage: please set UserHistoryDictionary.PROFILE_SAVE_RESTORE to true.");
final String testFilenameSuffix = "testRandomWords" + System.currentTimeMillis();
+ final String fileName = UserHistoryDictionary.NAME + "." + testFilenameSuffix
+ + ExpandableBinaryDictionary.DICT_FILE_EXTENSION;
+
final int numberOfWords = 1000;
final Random random = new Random(123456);
try {
+ clearHistory(testFilenameSuffix);
addAndWriteRandomWords(testFilenameSuffix, numberOfWords, random,
true /* checksContents */);
} finally {
- try {
- final UserHistoryDictionary dict =
- PersonalizationHelper.getUserHistoryDictionary(getContext(),
- testFilenameSuffix, mPrefs);
- Log.d(TAG, "waiting for writing ...");
- dict.shutdownExecutorForTests();
- while (!dict.isTerminatedForTests()) {
- Thread.sleep(WAIT_TERMINATING_IN_MILLISECONDS);
- }
- } catch (InterruptedException e) {
- Log.d(TAG, "InterruptedException: " + e);
- }
-
- final String fileName = UserHistoryDictionary.NAME + "." + testFilenameSuffix
- + ExpandableBinaryDictionary.DICT_FILE_EXTENSION;
- dictFile = new File(getContext().getFilesDir(), fileName);
-
+ Log.d(TAG, "waiting for writing ...");
+ waitForWriting(testFilenameSuffix);
+ final File dictFile = new File(getContext().getFilesDir(), fileName);
if (dictFile != null) {
assertTrue(dictFile.exists());
assertTrue(dictFile.length() >= MIN_USER_HISTORY_DICTIONARY_FILE_SIZE);
@@ -162,6 +181,7 @@ public class UserHistoryDictionaryTests extends AndroidTestCase {
final String fileName = UserHistoryDictionary.NAME + "." +
testFilenameSuffixes[i] + ExpandableBinaryDictionary.DICT_FILE_EXTENSION;
dictFiles[i] = new File(getContext().getFilesDir(), fileName);
+ clearHistory(testFilenameSuffixes[i]);
}
final long start = System.currentTimeMillis();
@@ -178,19 +198,9 @@ public class UserHistoryDictionaryTests extends AndroidTestCase {
Log.d(TAG, "testStressTestForSwitchingLanguageAndAddingWords took "
+ (end - start) + " ms");
} finally {
- try {
- Log.d(TAG, "waiting for writing ...");
- for (int i = 0; i < numberOfLanguages; i++) {
- final UserHistoryDictionary dict =
- PersonalizationHelper.getUserHistoryDictionary(getContext(),
- testFilenameSuffixes[i], mPrefs);
- dict.shutdownExecutorForTests();
- while (!dict.isTerminatedForTests()) {
- Thread.sleep(WAIT_TERMINATING_IN_MILLISECONDS);
- }
- }
- } catch (InterruptedException e) {
- Log.d(TAG, "InterruptedException: " + e);
+ Log.d(TAG, "waiting for writing ...");
+ for (int i = 0; i < numberOfLanguages; i++) {
+ waitForWriting(testFilenameSuffixes[i]);
}
for (final File file : dictFiles) {
if (file != null) {
@@ -203,33 +213,21 @@ public class UserHistoryDictionaryTests extends AndroidTestCase {
}
public void testAddManyWords() {
- File dictFile = null;
final String testFilenameSuffix = "testRandomWords" + System.currentTimeMillis();
final int numberOfWords =
ExpandableBinaryDictionary.ENABLE_BINARY_DICTIONARY_DYNAMIC_UPDATE ?
10000 : 1000;
final Random random = new Random(123456);
-
- UserHistoryDictionary dict =
- PersonalizationHelper.getUserHistoryDictionary(getContext(),
- testFilenameSuffix, mPrefs);
+ clearHistory(testFilenameSuffix);
try {
addAndWriteRandomWords(testFilenameSuffix, numberOfWords, random,
true /* checksContents */);
- dict.close();
} finally {
- try {
- Log.d(TAG, "waiting for writing ...");
- dict.shutdownExecutorForTests();
- while (!dict.isTerminatedForTests()) {
- Thread.sleep(WAIT_TERMINATING_IN_MILLISECONDS);
- }
- } catch (InterruptedException e) {
- Log.d(TAG, "InterruptedException: ", e);
- }
+ Log.d(TAG, "waiting for writing ...");
+ waitForWriting(testFilenameSuffix);
final String fileName = UserHistoryDictionary.NAME + "." + testFilenameSuffix
+ ExpandableBinaryDictionary.DICT_FILE_EXTENSION;
- dictFile = new File(getContext().getFilesDir(), fileName);
+ final File dictFile = new File(getContext().getFilesDir(), fileName);
if (dictFile != null) {
assertTrue(dictFile.exists());
assertTrue(dictFile.length() >= MIN_USER_HISTORY_DICTIONARY_FILE_SIZE);