Merge "Add a preliminary test for basic Russian spell check" into jb-mr1-dev

This commit is contained in:
Jean Chalard 2012-09-04 01:49:43 -07:00 committed by Android (Google) Code Review
commit 49894284bd
2 changed files with 30 additions and 0 deletions

View file

@ -41,6 +41,7 @@ import com.android.inputmethod.keyboard.Key;
import com.android.inputmethod.keyboard.Keyboard;
import java.util.HashMap;
import java.util.Locale;
public class InputTestsBase extends ServiceTestCase<LatinIME> {
@ -93,12 +94,20 @@ public class InputTestsBase extends ServiceTestCase<LatinIME> {
// A helper class to increase control over the TextView
public static class MyTextView extends TextView {
public Locale mCurrentLocale;
public MyTextView(final Context c) {
super(c);
}
public void onAttachedToWindow() {
super.onAttachedToWindow();
}
public Locale getTextServicesLocale() {
// This method is necessary because TextView is asking this method for the language
// to check the spell in. If we don't override this, the spell checker will run in
// whatever language the keyboard is currently set on the test device, ignoring any
// settings we do inside the tests.
return mCurrentLocale;
}
}
public InputTestsBase() {
@ -261,6 +270,7 @@ public class InputTestsBase extends ServiceTestCase<LatinIME> {
protected void changeLanguage(final String locale) {
final InputMethodSubtype subtype = mSubtypeMap.get(locale);
mTextView.mCurrentLocale = LocaleUtils.constructLocaleFromString(locale);
if (subtype == null) {
fail("InputMethodSubtype for locale " + locale + " is not enabled");
}

View file

@ -40,4 +40,24 @@ public class AndroidSpellCheckerServiceTest extends InputTestsBase {
// We also assume the top suggestion should be "this".
assertEquals("", "this", suggestions[0]);
}
public void testRussianSpellchecker() {
changeLanguage("ru");
mTextView.onAttachedToWindow();
mTextView.setText("годп");
type(" ");
sleep(1000);
runMessages();
sleep(1000);
final SpanGetter span = new SpanGetter(mTextView.getText(), SuggestionSpan.class);
// If no span, the following will crash
final String[] suggestions = span.getSuggestions();
// For this test we consider "годп" should yield at least 2 suggestions (at this moment
// it yields 5).
assertTrue(suggestions.length >= 2);
// We also assume the top suggestion should be "года", which is the top word in the
// Russian dictionary.
assertEquals("", "года", suggestions[0]);
}
}