Add test only methods to test personalized dicts.

Bug: 11122480
Change-Id: I79a4a73ff09a2d34d4ca094d705e901fb4bc855c
main
Keisuke Kuroyanagi 2014-02-20 22:20:43 +09:00
parent a7ee108fc5
commit d36328cecf
3 changed files with 33 additions and 6 deletions

View File

@ -237,6 +237,24 @@ public class DictionaryFacilitatorForSuggest {
mLatchForWaitingLoadingMainDictionary.await(timeout, unit); mLatchForWaitingLoadingMainDictionary.await(timeout, unit);
} }
@UsedForTesting
public void waitForLoadingDictionariesForTesting(final long timeout, final TimeUnit unit)
throws InterruptedException {
waitForLoadingMainDictionary(timeout, unit);
if (mContactsDictionary != null) {
mContactsDictionary.waitAllTasksForTests();
}
if (mUserDictionary != null) {
mUserDictionary.waitAllTasksForTests();
}
if (mUserHistoryDictionary != null) {
mUserHistoryDictionary.waitAllTasksForTests();
}
if (mPersonalizationDictionary != null) {
mPersonalizationDictionary.waitAllTasksForTests();
}
}
private void setMainDictionary(final Dictionary mainDictionary) { private void setMainDictionary(final Dictionary mainDictionary) {
mMainDictionary = mainDictionary; mMainDictionary = mainDictionary;
addOrReplaceDictionary(Dictionary.TYPE_MAIN, mainDictionary); addOrReplaceDictionary(Dictionary.TYPE_MAIN, mainDictionary);

View File

@ -1717,9 +1717,10 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
// DO NOT USE THIS for any other purpose than testing. This is information private to LatinIME. // DO NOT USE THIS for any other purpose than testing. This is information private to LatinIME.
@UsedForTesting @UsedForTesting
/* package for test */ void waitForMainDictionary(final long timeout, final TimeUnit unit) /* package for test */ void waitForLoadingDictionaries(final long timeout, final TimeUnit unit)
throws InterruptedException { throws InterruptedException {
mInputLogic.mSuggest.mDictionaryFacilitator.waitForLoadingMainDictionary(timeout, unit); mInputLogic.mSuggest.mDictionaryFacilitator.waitForLoadingDictionariesForTesting(
timeout, unit);
} }
// DO NOT USE THIS for any other purpose than testing. This can break the keyboard badly. // DO NOT USE THIS for any other purpose than testing. This can break the keyboard badly.
@ -1733,6 +1734,13 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
resetSuggest(new Suggest(locale, dictionaryFacilitator)); resetSuggest(new Suggest(locale, dictionaryFacilitator));
} }
// DO NOT USE THIS for any other purpose than testing.
@UsedForTesting
/* package for test */ void clearPersonalizedDictionariesForTest() {
mInputLogic.mSuggest.mDictionaryFacilitator.clearUserHistoryDictionary();
mInputLogic.mSuggest.mDictionaryFacilitator.clearPersonalizationDictionary();
}
public void dumpDictionaryForDebug(final String dictName) { public void dumpDictionaryForDebug(final String dictName) {
if (mInputLogic.mSuggest == null) { if (mInputLogic.mSuggest == null) {
initSuggest(); initSuggest();

View File

@ -275,9 +275,9 @@ public class InputTestsBase extends ServiceTestCase<LatinIMEForTests> {
} }
} }
protected void waitForDictionaryToBeLoaded() { protected void waitForDictionariesToBeLoaded() {
try { try {
mLatinIME.waitForMainDictionary( mLatinIME.waitForLoadingDictionaries(
TIMEOUT_TO_WAIT_FOR_LOADING_MAIN_DICTIONARY_IN_SECONDS, TimeUnit.SECONDS); TIMEOUT_TO_WAIT_FOR_LOADING_MAIN_DICTIONARY_IN_SECONDS, TimeUnit.SECONDS);
} catch (InterruptedException e) { } catch (InterruptedException e) {
Log.e(TAG, "Interrupted during waiting for loading main dictionary.", e); Log.e(TAG, "Interrupted during waiting for loading main dictionary.", e);
@ -286,7 +286,7 @@ public class InputTestsBase extends ServiceTestCase<LatinIMEForTests> {
protected void changeLanguage(final String locale) { protected void changeLanguage(final String locale) {
changeLanguageWithoutWait(locale); changeLanguageWithoutWait(locale);
waitForDictionaryToBeLoaded(); waitForDictionariesToBeLoaded();
} }
protected void changeLanguageWithoutWait(final String locale) { protected void changeLanguageWithoutWait(final String locale) {
@ -314,6 +314,7 @@ public class InputTestsBase extends ServiceTestCase<LatinIMEForTests> {
mLatinIME.loadKeyboard(); mLatinIME.loadKeyboard();
runMessages(); runMessages();
mKeyboard = mLatinIME.mKeyboardSwitcher.getKeyboard(); mKeyboard = mLatinIME.mKeyboardSwitcher.getKeyboard();
mLatinIME.clearPersonalizedDictionariesForTest();
} }
protected void changeKeyboardLocaleAndDictLocale(final String keyboardLocale, protected void changeKeyboardLocaleAndDictLocale(final String keyboardLocale,
@ -322,7 +323,7 @@ public class InputTestsBase extends ServiceTestCase<LatinIMEForTests> {
if (!keyboardLocale.equals(dictLocale)) { if (!keyboardLocale.equals(dictLocale)) {
mLatinIME.replaceDictionariesForTest(LocaleUtils.constructLocaleFromString(dictLocale)); mLatinIME.replaceDictionariesForTest(LocaleUtils.constructLocaleFromString(dictLocale));
} }
waitForDictionaryToBeLoaded(); waitForDictionariesToBeLoaded();
} }
protected void pickSuggestionManually(final int index, final String suggestion) { protected void pickSuggestionManually(final int index, final String suggestion) {