aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/src/com/android/inputmethod/latin/InputTestsBase.java10
-rw-r--r--tests/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerServiceTest.java20
2 files changed, 30 insertions, 0 deletions
diff --git a/tests/src/com/android/inputmethod/latin/InputTestsBase.java b/tests/src/com/android/inputmethod/latin/InputTestsBase.java
index dfb83fa24..fe58cb84e 100644
--- a/tests/src/com/android/inputmethod/latin/InputTestsBase.java
+++ b/tests/src/com/android/inputmethod/latin/InputTestsBase.java
@@ -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");
}
diff --git a/tests/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerServiceTest.java b/tests/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerServiceTest.java
index 11624e122..21406d370 100644
--- a/tests/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerServiceTest.java
+++ b/tests/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerServiceTest.java
@@ -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]);
+ }
}