Loading java/res/values/config.xml +0 −3 Original line number Diff line number Diff line Loading @@ -119,9 +119,6 @@ <!-- Threshold of the normalized score of the best suggestion for the spell checker to declare a word to be "recommended" --> <string name="spellchecker_recommended_threshold_value" translatable="false">0.11</string> <!-- Threshold of the normalized score of any dictionary lookup to be offered as a suggestion by the spell checker --> <string name="spellchecker_suggestion_threshold_value" translatable="false">0.03</string> <!-- Screen metrics for logging. 0 = "mdpi phone screen" 1 = "hdpi phone screen" Loading java/src/com/android/inputmethod/latin/JniUtils.java +9 −5 Original line number Diff line number Diff line Loading @@ -23,15 +23,19 @@ import com.android.inputmethod.latin.define.JniLibName; public final class JniUtils { private static final String TAG = JniUtils.class.getSimpleName(); private JniUtils() { // This utility class is not publicly instantiable. } public static void loadNativeLibrary() { static { try { System.loadLibrary(JniLibName.JNI_LIB_NAME); } catch (UnsatisfiedLinkError ule) { Log.e(TAG, "Could not load native library " + JniLibName.JNI_LIB_NAME, ule); } } private JniUtils() { // This utility class is not publicly instantiable. } public static void loadNativeLibrary() { // Ensures the static initializer is called } } java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java +3 −14 Original line number Diff line number Diff line Loading @@ -64,8 +64,6 @@ public final class AndroidSpellCheckerService extends SpellCheckerService CollectionUtils.newSynchronizedTreeMap(); private ContactsBinaryDictionary mContactsDictionary; // The threshold for a candidate to be offered as a suggestion. private float mSuggestionThreshold; // The threshold for a suggestion to be considered "recommended". private float mRecommendedThreshold; // Whether to use the contacts dictionary Loading Loading @@ -112,8 +110,6 @@ public final class AndroidSpellCheckerService extends SpellCheckerService @Override public void onCreate() { super.onCreate(); mSuggestionThreshold = Float.parseFloat(getString(R.string.spellchecker_suggestion_threshold_value)); mRecommendedThreshold = Float.parseFloat(getString(R.string.spellchecker_recommended_threshold_value)); final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); Loading Loading @@ -198,8 +194,7 @@ public final class AndroidSpellCheckerService extends SpellCheckerService } public SuggestionsGatherer newSuggestionsGatherer(final String text, int maxLength) { return new SuggestionsGatherer( text, mSuggestionThreshold, mRecommendedThreshold, maxLength); return new SuggestionsGatherer(text, mRecommendedThreshold, maxLength); } // TODO: remove this class and replace it by storage local to the session. Loading @@ -217,7 +212,6 @@ public final class AndroidSpellCheckerService extends SpellCheckerService private final ArrayList<String> mSuggestions; private final int[] mScores; private final String mOriginalText; private final float mSuggestionThreshold; private final float mRecommendedThreshold; private final int mMaxLength; private int mLength = 0; Loading @@ -227,10 +221,9 @@ public final class AndroidSpellCheckerService extends SpellCheckerService private String mBestSuggestion = null; private int mBestScore = Integer.MIN_VALUE; // As small as possible SuggestionsGatherer(final String originalText, final float suggestionThreshold, final float recommendedThreshold, final int maxLength) { SuggestionsGatherer(final String originalText, final float recommendedThreshold, final int maxLength) { mOriginalText = originalText; mSuggestionThreshold = suggestionThreshold; mRecommendedThreshold = recommendedThreshold; mMaxLength = maxLength; mSuggestions = CollectionUtils.newArrayList(maxLength + 1); Loading Loading @@ -272,10 +265,6 @@ public final class AndroidSpellCheckerService extends SpellCheckerService final String wordString = new String(word, wordOffset, wordLength); final float normalizedScore = BinaryDictionary.calcNormalizedScore(mOriginalText, wordString, score); if (normalizedScore < mSuggestionThreshold) { if (DBG) Log.i(TAG, wordString + " does not make the score threshold"); return true; } if (mLength < mMaxLength) { final int copyLen = mLength - insertIndex; Loading tests/src/com/android/inputmethod/latin/BlueUnderlineTests.java +7 −7 Original line number Diff line number Diff line Loading @@ -30,7 +30,7 @@ public class BlueUnderlineTests extends InputTestsBase { type(STRING_TO_TYPE); sleep(DELAY_TO_WAIT_FOR_UNDERLINE); runMessages(); final SpanGetter span = new SpanGetter(mTextView.getText(), SuggestionSpan.class); final SpanGetter span = new SpanGetter(mEditText.getText(), SuggestionSpan.class); assertEquals("show blue underline, span start", EXPECTED_SPAN_START, span.mStart); assertEquals("show blue underline, span end", EXPECTED_SPAN_END, span.mEnd); assertEquals("show blue underline, span color", true, span.isAutoCorrectionIndicator()); Loading @@ -47,7 +47,7 @@ public class BlueUnderlineTests extends InputTestsBase { type(STRING_2_TO_TYPE); // We haven't have time to look into the dictionary yet, so the line should still be // blue to avoid any flicker. final SpanGetter spanBefore = new SpanGetter(mTextView.getText(), SuggestionSpan.class); final SpanGetter spanBefore = new SpanGetter(mEditText.getText(), SuggestionSpan.class); assertEquals("extend blue underline, span start", EXPECTED_SPAN_START, spanBefore.mStart); assertEquals("extend blue underline, span end", EXPECTED_SPAN_END, spanBefore.mEnd); assertEquals("extend blue underline, span color", true, Loading @@ -55,7 +55,7 @@ public class BlueUnderlineTests extends InputTestsBase { sleep(DELAY_TO_WAIT_FOR_UNDERLINE); runMessages(); // Now we have been able to re-evaluate the word, there shouldn't be an auto-correction span final SpanGetter spanAfter = new SpanGetter(mTextView.getText(), SuggestionSpan.class); final SpanGetter spanAfter = new SpanGetter(mEditText.getText(), SuggestionSpan.class); assertNull("hide blue underline", spanAfter.mSpan); } Loading @@ -76,10 +76,10 @@ public class BlueUnderlineTests extends InputTestsBase { type(Constants.CODE_DELETE); sleep(DELAY_TO_WAIT_FOR_UNDERLINE); runMessages(); final SpanGetter suggestionSpan = new SpanGetter(mTextView.getText(), SuggestionSpan.class); final SpanGetter suggestionSpan = new SpanGetter(mEditText.getText(), SuggestionSpan.class); assertEquals("show no blue underline after backspace, span start should be -1", EXPECTED_SUGGESTION_SPAN_START, suggestionSpan.mStart); final SpanGetter underlineSpan = new SpanGetter(mTextView.getText(), UnderlineSpan.class); final SpanGetter underlineSpan = new SpanGetter(mEditText.getText(), UnderlineSpan.class); assertEquals("should be composing, so should have an underline span", EXPECTED_UNDERLINE_SPAN_START, underlineSpan.mStart); assertEquals("should be composing, so should have an underline span", Loading @@ -103,7 +103,7 @@ public class BlueUnderlineTests extends InputTestsBase { NEW_CURSOR_POSITION, NEW_CURSOR_POSITION, -1, -1); sleep(DELAY_TO_WAIT_FOR_UNDERLINE); runMessages(); final SpanGetter span = new SpanGetter(mTextView.getText(), SuggestionSpan.class); final SpanGetter span = new SpanGetter(mEditText.getText(), SuggestionSpan.class); assertNull("blue underline removed when cursor is moved", span.mSpan); } Loading @@ -117,7 +117,7 @@ public class BlueUnderlineTests extends InputTestsBase { // Here the blue underline has been set. testBlueUnderline() is testing for this already, // so let's not test it here again. // Now simulate the user moving the cursor. SpanGetter span = new SpanGetter(mTextView.getText(), UnderlineSpan.class); SpanGetter span = new SpanGetter(mEditText.getText(), UnderlineSpan.class); assertNull("should not be composing, so should not have an underline span", span.mSpan); } } tests/src/com/android/inputmethod/latin/InputLogicTests.java +26 −26 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ public class InputLogicTests extends InputTestsBase { public void testTypeWord() { final String WORD_TO_TYPE = "abcd"; type(WORD_TO_TYPE); assertEquals("type word", WORD_TO_TYPE, mTextView.getText().toString()); assertEquals("type word", WORD_TO_TYPE, mEditText.getText().toString()); } public void testPickSuggestionThenBackspace() { Loading @@ -35,7 +35,7 @@ public class InputLogicTests extends InputTestsBase { mLatinIME.onUpdateSelection(0, 0, WORD_TO_TYPE.length(), WORD_TO_TYPE.length(), -1, -1); type(Constants.CODE_DELETE); assertEquals("press suggestion then backspace", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testPickAutoCorrectionThenBackspace() { Loading @@ -48,10 +48,10 @@ public class InputLogicTests extends InputTestsBase { pickSuggestionManually(0, WORD_TO_PICK); mLatinIME.onUpdateSelection(0, 0, WORD_TO_TYPE.length(), WORD_TO_TYPE.length(), -1, -1); assertEquals("pick typed word over auto-correction then backspace", WORD_TO_PICK, mTextView.getText().toString()); mEditText.getText().toString()); type(Constants.CODE_DELETE); assertEquals("pick typed word over auto-correction then backspace", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testPickTypedWordOverAutoCorrectionThenBackspace() { Loading @@ -63,10 +63,10 @@ public class InputLogicTests extends InputTestsBase { pickSuggestionManually(1, WORD_TO_TYPE); mLatinIME.onUpdateSelection(0, 0, WORD_TO_TYPE.length(), WORD_TO_TYPE.length(), -1, -1); assertEquals("pick typed word over auto-correction then backspace", WORD_TO_TYPE, mTextView.getText().toString()); mEditText.getText().toString()); type(Constants.CODE_DELETE); assertEquals("pick typed word over auto-correction then backspace", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testPickDifferentSuggestionThenBackspace() { Loading @@ -79,10 +79,10 @@ public class InputLogicTests extends InputTestsBase { pickSuggestionManually(2, WORD_TO_PICK); mLatinIME.onUpdateSelection(0, 0, WORD_TO_TYPE.length(), WORD_TO_TYPE.length(), -1, -1); assertEquals("pick different suggestion then backspace", WORD_TO_PICK, mTextView.getText().toString()); mEditText.getText().toString()); type(Constants.CODE_DELETE); assertEquals("pick different suggestion then backspace", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testDeleteSelection() { Loading @@ -102,7 +102,7 @@ public class InputLogicTests extends InputTestsBase { mLatinIME.onUpdateSelection(typedLength, typedLength, SELECTION_START, SELECTION_END, -1, -1); type(Constants.CODE_DELETE); assertEquals("delete selection", EXPECTED_RESULT, mTextView.getText().toString()); assertEquals("delete selection", EXPECTED_RESULT, mEditText.getText().toString()); } public void testDeleteSelectionTwice() { Loading @@ -123,21 +123,21 @@ public class InputLogicTests extends InputTestsBase { SELECTION_START, SELECTION_END, -1, -1); type(Constants.CODE_DELETE); type(Constants.CODE_DELETE); assertEquals("delete selection twice", EXPECTED_RESULT, mTextView.getText().toString()); assertEquals("delete selection twice", EXPECTED_RESULT, mEditText.getText().toString()); } public void testAutoCorrect() { final String STRING_TO_TYPE = "tgis "; final String EXPECTED_RESULT = "this "; type(STRING_TO_TYPE); assertEquals("simple auto-correct", EXPECTED_RESULT, mTextView.getText().toString()); assertEquals("simple auto-correct", EXPECTED_RESULT, mEditText.getText().toString()); } public void testAutoCorrectWithPeriod() { final String STRING_TO_TYPE = "tgis."; final String EXPECTED_RESULT = "this."; type(STRING_TO_TYPE); assertEquals("auto-correct with period", EXPECTED_RESULT, mTextView.getText().toString()); assertEquals("auto-correct with period", EXPECTED_RESULT, mEditText.getText().toString()); } public void testAutoCorrectWithPeriodThenRevert() { Loading @@ -147,7 +147,7 @@ public class InputLogicTests extends InputTestsBase { mLatinIME.onUpdateSelection(0, 0, STRING_TO_TYPE.length(), STRING_TO_TYPE.length(), -1, -1); type(Constants.CODE_DELETE); assertEquals("auto-correct with period then revert", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testAutoCorrectWithSpaceThenRevert() { Loading @@ -157,7 +157,7 @@ public class InputLogicTests extends InputTestsBase { mLatinIME.onUpdateSelection(0, 0, STRING_TO_TYPE.length(), STRING_TO_TYPE.length(), -1, -1); type(Constants.CODE_DELETE); assertEquals("auto-correct with space then revert", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testAutoCorrectToSelfDoesNotRevert() { Loading @@ -167,14 +167,14 @@ public class InputLogicTests extends InputTestsBase { mLatinIME.onUpdateSelection(0, 0, STRING_TO_TYPE.length(), STRING_TO_TYPE.length(), -1, -1); type(Constants.CODE_DELETE); assertEquals("auto-correct with space does not revert", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testDoubleSpace() { final String STRING_TO_TYPE = "this "; final String EXPECTED_RESULT = "this. "; type(STRING_TO_TYPE); assertEquals("double space make a period", EXPECTED_RESULT, mTextView.getText().toString()); assertEquals("double space make a period", EXPECTED_RESULT, mEditText.getText().toString()); } public void testCancelDoubleSpace() { Loading @@ -182,7 +182,7 @@ public class InputLogicTests extends InputTestsBase { final String EXPECTED_RESULT = "this "; type(STRING_TO_TYPE); type(Constants.CODE_DELETE); assertEquals("double space make a period", EXPECTED_RESULT, mTextView.getText().toString()); assertEquals("double space make a period", EXPECTED_RESULT, mEditText.getText().toString()); } public void testBackspaceAtStartAfterAutocorrect() { Loading @@ -197,7 +197,7 @@ public class InputLogicTests extends InputTestsBase { NEW_CURSOR_POSITION, NEW_CURSOR_POSITION, -1, -1); type(Constants.CODE_DELETE); assertEquals("auto correct then move cursor to start of line then backspace", EXPECTED_RESULT, mTextView.getText().toString()); EXPECTED_RESULT, mEditText.getText().toString()); } public void testAutoCorrectThenMoveCursorThenBackspace() { Loading @@ -212,7 +212,7 @@ public class InputLogicTests extends InputTestsBase { NEW_CURSOR_POSITION, NEW_CURSOR_POSITION, -1, -1); type(Constants.CODE_DELETE); assertEquals("auto correct then move cursor then backspace", EXPECTED_RESULT, mTextView.getText().toString()); EXPECTED_RESULT, mEditText.getText().toString()); } public void testNoSpaceAfterManualPick() { Loading @@ -221,7 +221,7 @@ public class InputLogicTests extends InputTestsBase { type(WORD_TO_TYPE); pickSuggestionManually(0, WORD_TO_TYPE); assertEquals("no space after manual pick", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testManualPickThenType() { Loading @@ -231,7 +231,7 @@ public class InputLogicTests extends InputTestsBase { type(WORD1_TO_TYPE); pickSuggestionManually(0, WORD1_TO_TYPE); type(WORD2_TO_TYPE); assertEquals("manual pick then type", EXPECTED_RESULT, mTextView.getText().toString()); assertEquals("manual pick then type", EXPECTED_RESULT, mEditText.getText().toString()); } public void testManualPickThenSeparator() { Loading @@ -241,7 +241,7 @@ public class InputLogicTests extends InputTestsBase { type(WORD1_TO_TYPE); pickSuggestionManually(0, WORD1_TO_TYPE); type(WORD2_TO_TYPE); assertEquals("manual pick then separator", EXPECTED_RESULT, mTextView.getText().toString()); assertEquals("manual pick then separator", EXPECTED_RESULT, mEditText.getText().toString()); } public void testManualPickThenStripperThenPick() { Loading @@ -254,7 +254,7 @@ public class InputLogicTests extends InputTestsBase { type(WORD_TO_TYPE); pickSuggestionManually(0, WORD_TO_TYPE); assertEquals("manual pick then \\n then manual pick", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testManualPickThenSpaceThenType() { Loading @@ -265,7 +265,7 @@ public class InputLogicTests extends InputTestsBase { pickSuggestionManually(0, WORD1_TO_TYPE); type(WORD2_TO_TYPE); assertEquals("manual pick then space then type", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testManualPickThenManualPick() { Loading @@ -279,7 +279,7 @@ public class InputLogicTests extends InputTestsBase { // to actually pass the right string. pickSuggestionManually(1, WORD2_TO_PICK); assertEquals("manual pick then manual pick", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testDeleteWholeComposingWord() { Loading @@ -288,7 +288,7 @@ public class InputLogicTests extends InputTestsBase { for (int i = 0; i < WORD_TO_TYPE.length(); ++i) { type(Constants.CODE_DELETE); } assertEquals("delete whole composing word", "", mTextView.getText().toString()); assertEquals("delete whole composing word", "", mEditText.getText().toString()); } // TODO: Add some tests for non-BMP characters } Loading
java/res/values/config.xml +0 −3 Original line number Diff line number Diff line Loading @@ -119,9 +119,6 @@ <!-- Threshold of the normalized score of the best suggestion for the spell checker to declare a word to be "recommended" --> <string name="spellchecker_recommended_threshold_value" translatable="false">0.11</string> <!-- Threshold of the normalized score of any dictionary lookup to be offered as a suggestion by the spell checker --> <string name="spellchecker_suggestion_threshold_value" translatable="false">0.03</string> <!-- Screen metrics for logging. 0 = "mdpi phone screen" 1 = "hdpi phone screen" Loading
java/src/com/android/inputmethod/latin/JniUtils.java +9 −5 Original line number Diff line number Diff line Loading @@ -23,15 +23,19 @@ import com.android.inputmethod.latin.define.JniLibName; public final class JniUtils { private static final String TAG = JniUtils.class.getSimpleName(); private JniUtils() { // This utility class is not publicly instantiable. } public static void loadNativeLibrary() { static { try { System.loadLibrary(JniLibName.JNI_LIB_NAME); } catch (UnsatisfiedLinkError ule) { Log.e(TAG, "Could not load native library " + JniLibName.JNI_LIB_NAME, ule); } } private JniUtils() { // This utility class is not publicly instantiable. } public static void loadNativeLibrary() { // Ensures the static initializer is called } }
java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java +3 −14 Original line number Diff line number Diff line Loading @@ -64,8 +64,6 @@ public final class AndroidSpellCheckerService extends SpellCheckerService CollectionUtils.newSynchronizedTreeMap(); private ContactsBinaryDictionary mContactsDictionary; // The threshold for a candidate to be offered as a suggestion. private float mSuggestionThreshold; // The threshold for a suggestion to be considered "recommended". private float mRecommendedThreshold; // Whether to use the contacts dictionary Loading Loading @@ -112,8 +110,6 @@ public final class AndroidSpellCheckerService extends SpellCheckerService @Override public void onCreate() { super.onCreate(); mSuggestionThreshold = Float.parseFloat(getString(R.string.spellchecker_suggestion_threshold_value)); mRecommendedThreshold = Float.parseFloat(getString(R.string.spellchecker_recommended_threshold_value)); final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); Loading Loading @@ -198,8 +194,7 @@ public final class AndroidSpellCheckerService extends SpellCheckerService } public SuggestionsGatherer newSuggestionsGatherer(final String text, int maxLength) { return new SuggestionsGatherer( text, mSuggestionThreshold, mRecommendedThreshold, maxLength); return new SuggestionsGatherer(text, mRecommendedThreshold, maxLength); } // TODO: remove this class and replace it by storage local to the session. Loading @@ -217,7 +212,6 @@ public final class AndroidSpellCheckerService extends SpellCheckerService private final ArrayList<String> mSuggestions; private final int[] mScores; private final String mOriginalText; private final float mSuggestionThreshold; private final float mRecommendedThreshold; private final int mMaxLength; private int mLength = 0; Loading @@ -227,10 +221,9 @@ public final class AndroidSpellCheckerService extends SpellCheckerService private String mBestSuggestion = null; private int mBestScore = Integer.MIN_VALUE; // As small as possible SuggestionsGatherer(final String originalText, final float suggestionThreshold, final float recommendedThreshold, final int maxLength) { SuggestionsGatherer(final String originalText, final float recommendedThreshold, final int maxLength) { mOriginalText = originalText; mSuggestionThreshold = suggestionThreshold; mRecommendedThreshold = recommendedThreshold; mMaxLength = maxLength; mSuggestions = CollectionUtils.newArrayList(maxLength + 1); Loading Loading @@ -272,10 +265,6 @@ public final class AndroidSpellCheckerService extends SpellCheckerService final String wordString = new String(word, wordOffset, wordLength); final float normalizedScore = BinaryDictionary.calcNormalizedScore(mOriginalText, wordString, score); if (normalizedScore < mSuggestionThreshold) { if (DBG) Log.i(TAG, wordString + " does not make the score threshold"); return true; } if (mLength < mMaxLength) { final int copyLen = mLength - insertIndex; Loading
tests/src/com/android/inputmethod/latin/BlueUnderlineTests.java +7 −7 Original line number Diff line number Diff line Loading @@ -30,7 +30,7 @@ public class BlueUnderlineTests extends InputTestsBase { type(STRING_TO_TYPE); sleep(DELAY_TO_WAIT_FOR_UNDERLINE); runMessages(); final SpanGetter span = new SpanGetter(mTextView.getText(), SuggestionSpan.class); final SpanGetter span = new SpanGetter(mEditText.getText(), SuggestionSpan.class); assertEquals("show blue underline, span start", EXPECTED_SPAN_START, span.mStart); assertEquals("show blue underline, span end", EXPECTED_SPAN_END, span.mEnd); assertEquals("show blue underline, span color", true, span.isAutoCorrectionIndicator()); Loading @@ -47,7 +47,7 @@ public class BlueUnderlineTests extends InputTestsBase { type(STRING_2_TO_TYPE); // We haven't have time to look into the dictionary yet, so the line should still be // blue to avoid any flicker. final SpanGetter spanBefore = new SpanGetter(mTextView.getText(), SuggestionSpan.class); final SpanGetter spanBefore = new SpanGetter(mEditText.getText(), SuggestionSpan.class); assertEquals("extend blue underline, span start", EXPECTED_SPAN_START, spanBefore.mStart); assertEquals("extend blue underline, span end", EXPECTED_SPAN_END, spanBefore.mEnd); assertEquals("extend blue underline, span color", true, Loading @@ -55,7 +55,7 @@ public class BlueUnderlineTests extends InputTestsBase { sleep(DELAY_TO_WAIT_FOR_UNDERLINE); runMessages(); // Now we have been able to re-evaluate the word, there shouldn't be an auto-correction span final SpanGetter spanAfter = new SpanGetter(mTextView.getText(), SuggestionSpan.class); final SpanGetter spanAfter = new SpanGetter(mEditText.getText(), SuggestionSpan.class); assertNull("hide blue underline", spanAfter.mSpan); } Loading @@ -76,10 +76,10 @@ public class BlueUnderlineTests extends InputTestsBase { type(Constants.CODE_DELETE); sleep(DELAY_TO_WAIT_FOR_UNDERLINE); runMessages(); final SpanGetter suggestionSpan = new SpanGetter(mTextView.getText(), SuggestionSpan.class); final SpanGetter suggestionSpan = new SpanGetter(mEditText.getText(), SuggestionSpan.class); assertEquals("show no blue underline after backspace, span start should be -1", EXPECTED_SUGGESTION_SPAN_START, suggestionSpan.mStart); final SpanGetter underlineSpan = new SpanGetter(mTextView.getText(), UnderlineSpan.class); final SpanGetter underlineSpan = new SpanGetter(mEditText.getText(), UnderlineSpan.class); assertEquals("should be composing, so should have an underline span", EXPECTED_UNDERLINE_SPAN_START, underlineSpan.mStart); assertEquals("should be composing, so should have an underline span", Loading @@ -103,7 +103,7 @@ public class BlueUnderlineTests extends InputTestsBase { NEW_CURSOR_POSITION, NEW_CURSOR_POSITION, -1, -1); sleep(DELAY_TO_WAIT_FOR_UNDERLINE); runMessages(); final SpanGetter span = new SpanGetter(mTextView.getText(), SuggestionSpan.class); final SpanGetter span = new SpanGetter(mEditText.getText(), SuggestionSpan.class); assertNull("blue underline removed when cursor is moved", span.mSpan); } Loading @@ -117,7 +117,7 @@ public class BlueUnderlineTests extends InputTestsBase { // Here the blue underline has been set. testBlueUnderline() is testing for this already, // so let's not test it here again. // Now simulate the user moving the cursor. SpanGetter span = new SpanGetter(mTextView.getText(), UnderlineSpan.class); SpanGetter span = new SpanGetter(mEditText.getText(), UnderlineSpan.class); assertNull("should not be composing, so should not have an underline span", span.mSpan); } }
tests/src/com/android/inputmethod/latin/InputLogicTests.java +26 −26 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ public class InputLogicTests extends InputTestsBase { public void testTypeWord() { final String WORD_TO_TYPE = "abcd"; type(WORD_TO_TYPE); assertEquals("type word", WORD_TO_TYPE, mTextView.getText().toString()); assertEquals("type word", WORD_TO_TYPE, mEditText.getText().toString()); } public void testPickSuggestionThenBackspace() { Loading @@ -35,7 +35,7 @@ public class InputLogicTests extends InputTestsBase { mLatinIME.onUpdateSelection(0, 0, WORD_TO_TYPE.length(), WORD_TO_TYPE.length(), -1, -1); type(Constants.CODE_DELETE); assertEquals("press suggestion then backspace", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testPickAutoCorrectionThenBackspace() { Loading @@ -48,10 +48,10 @@ public class InputLogicTests extends InputTestsBase { pickSuggestionManually(0, WORD_TO_PICK); mLatinIME.onUpdateSelection(0, 0, WORD_TO_TYPE.length(), WORD_TO_TYPE.length(), -1, -1); assertEquals("pick typed word over auto-correction then backspace", WORD_TO_PICK, mTextView.getText().toString()); mEditText.getText().toString()); type(Constants.CODE_DELETE); assertEquals("pick typed word over auto-correction then backspace", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testPickTypedWordOverAutoCorrectionThenBackspace() { Loading @@ -63,10 +63,10 @@ public class InputLogicTests extends InputTestsBase { pickSuggestionManually(1, WORD_TO_TYPE); mLatinIME.onUpdateSelection(0, 0, WORD_TO_TYPE.length(), WORD_TO_TYPE.length(), -1, -1); assertEquals("pick typed word over auto-correction then backspace", WORD_TO_TYPE, mTextView.getText().toString()); mEditText.getText().toString()); type(Constants.CODE_DELETE); assertEquals("pick typed word over auto-correction then backspace", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testPickDifferentSuggestionThenBackspace() { Loading @@ -79,10 +79,10 @@ public class InputLogicTests extends InputTestsBase { pickSuggestionManually(2, WORD_TO_PICK); mLatinIME.onUpdateSelection(0, 0, WORD_TO_TYPE.length(), WORD_TO_TYPE.length(), -1, -1); assertEquals("pick different suggestion then backspace", WORD_TO_PICK, mTextView.getText().toString()); mEditText.getText().toString()); type(Constants.CODE_DELETE); assertEquals("pick different suggestion then backspace", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testDeleteSelection() { Loading @@ -102,7 +102,7 @@ public class InputLogicTests extends InputTestsBase { mLatinIME.onUpdateSelection(typedLength, typedLength, SELECTION_START, SELECTION_END, -1, -1); type(Constants.CODE_DELETE); assertEquals("delete selection", EXPECTED_RESULT, mTextView.getText().toString()); assertEquals("delete selection", EXPECTED_RESULT, mEditText.getText().toString()); } public void testDeleteSelectionTwice() { Loading @@ -123,21 +123,21 @@ public class InputLogicTests extends InputTestsBase { SELECTION_START, SELECTION_END, -1, -1); type(Constants.CODE_DELETE); type(Constants.CODE_DELETE); assertEquals("delete selection twice", EXPECTED_RESULT, mTextView.getText().toString()); assertEquals("delete selection twice", EXPECTED_RESULT, mEditText.getText().toString()); } public void testAutoCorrect() { final String STRING_TO_TYPE = "tgis "; final String EXPECTED_RESULT = "this "; type(STRING_TO_TYPE); assertEquals("simple auto-correct", EXPECTED_RESULT, mTextView.getText().toString()); assertEquals("simple auto-correct", EXPECTED_RESULT, mEditText.getText().toString()); } public void testAutoCorrectWithPeriod() { final String STRING_TO_TYPE = "tgis."; final String EXPECTED_RESULT = "this."; type(STRING_TO_TYPE); assertEquals("auto-correct with period", EXPECTED_RESULT, mTextView.getText().toString()); assertEquals("auto-correct with period", EXPECTED_RESULT, mEditText.getText().toString()); } public void testAutoCorrectWithPeriodThenRevert() { Loading @@ -147,7 +147,7 @@ public class InputLogicTests extends InputTestsBase { mLatinIME.onUpdateSelection(0, 0, STRING_TO_TYPE.length(), STRING_TO_TYPE.length(), -1, -1); type(Constants.CODE_DELETE); assertEquals("auto-correct with period then revert", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testAutoCorrectWithSpaceThenRevert() { Loading @@ -157,7 +157,7 @@ public class InputLogicTests extends InputTestsBase { mLatinIME.onUpdateSelection(0, 0, STRING_TO_TYPE.length(), STRING_TO_TYPE.length(), -1, -1); type(Constants.CODE_DELETE); assertEquals("auto-correct with space then revert", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testAutoCorrectToSelfDoesNotRevert() { Loading @@ -167,14 +167,14 @@ public class InputLogicTests extends InputTestsBase { mLatinIME.onUpdateSelection(0, 0, STRING_TO_TYPE.length(), STRING_TO_TYPE.length(), -1, -1); type(Constants.CODE_DELETE); assertEquals("auto-correct with space does not revert", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testDoubleSpace() { final String STRING_TO_TYPE = "this "; final String EXPECTED_RESULT = "this. "; type(STRING_TO_TYPE); assertEquals("double space make a period", EXPECTED_RESULT, mTextView.getText().toString()); assertEquals("double space make a period", EXPECTED_RESULT, mEditText.getText().toString()); } public void testCancelDoubleSpace() { Loading @@ -182,7 +182,7 @@ public class InputLogicTests extends InputTestsBase { final String EXPECTED_RESULT = "this "; type(STRING_TO_TYPE); type(Constants.CODE_DELETE); assertEquals("double space make a period", EXPECTED_RESULT, mTextView.getText().toString()); assertEquals("double space make a period", EXPECTED_RESULT, mEditText.getText().toString()); } public void testBackspaceAtStartAfterAutocorrect() { Loading @@ -197,7 +197,7 @@ public class InputLogicTests extends InputTestsBase { NEW_CURSOR_POSITION, NEW_CURSOR_POSITION, -1, -1); type(Constants.CODE_DELETE); assertEquals("auto correct then move cursor to start of line then backspace", EXPECTED_RESULT, mTextView.getText().toString()); EXPECTED_RESULT, mEditText.getText().toString()); } public void testAutoCorrectThenMoveCursorThenBackspace() { Loading @@ -212,7 +212,7 @@ public class InputLogicTests extends InputTestsBase { NEW_CURSOR_POSITION, NEW_CURSOR_POSITION, -1, -1); type(Constants.CODE_DELETE); assertEquals("auto correct then move cursor then backspace", EXPECTED_RESULT, mTextView.getText().toString()); EXPECTED_RESULT, mEditText.getText().toString()); } public void testNoSpaceAfterManualPick() { Loading @@ -221,7 +221,7 @@ public class InputLogicTests extends InputTestsBase { type(WORD_TO_TYPE); pickSuggestionManually(0, WORD_TO_TYPE); assertEquals("no space after manual pick", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testManualPickThenType() { Loading @@ -231,7 +231,7 @@ public class InputLogicTests extends InputTestsBase { type(WORD1_TO_TYPE); pickSuggestionManually(0, WORD1_TO_TYPE); type(WORD2_TO_TYPE); assertEquals("manual pick then type", EXPECTED_RESULT, mTextView.getText().toString()); assertEquals("manual pick then type", EXPECTED_RESULT, mEditText.getText().toString()); } public void testManualPickThenSeparator() { Loading @@ -241,7 +241,7 @@ public class InputLogicTests extends InputTestsBase { type(WORD1_TO_TYPE); pickSuggestionManually(0, WORD1_TO_TYPE); type(WORD2_TO_TYPE); assertEquals("manual pick then separator", EXPECTED_RESULT, mTextView.getText().toString()); assertEquals("manual pick then separator", EXPECTED_RESULT, mEditText.getText().toString()); } public void testManualPickThenStripperThenPick() { Loading @@ -254,7 +254,7 @@ public class InputLogicTests extends InputTestsBase { type(WORD_TO_TYPE); pickSuggestionManually(0, WORD_TO_TYPE); assertEquals("manual pick then \\n then manual pick", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testManualPickThenSpaceThenType() { Loading @@ -265,7 +265,7 @@ public class InputLogicTests extends InputTestsBase { pickSuggestionManually(0, WORD1_TO_TYPE); type(WORD2_TO_TYPE); assertEquals("manual pick then space then type", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testManualPickThenManualPick() { Loading @@ -279,7 +279,7 @@ public class InputLogicTests extends InputTestsBase { // to actually pass the right string. pickSuggestionManually(1, WORD2_TO_PICK); assertEquals("manual pick then manual pick", EXPECTED_RESULT, mTextView.getText().toString()); mEditText.getText().toString()); } public void testDeleteWholeComposingWord() { Loading @@ -288,7 +288,7 @@ public class InputLogicTests extends InputTestsBase { for (int i = 0; i < WORD_TO_TYPE.length(); ++i) { type(Constants.CODE_DELETE); } assertEquals("delete whole composing word", "", mTextView.getText().toString()); assertEquals("delete whole composing word", "", mEditText.getText().toString()); } // TODO: Add some tests for non-BMP characters }