Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 49894284 authored by Jean Chalard's avatar Jean Chalard Committed by Android (Google) Code Review
Browse files

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

parents 1b11da15 c61bed68
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -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");
        }
+20 −0
Original line number Diff line number Diff line
@@ -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]);
    }
}