blob: f3273a2d148f31b1dd1a8de08a59fc069b8fc2b5 [file] [log] [blame]
Tadashi G. Takaoka2637be22014-08-13 14:52:36 +09001/*
2 * Copyright (C) 2014 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.inputmethod.latin.suggestions;
18
19import android.test.AndroidTestCase;
20import android.test.suitebuilder.annotation.SmallTest;
21
22import com.android.inputmethod.latin.SuggestedWords;
23
24@SmallTest
25public class SuggestionStripLayoutHelperTests extends AndroidTestCase {
26 private static void confirmShowTypedWord(final String message, final int inputType) {
27 assertFalse(message, SuggestionStripLayoutHelper.shouldOmitTypedWord(
28 inputType,
29 false /* gestureFloatingPreviewTextEnabled */,
30 false /* shouldShowUiToAcceptTypedWord */));
31 assertFalse(message, SuggestionStripLayoutHelper.shouldOmitTypedWord(
32 inputType,
33 true /* gestureFloatingPreviewTextEnabled */,
34 false /* shouldShowUiToAcceptTypedWord */));
35 assertFalse(message, SuggestionStripLayoutHelper.shouldOmitTypedWord(
36 inputType,
37 false /* gestureFloatingPreviewTextEnabled */,
38 true /* shouldShowUiToAcceptTypedWord */));
39 assertFalse(message, SuggestionStripLayoutHelper.shouldOmitTypedWord(
40 inputType,
41 true /* gestureFloatingPreviewTextEnabled */,
42 true /* shouldShowUiToAcceptTypedWord */));
43 }
44
45 public void testShouldShowTypedWord() {
46 confirmShowTypedWord("no input style",
47 SuggestedWords.INPUT_STYLE_NONE);
48 confirmShowTypedWord("application specifed",
49 SuggestedWords.INPUT_STYLE_APPLICATION_SPECIFIED);
50 confirmShowTypedWord("recorrection",
51 SuggestedWords.INPUT_STYLE_RECORRECTION);
52 }
53
54 public void testshouldOmitTypedWordWhileTyping() {
55 assertFalse("typing", SuggestionStripLayoutHelper.shouldOmitTypedWord(
56 SuggestedWords.INPUT_STYLE_TYPING,
57 false /* gestureFloatingPreviewTextEnabled */,
58 false /* shouldShowUiToAcceptTypedWord */));
59 assertFalse("typing", SuggestionStripLayoutHelper.shouldOmitTypedWord(
60 SuggestedWords.INPUT_STYLE_TYPING,
61 true /* gestureFloatingPreviewTextEnabled */,
62 false /* shouldShowUiToAcceptTypedWord */));
63 assertTrue("typing", SuggestionStripLayoutHelper.shouldOmitTypedWord(
64 SuggestedWords.INPUT_STYLE_TYPING,
65 false /* gestureFloatingPreviewTextEnabled */,
66 true /* shouldShowUiToAcceptTypedWord */));
67 assertTrue("typing", SuggestionStripLayoutHelper.shouldOmitTypedWord(
68 SuggestedWords.INPUT_STYLE_TYPING,
69 true /* gestureFloatingPreviewTextEnabled */,
70 true /* shouldShowUiToAcceptTypedWord */));
71 }
72
73 public void testshouldOmitTypedWordWhileGesturing() {
74 assertFalse("gesturing", SuggestionStripLayoutHelper.shouldOmitTypedWord(
75 SuggestedWords.INPUT_STYLE_UPDATE_BATCH,
76 false /* gestureFloatingPreviewTextEnabled */,
77 false /* shouldShowUiToAcceptTypedWord */));
78 assertFalse("gesturing", SuggestionStripLayoutHelper.shouldOmitTypedWord(
79 SuggestedWords.INPUT_STYLE_UPDATE_BATCH,
80 true /* gestureFloatingPreviewTextEnabled */,
81 false /* shouldShowUiToAcceptTypedWord */));
82 assertFalse("gesturing", SuggestionStripLayoutHelper.shouldOmitTypedWord(
83 SuggestedWords.INPUT_STYLE_UPDATE_BATCH,
84 false /* gestureFloatingPreviewTextEnabled */,
85 true /* shouldShowUiToAcceptTypedWord */));
86 assertTrue("gesturing", SuggestionStripLayoutHelper.shouldOmitTypedWord(
87 SuggestedWords.INPUT_STYLE_UPDATE_BATCH,
88 true /* gestureFloatingPreviewTextEnabled */,
89 true /* shouldShowUiToAcceptTypedWord */));
90 }
91
92 public void testshouldOmitTypedWordWhenGestured() {
93 assertFalse("gestured", SuggestionStripLayoutHelper.shouldOmitTypedWord(
94 SuggestedWords.INPUT_STYLE_TAIL_BATCH,
95 false /* gestureFloatingPreviewTextEnabled */,
96 false /* shouldShowUiToAcceptTypedWord */));
97 assertFalse("gestured", SuggestionStripLayoutHelper.shouldOmitTypedWord(
98 SuggestedWords.INPUT_STYLE_TAIL_BATCH,
99 true /* gestureFloatingPreviewTextEnabled */,
100 false /* shouldShowUiToAcceptTypedWord */));
101 assertTrue("gestured", SuggestionStripLayoutHelper.shouldOmitTypedWord(
102 SuggestedWords.INPUT_STYLE_TAIL_BATCH,
103 false /* gestureFloatingPreviewTextEnabled */,
104 true /* shouldShowUiToAcceptTypedWord */));
105 assertTrue("gestured", SuggestionStripLayoutHelper.shouldOmitTypedWord(
106 SuggestedWords.INPUT_STYLE_TAIL_BATCH,
107 true /* gestureFloatingPreviewTextEnabled */,
108 true /* shouldShowUiToAcceptTypedWord */));
109 }
110
111 // Note that this unit test assumes that the number of suggested words in the suggestion strip
112 // is 3.
113 private static final int POSITION_OMIT = -1;
114 private static final int POSITION_LEFT = 0;
115 private static final int POSITION_CENTER = 1;
116 private static final int POSITION_RIGHT = 2;
117
118 public void testGetPositionInSuggestionStrip() {
119 assertEquals("1st word without auto correction", POSITION_CENTER,
120 SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
121 SuggestedWords.INDEX_OF_TYPED_WORD /* indexInSuggestedWords */,
122 false /* willAutoCorrect */,
123 false /* omitTypedWord */,
124 POSITION_CENTER /* centerPositionInStrip */,
125 POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
126 assertEquals("2nd word without auto correction", POSITION_LEFT,
127 SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
128 SuggestedWords.INDEX_OF_AUTO_CORRECTION /* indexInSuggestedWords */,
129 false /* willAutoCorrect */,
130 false /* omitTypedWord */,
131 POSITION_CENTER /* centerPositionInStrip */,
132 POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
133 assertEquals("3rd word without auto correction", POSITION_RIGHT,
134 SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
135 2 /* indexInSuggestedWords */,
136 false /* willAutoCorrect */,
137 false /* omitTypedWord */,
138 POSITION_CENTER /* centerPositionInStrip */,
139 POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
140
141 assertEquals("typed word with auto correction", POSITION_LEFT,
142 SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
143 SuggestedWords.INDEX_OF_TYPED_WORD /* indexInSuggestedWords */,
144 true /* willAutoCorrect */,
145 false /* omitTypedWord */,
146 POSITION_CENTER /* centerPositionInStrip */,
147 POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
148 assertEquals("2nd word with auto correction", POSITION_CENTER,
149 SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
150 SuggestedWords.INDEX_OF_AUTO_CORRECTION /* indexInSuggestedWords */,
151 true /* willAutoCorrect */,
152 false /* omitTypedWord */,
153 POSITION_CENTER /* centerPositionInStrip */,
154 POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
155 assertEquals("3rd word with auto correction", POSITION_RIGHT,
156 SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
157 2 /* indexInSuggestedWords */,
158 true /* willAutoCorrect */,
159 false /* omitTypedWord */,
160 POSITION_CENTER /* centerPositionInStrip */,
161 POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
162
163 assertEquals("1st word without auto correction", POSITION_OMIT,
164 SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
165 SuggestedWords.INDEX_OF_TYPED_WORD /* indexInSuggestedWords */,
166 false /* willAutoCorrect */,
167 true /* omitTypedWord */,
168 POSITION_CENTER /* centerPositionInStrip */,
169 POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
170 assertEquals("2nd word without auto correction", POSITION_CENTER,
171 SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
172 SuggestedWords.INDEX_OF_AUTO_CORRECTION /* indexInSuggestedWords */,
173 false /* willAutoCorrect */,
174 true /* omitTypedWord */,
175 POSITION_CENTER /* centerPositionInStrip */,
176 POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
177 assertEquals("3rd word without auto correction", POSITION_LEFT,
178 SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
179 2 /* indexInSuggestedWords */,
180 false /* willAutoCorrect */,
181 true /* omitTypedWord */,
182 POSITION_CENTER /* centerPositionInStrip */,
183 POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
184 assertEquals("4th word without auto correction", POSITION_RIGHT,
185 SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
186 3 /* indexInSuggestedWords */,
187 false /* willAutoCorrect */,
188 true /* omitTypedWord */,
189 POSITION_CENTER /* centerPositionInStrip */,
190 POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
191
192 assertEquals("typed word with auto correction", POSITION_OMIT,
193 SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
194 SuggestedWords.INDEX_OF_TYPED_WORD /* indexInSuggestedWords */,
195 true /* willAutoCorrect */,
196 true /* omitTypedWord */,
197 POSITION_CENTER /* centerPositionInStrip */,
198 POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
199 assertEquals("2nd word with auto correction", POSITION_CENTER,
200 SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
201 SuggestedWords.INDEX_OF_AUTO_CORRECTION /* indexInSuggestedWords */,
202 true /* willAutoCorrect */,
203 true /* omitTypedWord */,
204 POSITION_CENTER /* centerPositionInStrip */,
205 POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
206 assertEquals("3rd word with auto correction", POSITION_LEFT,
207 SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
208 2 /* indexInSuggestedWords */,
209 true /* willAutoCorrect */,
210 true /* omitTypedWord */,
211 POSITION_CENTER /* centerPositionInStrip */,
212 POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
213 assertEquals("4th word with auto correction", POSITION_RIGHT,
214 SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
215 3 /* indexInSuggestedWords */,
216 true /* willAutoCorrect */,
217 true /* omitTypedWord */,
218 POSITION_CENTER /* centerPositionInStrip */,
219 POSITION_LEFT /* typedWordPositionWhenAutoCorrect */));
220 }
221}