LatinIME/tests/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper...

236 lines
12 KiB
Java

/*
* Copyright (C) 2014 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.suggestions;
import static junit.framework.TestCase.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
import com.android.inputmethod.latin.SuggestedWords;
import org.junit.Test;
import org.junit.runner.RunWith;
@SmallTest
@RunWith(AndroidJUnit4.class)
public class SuggestionStripLayoutHelperTests {
private static void confirmShowTypedWord(final String message, final int inputType) {
assertFalse(message, SuggestionStripLayoutHelper.shouldOmitTypedWord(
inputType,
false /* gestureFloatingPreviewTextEnabled */,
false /* shouldShowUiToAcceptTypedWord */));
assertFalse(message, SuggestionStripLayoutHelper.shouldOmitTypedWord(
inputType,
true /* gestureFloatingPreviewTextEnabled */,
false /* shouldShowUiToAcceptTypedWord */));
assertFalse(message, SuggestionStripLayoutHelper.shouldOmitTypedWord(
inputType,
false /* gestureFloatingPreviewTextEnabled */,
true /* shouldShowUiToAcceptTypedWord */));
assertFalse(message, SuggestionStripLayoutHelper.shouldOmitTypedWord(
inputType,
true /* gestureFloatingPreviewTextEnabled */,
true /* shouldShowUiToAcceptTypedWord */));
}
@Test
public void testShouldShowTypedWord() {
confirmShowTypedWord("no input style",
SuggestedWords.INPUT_STYLE_NONE);
confirmShowTypedWord("application specifed",
SuggestedWords.INPUT_STYLE_APPLICATION_SPECIFIED);
confirmShowTypedWord("recorrection",
SuggestedWords.INPUT_STYLE_RECORRECTION);
}
@Test
public void testShouldOmitTypedWordWhileTyping() {
assertFalse("typing", SuggestionStripLayoutHelper.shouldOmitTypedWord(
SuggestedWords.INPUT_STYLE_TYPING,
false /* gestureFloatingPreviewTextEnabled */,
false /* shouldShowUiToAcceptTypedWord */));
assertFalse("typing", SuggestionStripLayoutHelper.shouldOmitTypedWord(
SuggestedWords.INPUT_STYLE_TYPING,
true /* gestureFloatingPreviewTextEnabled */,
false /* shouldShowUiToAcceptTypedWord */));
assertTrue("typing", SuggestionStripLayoutHelper.shouldOmitTypedWord(
SuggestedWords.INPUT_STYLE_TYPING,
false /* gestureFloatingPreviewTextEnabled */,
true /* shouldShowUiToAcceptTypedWord */));
assertTrue("typing", SuggestionStripLayoutHelper.shouldOmitTypedWord(
SuggestedWords.INPUT_STYLE_TYPING,
true /* gestureFloatingPreviewTextEnabled */,
true /* shouldShowUiToAcceptTypedWord */));
}
@Test
public void testShouldOmitTypedWordWhileGesturing() {
assertFalse("gesturing", SuggestionStripLayoutHelper.shouldOmitTypedWord(
SuggestedWords.INPUT_STYLE_UPDATE_BATCH,
false /* gestureFloatingPreviewTextEnabled */,
false /* shouldShowUiToAcceptTypedWord */));
assertFalse("gesturing", SuggestionStripLayoutHelper.shouldOmitTypedWord(
SuggestedWords.INPUT_STYLE_UPDATE_BATCH,
true /* gestureFloatingPreviewTextEnabled */,
false /* shouldShowUiToAcceptTypedWord */));
assertFalse("gesturing", SuggestionStripLayoutHelper.shouldOmitTypedWord(
SuggestedWords.INPUT_STYLE_UPDATE_BATCH,
false /* gestureFloatingPreviewTextEnabled */,
true /* shouldShowUiToAcceptTypedWord */));
assertTrue("gesturing", SuggestionStripLayoutHelper.shouldOmitTypedWord(
SuggestedWords.INPUT_STYLE_UPDATE_BATCH,
true /* gestureFloatingPreviewTextEnabled */,
true /* shouldShowUiToAcceptTypedWord */));
}
@Test
public void testShouldOmitTypedWordWhenGestured() {
assertFalse("gestured", SuggestionStripLayoutHelper.shouldOmitTypedWord(
SuggestedWords.INPUT_STYLE_TAIL_BATCH,
false /* gestureFloatingPreviewTextEnabled */,
false /* shouldShowUiToAcceptTypedWord */));
assertFalse("gestured", SuggestionStripLayoutHelper.shouldOmitTypedWord(
SuggestedWords.INPUT_STYLE_TAIL_BATCH,
true /* gestureFloatingPreviewTextEnabled */,
false /* shouldShowUiToAcceptTypedWord */));
assertTrue("gestured", SuggestionStripLayoutHelper.shouldOmitTypedWord(
SuggestedWords.INPUT_STYLE_TAIL_BATCH,
false /* gestureFloatingPreviewTextEnabled */,
true /* shouldShowUiToAcceptTypedWord */));
assertTrue("gestured", SuggestionStripLayoutHelper.shouldOmitTypedWord(
SuggestedWords.INPUT_STYLE_TAIL_BATCH,
true /* gestureFloatingPreviewTextEnabled */,
true /* shouldShowUiToAcceptTypedWord */));
}
// Note that this unit test assumes that the number of suggested words in the suggestion strip
// is 3.
private static final int POSITION_OMIT = -1;
private static final int POSITION_LEFT = 0;
private static final int POSITION_CENTER = 1;
private static final int POSITION_RIGHT = 2;
@Test
public void testGetPositionInSuggestionStrip() {
assertEquals("1st word without auto correction", POSITION_CENTER,
SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
SuggestedWords.INDEX_OF_TYPED_WORD /* indexInSuggestedWords */,
false /* willAutoCorrect */,
false /* omitTypedWord */,
POSITION_CENTER /* centerPositionInStrip */,
POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
assertEquals("2nd word without auto correction", POSITION_LEFT,
SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
SuggestedWords.INDEX_OF_AUTO_CORRECTION /* indexInSuggestedWords */,
false /* willAutoCorrect */,
false /* omitTypedWord */,
POSITION_CENTER /* centerPositionInStrip */,
POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
assertEquals("3rd word without auto correction", POSITION_RIGHT,
SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
2 /* indexInSuggestedWords */,
false /* willAutoCorrect */,
false /* omitTypedWord */,
POSITION_CENTER /* centerPositionInStrip */,
POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
assertEquals("typed word with auto correction", POSITION_LEFT,
SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
SuggestedWords.INDEX_OF_TYPED_WORD /* indexInSuggestedWords */,
true /* willAutoCorrect */,
false /* omitTypedWord */,
POSITION_CENTER /* centerPositionInStrip */,
POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
assertEquals("2nd word with auto correction", POSITION_CENTER,
SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
SuggestedWords.INDEX_OF_AUTO_CORRECTION /* indexInSuggestedWords */,
true /* willAutoCorrect */,
false /* omitTypedWord */,
POSITION_CENTER /* centerPositionInStrip */,
POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
assertEquals("3rd word with auto correction", POSITION_RIGHT,
SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
2 /* indexInSuggestedWords */,
true /* willAutoCorrect */,
false /* omitTypedWord */,
POSITION_CENTER /* centerPositionInStrip */,
POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
assertEquals("1st word without auto correction", POSITION_OMIT,
SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
SuggestedWords.INDEX_OF_TYPED_WORD /* indexInSuggestedWords */,
false /* willAutoCorrect */,
true /* omitTypedWord */,
POSITION_CENTER /* centerPositionInStrip */,
POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
assertEquals("2nd word without auto correction", POSITION_CENTER,
SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
SuggestedWords.INDEX_OF_AUTO_CORRECTION /* indexInSuggestedWords */,
false /* willAutoCorrect */,
true /* omitTypedWord */,
POSITION_CENTER /* centerPositionInStrip */,
POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
assertEquals("3rd word without auto correction", POSITION_LEFT,
SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
2 /* indexInSuggestedWords */,
false /* willAutoCorrect */,
true /* omitTypedWord */,
POSITION_CENTER /* centerPositionInStrip */,
POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
assertEquals("4th word without auto correction", POSITION_RIGHT,
SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
3 /* indexInSuggestedWords */,
false /* willAutoCorrect */,
true /* omitTypedWord */,
POSITION_CENTER /* centerPositionInStrip */,
POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
assertEquals("typed word with auto correction", POSITION_OMIT,
SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
SuggestedWords.INDEX_OF_TYPED_WORD /* indexInSuggestedWords */,
true /* willAutoCorrect */,
true /* omitTypedWord */,
POSITION_CENTER /* centerPositionInStrip */,
POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
assertEquals("2nd word with auto correction", POSITION_CENTER,
SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
SuggestedWords.INDEX_OF_AUTO_CORRECTION /* indexInSuggestedWords */,
true /* willAutoCorrect */,
true /* omitTypedWord */,
POSITION_CENTER /* centerPositionInStrip */,
POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
assertEquals("3rd word with auto correction", POSITION_LEFT,
SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
2 /* indexInSuggestedWords */,
true /* willAutoCorrect */,
true /* omitTypedWord */,
POSITION_CENTER /* centerPositionInStrip */,
POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
assertEquals("4th word with auto correction", POSITION_RIGHT,
SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
3 /* indexInSuggestedWords */,
true /* willAutoCorrect */,
true /* omitTypedWord */,
POSITION_CENTER /* centerPositionInStrip */,
POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
}
}