am 12b78258: am 1b11da15: Merge "Add a first test for the spell checker" into jb-mr1-dev

* commit '12b78258e6d61afba01966cd67cb756a69a92c47':
  Add a first test for the spell checker
main
Jean Chalard 2012-09-04 01:28:16 -07:00 committed by Android Git Automerger
commit 3b8b50e4af
2 changed files with 58 additions and 2 deletions

View File

@ -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();

View File

@ -0,0 +1,43 @@
/*
* 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]);
}
}