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

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

Merge "Add a first test for the spell checker" into jb-mr1-dev

parents 2ecf6254 5d96585a
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -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();
+43 −0
Original line number Diff line number Diff line
/*
 * 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]);
    }
}