Add a preliminary test for basic Russian spell check
Bug: 6981919 Change-Id: I5ec6a6468cb616e7a4369c79b4dbfc84f3d8de59
This commit is contained in:
parent
5d96585a38
commit
c61bed6860
2 changed files with 30 additions and 0 deletions
|
@ -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");
|
||||
}
|
||||
|
|
|
@ -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]);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue