Skip to content
Snippets Groups Projects
Commit 5d96585a authored by Jean Chalard's avatar Jean Chalard
Browse files

Add a first test for the spell checker

Bug: 6981919
Change-Id: Idd34150cec70e71bde652428f1631693bbc4a9ff
parent d34dd5bb
No related branches found
No related tags found
No related merge requests found
......@@ -51,7 +51,7 @@ public class InputTestsBase extends ServiceTestCase<LatinIME> {
protected LatinIME mLatinIME;
protected Keyboard mKeyboard;
protected TextView mTextView;
protected MyTextView mTextView;
protected InputConnection mInputConnection;
private final HashMap<String, InputMethodSubtype> mSubtypeMap =
new HashMap<String, InputMethodSubtype>();
......@@ -86,6 +86,19 @@ public class InputTestsBase extends ServiceTestCase<LatinIME> {
return (mSpan instanceof SuggestionSpan) &&
0 != (SuggestionSpan.FLAG_AUTO_CORRECTION & ((SuggestionSpan)mSpan).getFlags());
}
public String[] getSuggestions() {
return ((SuggestionSpan)mSpan).getSuggestions();
}
}
// A helper class to increase control over the TextView
public static class MyTextView extends TextView {
public MyTextView(final Context c) {
super(c);
}
public void onAttachedToWindow() {
super.onAttachedToWindow();
}
}
public InputTestsBase() {
......@@ -112,7 +125,7 @@ public class InputTestsBase extends ServiceTestCase<LatinIME> {
@Override
protected void setUp() throws Exception {
super.setUp();
mTextView = new TextView(getContext());
mTextView = new MyTextView(getContext());
mTextView.setInputType(InputType.TYPE_CLASS_TEXT);
mTextView.setEnabled(true);
setupService();
......
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.android.inputmethod.latin.spellcheck;
import android.text.SpannableStringBuilder;
import android.text.style.CharacterStyle;
import android.text.style.SuggestionSpan;
import com.android.inputmethod.latin.InputTestsBase;
public class AndroidSpellCheckerServiceTest extends InputTestsBase {
public void testSpellchecker() {
mTextView.onAttachedToWindow();
mTextView.setText("tgis");
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 "tgis" should yield at least 2 suggestions (at this moment
// it yields 5).
assertTrue(suggestions.length >= 2);
// We also assume the top suggestion should be "this".
assertEquals("", "this", suggestions[0]);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment