OLD | NEW |
---|---|
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.content.browser.input; | 5 package org.chromium.content.browser.input; |
6 | 6 |
7 import android.annotation.TargetApi; | 7 import android.annotation.TargetApi; |
8 import android.graphics.Matrix; | 8 import android.graphics.Matrix; |
9 import android.graphics.RectF; | 9 import android.graphics.RectF; |
10 import android.os.Build; | 10 import android.os.Build; |
11 import android.support.test.filters.SmallTest; | 11 import android.support.test.filters.SmallTest; |
12 import android.test.InstrumentationTestCase; | |
13 import android.text.TextUtils; | 12 import android.text.TextUtils; |
14 import android.view.View; | 13 import android.view.View; |
15 import android.view.inputmethod.CursorAnchorInfo; | 14 import android.view.inputmethod.CursorAnchorInfo; |
16 | 15 |
16 import org.junit.Assert; | |
17 import org.junit.Test; | |
18 import org.junit.runner.RunWith; | |
19 | |
20 import org.chromium.base.test.BaseJUnit4ClassRunner; | |
17 import org.chromium.base.test.util.Feature; | 21 import org.chromium.base.test.util.Feature; |
18 import org.chromium.base.test.util.MinAndroidSdkLevel; | 22 import org.chromium.base.test.util.MinAndroidSdkLevel; |
19 import org.chromium.content.browser.RenderCoordinates; | 23 import org.chromium.content.browser.RenderCoordinates; |
20 import org.chromium.content.browser.test.util.TestInputMethodManagerWrapper; | 24 import org.chromium.content.browser.test.util.TestInputMethodManagerWrapper; |
21 | 25 |
22 /** | 26 /** |
23 * Test for {@link CursorAnchorInfoController}. | 27 * Test for {@link CursorAnchorInfoController}. |
24 */ | 28 */ |
29 @RunWith(BaseJUnit4ClassRunner.class) | |
25 @MinAndroidSdkLevel(Build.VERSION_CODES.LOLLIPOP) | 30 @MinAndroidSdkLevel(Build.VERSION_CODES.LOLLIPOP) |
26 @TargetApi(Build.VERSION_CODES.LOLLIPOP) | 31 @TargetApi(Build.VERSION_CODES.LOLLIPOP) |
27 public class CursorAnchorInfoControllerTest extends InstrumentationTestCase { | 32 public class CursorAnchorInfoControllerTest { |
33 private static final double ASSERTION_DELTA = 0.00000001; | |
the real yoland
2017/03/08 23:39:03
Set ASSERTION_DELTA to be 0.00000001 for no partic
| |
34 | |
28 private static RenderCoordinates createRenderCoordinates(float deviceScaleFa ctor, | 35 private static RenderCoordinates createRenderCoordinates(float deviceScaleFa ctor, |
29 float contentOffsetYPix) { | 36 float contentOffsetYPix) { |
30 RenderCoordinates renderCoordinates = new RenderCoordinates(); | 37 RenderCoordinates renderCoordinates = new RenderCoordinates(); |
31 renderCoordinates.setFrameInfoForTest(deviceScaleFactor, contentOffsetYP ix); | 38 renderCoordinates.setFrameInfoForTest(deviceScaleFactor, contentOffsetYP ix); |
32 return renderCoordinates; | 39 return renderCoordinates; |
33 } | 40 } |
34 | 41 |
35 private static final class TestViewDelegate implements CursorAnchorInfoContr oller.ViewDelegate { | 42 private static final class TestViewDelegate implements CursorAnchorInfoContr oller.ViewDelegate { |
36 public int locationX; | 43 public int locationX; |
37 public int locationY; | 44 public int locationY; |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
85 public void clearTextAndSelection(CursorAnchorInfoController controller) { | 92 public void clearTextAndSelection(CursorAnchorInfoController controller) { |
86 updateTextAndSelection(controller, null, -1, -1, -1, -1); | 93 updateTextAndSelection(controller, null, -1, -1, -1, -1); |
87 } | 94 } |
88 } | 95 } |
89 | 96 |
90 private void assertScaleAndTranslate(float expectedScale, float expectedTran slateX, | 97 private void assertScaleAndTranslate(float expectedScale, float expectedTran slateX, |
91 float expectedTranslateY, CursorAnchorInfo actual) { | 98 float expectedTranslateY, CursorAnchorInfo actual) { |
92 Matrix expectedMatrix = new Matrix(); | 99 Matrix expectedMatrix = new Matrix(); |
93 expectedMatrix.setScale(expectedScale, expectedScale); | 100 expectedMatrix.setScale(expectedScale, expectedScale); |
94 expectedMatrix.postTranslate(expectedTranslateX, expectedTranslateY); | 101 expectedMatrix.postTranslate(expectedTranslateX, expectedTranslateY); |
95 assertEquals(expectedMatrix, actual.getMatrix()); | 102 Assert.assertEquals(expectedMatrix, actual.getMatrix()); |
96 } | 103 } |
97 | 104 |
98 private void assertHasInsertionMarker(int expectedFlags, float expectedHoriz ontal, | 105 private void assertHasInsertionMarker(int expectedFlags, float expectedHoriz ontal, |
99 float expectedTop, float expectedBaseline, float expectedBottom, | 106 float expectedTop, float expectedBaseline, float expectedBottom, |
100 CursorAnchorInfo actual) { | 107 CursorAnchorInfo actual) { |
101 assertEquals(expectedFlags, actual.getInsertionMarkerFlags()); | 108 Assert.assertEquals(expectedFlags, actual.getInsertionMarkerFlags(), ASS ERTION_DELTA); |
102 assertEquals(expectedHorizontal, actual.getInsertionMarkerHorizontal()); | 109 Assert.assertEquals( |
103 assertEquals(expectedTop, actual.getInsertionMarkerTop()); | 110 expectedHorizontal, actual.getInsertionMarkerHorizontal(), ASSER TION_DELTA); |
104 assertEquals(expectedBaseline, actual.getInsertionMarkerBaseline()); | 111 Assert.assertEquals(expectedTop, actual.getInsertionMarkerTop(), ASSERTI ON_DELTA); |
105 assertEquals(expectedBottom, actual.getInsertionMarkerBottom()); | 112 Assert.assertEquals(expectedBaseline, actual.getInsertionMarkerBaseline( ), ASSERTION_DELTA); |
113 Assert.assertEquals(expectedBottom, actual.getInsertionMarkerBottom(), A SSERTION_DELTA); | |
106 } | 114 } |
107 | 115 |
108 private void assertHasNoInsertionMarker(CursorAnchorInfo actual) { | 116 private void assertHasNoInsertionMarker(CursorAnchorInfo actual) { |
109 assertEquals(0, actual.getInsertionMarkerFlags()); | 117 Assert.assertEquals(0, actual.getInsertionMarkerFlags()); |
110 assertTrue(Float.isNaN(actual.getInsertionMarkerHorizontal())); | 118 Assert.assertTrue(Float.isNaN(actual.getInsertionMarkerHorizontal())); |
111 assertTrue(Float.isNaN(actual.getInsertionMarkerTop())); | 119 Assert.assertTrue(Float.isNaN(actual.getInsertionMarkerTop())); |
112 assertTrue(Float.isNaN(actual.getInsertionMarkerBaseline())); | 120 Assert.assertTrue(Float.isNaN(actual.getInsertionMarkerBaseline())); |
113 assertTrue(Float.isNaN(actual.getInsertionMarkerBottom())); | 121 Assert.assertTrue(Float.isNaN(actual.getInsertionMarkerBottom())); |
114 } | 122 } |
115 | 123 |
116 private void assertComposingText(CharSequence expectedComposingText, | 124 private void assertComposingText(CharSequence expectedComposingText, |
117 int expectedComposingTextStart, CursorAnchorInfo actual) { | 125 int expectedComposingTextStart, CursorAnchorInfo actual) { |
118 assertTrue(TextUtils.equals(expectedComposingText, actual.getComposingTe xt())); | 126 Assert.assertTrue(TextUtils.equals(expectedComposingText, actual.getComp osingText())); |
119 assertEquals(expectedComposingTextStart, actual.getComposingTextStart()) ; | 127 Assert.assertEquals(expectedComposingTextStart, actual.getComposingTextS tart()); |
120 } | 128 } |
121 | 129 |
122 private void assertSelection(int expecteSelectionStart, int expecteSelection End, | 130 private void assertSelection(int expecteSelectionStart, int expecteSelection End, |
123 CursorAnchorInfo actual) { | 131 CursorAnchorInfo actual) { |
124 assertEquals(expecteSelectionStart, actual.getSelectionStart()); | 132 Assert.assertEquals(expecteSelectionStart, actual.getSelectionStart()); |
125 assertEquals(expecteSelectionEnd, actual.getSelectionEnd()); | 133 Assert.assertEquals(expecteSelectionEnd, actual.getSelectionEnd()); |
126 } | 134 } |
127 | 135 |
136 @Test | |
128 @SmallTest | 137 @SmallTest |
129 @Feature({"Input-Text-IME"}) | 138 @Feature({"Input-Text-IME"}) |
130 public void testFocusedNodeChanged() { | 139 public void testFocusedNodeChanged() { |
131 TestInputMethodManagerWrapper immw = new TestInputMethodManagerWrapper(n ull); | 140 TestInputMethodManagerWrapper immw = new TestInputMethodManagerWrapper(n ull); |
132 TestViewDelegate viewDelegate = new TestViewDelegate(); | 141 TestViewDelegate viewDelegate = new TestViewDelegate(); |
133 TestComposingTextDelegate composingTextDelegate = new TestComposingTextD elegate(); | 142 TestComposingTextDelegate composingTextDelegate = new TestComposingTextD elegate(); |
134 CursorAnchorInfoController controller = CursorAnchorInfoController.creat eForTest( | 143 CursorAnchorInfoController controller = CursorAnchorInfoController.creat eForTest( |
135 immw, composingTextDelegate, viewDelegate); | 144 immw, composingTextDelegate, viewDelegate); |
136 View view = null; | 145 View view = null; |
137 | 146 |
138 viewDelegate.locationX = 0; | 147 viewDelegate.locationX = 0; |
139 viewDelegate.locationY = 0; | 148 viewDelegate.locationY = 0; |
140 | 149 |
141 assertFalse( | 150 Assert.assertFalse( |
142 "IC#onRequestCursorUpdates() must be rejected if the focused nod e is not editable.", | 151 "IC#onRequestCursorUpdates() must be rejected if the focused nod e is not editable.", |
143 controller.onRequestCursorUpdates( | 152 controller.onRequestCursorUpdates( |
144 false /* immediate request */, true /* monitor request * /, view)); | 153 false /* immediate request */, true /* monitor request * /, view)); |
145 | 154 |
146 // Make sure that the focused node is considered to be non-editable by d efault. | 155 // Make sure that the focused node is considered to be non-editable by d efault. |
147 controller.setCompositionCharacterBounds(new float[] {0.0f, 1.0f, 2.0f, 3.0f}, view); | 156 controller.setCompositionCharacterBounds(new float[] {0.0f, 1.0f, 2.0f, 3.0f}, view); |
148 composingTextDelegate.updateTextAndSelection(controller, "0", 0, 1, 0, 1 ); | 157 composingTextDelegate.updateTextAndSelection(controller, "0", 0, 1, 0, 1 ); |
149 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), | 158 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), |
150 true, true, 2.0f, 0.0f, 3.0f, view); | 159 true, true, 2.0f, 0.0f, 3.0f, view); |
151 assertEquals(0, immw.getUpdateCursorAnchorInfoCounter()); | 160 Assert.assertEquals(0, immw.getUpdateCursorAnchorInfoCounter()); |
152 | 161 |
153 controller.focusedNodeChanged(false); | 162 controller.focusedNodeChanged(false); |
154 composingTextDelegate.clearTextAndSelection(controller); | 163 composingTextDelegate.clearTextAndSelection(controller); |
155 | 164 |
156 // Make sure that the controller does not crash even if it is called whi le the focused node | 165 // Make sure that the controller does not crash even if it is called whi le the focused node |
157 // is not editable. | 166 // is not editable. |
158 controller.setCompositionCharacterBounds(new float[] {30.0f, 1.0f, 32.0f , 3.0f}, view); | 167 controller.setCompositionCharacterBounds(new float[] {30.0f, 1.0f, 32.0f , 3.0f}, view); |
159 composingTextDelegate.updateTextAndSelection(controller, "1", 0, 1, 0, 1 ); | 168 composingTextDelegate.updateTextAndSelection(controller, "1", 0, 1, 0, 1 ); |
160 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 100.0f), | 169 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 100.0f), |
161 true, true, 2.0f, 0.0f, 3.0f, view); | 170 true, true, 2.0f, 0.0f, 3.0f, view); |
162 assertEquals(0, immw.getUpdateCursorAnchorInfoCounter()); | 171 Assert.assertEquals(0, immw.getUpdateCursorAnchorInfoCounter()); |
163 } | 172 } |
164 | 173 |
174 @Test | |
165 @SmallTest | 175 @SmallTest |
166 @Feature({"Input-Text-IME"}) | 176 @Feature({"Input-Text-IME"}) |
167 public void testImmediateMode() { | 177 public void testImmediateMode() { |
168 TestInputMethodManagerWrapper immw = new TestInputMethodManagerWrapper(n ull); | 178 TestInputMethodManagerWrapper immw = new TestInputMethodManagerWrapper(n ull); |
169 TestViewDelegate viewDelegate = new TestViewDelegate(); | 179 TestViewDelegate viewDelegate = new TestViewDelegate(); |
170 TestComposingTextDelegate composingTextDelegate = new TestComposingTextD elegate(); | 180 TestComposingTextDelegate composingTextDelegate = new TestComposingTextD elegate(); |
171 CursorAnchorInfoController controller = CursorAnchorInfoController.creat eForTest( | 181 CursorAnchorInfoController controller = CursorAnchorInfoController.creat eForTest( |
172 immw, composingTextDelegate, viewDelegate); | 182 immw, composingTextDelegate, viewDelegate); |
173 View view = null; | 183 View view = null; |
174 viewDelegate.locationX = 0; | 184 viewDelegate.locationX = 0; |
175 viewDelegate.locationY = 0; | 185 viewDelegate.locationY = 0; |
176 | 186 |
177 controller.focusedNodeChanged(true); | 187 controller.focusedNodeChanged(true); |
178 composingTextDelegate.clearTextAndSelection(controller); | 188 composingTextDelegate.clearTextAndSelection(controller); |
179 | 189 |
180 // Make sure that #updateCursorAnchorInfo() is not be called until the m atrix info becomes | 190 // Make sure that #updateCursorAnchorInfo() is not be called until the m atrix info becomes |
181 // available with #onUpdateFrameInfo(). | 191 // available with #onUpdateFrameInfo(). |
182 assertTrue(controller.onRequestCursorUpdates( | 192 Assert.assertTrue(controller.onRequestCursorUpdates( |
183 true /* immediate request */, false /* monitor request */, view) ); | 193 true /* immediate request */, false /* monitor request */, view) ); |
184 controller.setCompositionCharacterBounds(new float[] {0.0f, 1.0f, 2.0f, 3.0f}, view); | 194 controller.setCompositionCharacterBounds(new float[] {0.0f, 1.0f, 2.0f, 3.0f}, view); |
185 composingTextDelegate.updateTextAndSelection(controller, "0", 0, 1, 0, 1 ); | 195 composingTextDelegate.updateTextAndSelection(controller, "0", 0, 1, 0, 1 ); |
186 assertEquals(0, immw.getUpdateCursorAnchorInfoCounter()); | 196 Assert.assertEquals(0, immw.getUpdateCursorAnchorInfoCounter()); |
187 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), | 197 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), |
188 true, true, 2.0f, 0.0f, 3.0f, view); | 198 true, true, 2.0f, 0.0f, 3.0f, view); |
189 assertEquals(1, immw.getUpdateCursorAnchorInfoCounter()); | 199 Assert.assertEquals(1, immw.getUpdateCursorAnchorInfoCounter()); |
190 assertScaleAndTranslate(1.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); | 200 assertScaleAndTranslate(1.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); |
191 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, | 201 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, |
192 3.0f, immw.getLastCursorAnchorInfo()); | 202 3.0f, immw.getLastCursorAnchorInfo()); |
193 assertEquals(new RectF(0.0f, 1.0f, 2.0f, 3.0f), | 203 Assert.assertEquals(new RectF(0.0f, 1.0f, 2.0f, 3.0f), |
194 immw.getLastCursorAnchorInfo().getCharacterBounds(0)); | 204 immw.getLastCursorAnchorInfo().getCharacterBounds(0)); |
195 assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, | 205 Assert.assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, |
196 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0)); | 206 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0)); |
197 assertComposingText("0", 0, immw.getLastCursorAnchorInfo()); | 207 assertComposingText("0", 0, immw.getLastCursorAnchorInfo()); |
198 assertSelection(0, 1, immw.getLastCursorAnchorInfo()); | 208 assertSelection(0, 1, immw.getLastCursorAnchorInfo()); |
199 immw.clearLastCursorAnchorInfo(); | 209 immw.clearLastCursorAnchorInfo(); |
200 | 210 |
201 // Make sure that 2nd call of #onUpdateFrameInfo() is ignored. | 211 // Make sure that 2nd call of #onUpdateFrameInfo() is ignored. |
202 controller.onUpdateFrameInfo(createRenderCoordinates(2.0f, 0.0f), | 212 controller.onUpdateFrameInfo(createRenderCoordinates(2.0f, 0.0f), |
203 true, true, 2.0f, 0.0f, 3.0f, view); | 213 true, true, 2.0f, 0.0f, 3.0f, view); |
204 assertEquals(1, immw.getUpdateCursorAnchorInfoCounter()); | 214 Assert.assertEquals(1, immw.getUpdateCursorAnchorInfoCounter()); |
205 | 215 |
206 // Make sure that #onUpdateFrameInfo() is immediately called because the matrix info is | 216 // Make sure that #onUpdateFrameInfo() is immediately called because the matrix info is |
207 // already available. | 217 // already available. |
208 assertTrue(controller.onRequestCursorUpdates( | 218 Assert.assertTrue(controller.onRequestCursorUpdates( |
209 true /* immediate request */, false /* monitor request */, view) ); | 219 true /* immediate request */, false /* monitor request */, view) ); |
210 assertEquals(2, immw.getUpdateCursorAnchorInfoCounter()); | 220 Assert.assertEquals(2, immw.getUpdateCursorAnchorInfoCounter()); |
211 assertScaleAndTranslate(2.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); | 221 assertScaleAndTranslate(2.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); |
212 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, | 222 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, |
213 3.0f, immw.getLastCursorAnchorInfo()); | 223 3.0f, immw.getLastCursorAnchorInfo()); |
214 assertEquals(new RectF(0.0f, 1.0f, 2.0f, 3.0f), | 224 Assert.assertEquals(new RectF(0.0f, 1.0f, 2.0f, 3.0f), |
215 immw.getLastCursorAnchorInfo().getCharacterBounds(0)); | 225 immw.getLastCursorAnchorInfo().getCharacterBounds(0)); |
216 assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, | 226 Assert.assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, |
217 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0)); | 227 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0)); |
218 assertComposingText("0", 0, immw.getLastCursorAnchorInfo()); | 228 assertComposingText("0", 0, immw.getLastCursorAnchorInfo()); |
219 assertSelection(0, 1, immw.getLastCursorAnchorInfo()); | 229 assertSelection(0, 1, immw.getLastCursorAnchorInfo()); |
220 immw.clearLastCursorAnchorInfo(); | 230 immw.clearLastCursorAnchorInfo(); |
221 | 231 |
222 // Make sure that CURSOR_UPDATE_IMMEDIATE and CURSOR_UPDATE_MONITOR can be specified at | 232 // Make sure that CURSOR_UPDATE_IMMEDIATE and CURSOR_UPDATE_MONITOR can be specified at |
223 // the same time. | 233 // the same time. |
224 assertTrue(controller.onRequestCursorUpdates( | 234 Assert.assertTrue(controller.onRequestCursorUpdates( |
225 true /* immediate request*/, true /* monitor request */, view)); | 235 true /* immediate request*/, true /* monitor request */, view)); |
226 assertEquals(3, immw.getUpdateCursorAnchorInfoCounter()); | 236 Assert.assertEquals(3, immw.getUpdateCursorAnchorInfoCounter()); |
227 assertScaleAndTranslate(2.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); | 237 assertScaleAndTranslate(2.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); |
228 immw.clearLastCursorAnchorInfo(); | 238 immw.clearLastCursorAnchorInfo(); |
229 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), | 239 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), |
230 true, true, 2.0f, 0.0f, 3.0f, view); | 240 true, true, 2.0f, 0.0f, 3.0f, view); |
231 assertEquals(4, immw.getUpdateCursorAnchorInfoCounter()); | 241 Assert.assertEquals(4, immw.getUpdateCursorAnchorInfoCounter()); |
232 assertScaleAndTranslate(1.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); | 242 assertScaleAndTranslate(1.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); |
233 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, | 243 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, |
234 3.0f, immw.getLastCursorAnchorInfo()); | 244 3.0f, immw.getLastCursorAnchorInfo()); |
235 assertEquals(new RectF(0.0f, 1.0f, 2.0f, 3.0f), | 245 Assert.assertEquals(new RectF(0.0f, 1.0f, 2.0f, 3.0f), |
236 immw.getLastCursorAnchorInfo().getCharacterBounds(0)); | 246 immw.getLastCursorAnchorInfo().getCharacterBounds(0)); |
237 assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, | 247 Assert.assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, |
238 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0)); | 248 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0)); |
239 assertComposingText("0", 0, immw.getLastCursorAnchorInfo()); | 249 assertComposingText("0", 0, immw.getLastCursorAnchorInfo()); |
240 assertSelection(0, 1, immw.getLastCursorAnchorInfo()); | 250 assertSelection(0, 1, immw.getLastCursorAnchorInfo()); |
241 immw.clearLastCursorAnchorInfo(); | 251 immw.clearLastCursorAnchorInfo(); |
242 | 252 |
243 // Make sure that CURSOR_UPDATE_IMMEDIATE is cleared if the focused node becomes | 253 // Make sure that CURSOR_UPDATE_IMMEDIATE is cleared if the focused node becomes |
244 // non-editable. | 254 // non-editable. |
245 controller.focusedNodeChanged(false); | 255 controller.focusedNodeChanged(false); |
246 controller.focusedNodeChanged(true); | 256 controller.focusedNodeChanged(true); |
247 composingTextDelegate.clearTextAndSelection(controller); | 257 composingTextDelegate.clearTextAndSelection(controller); |
248 assertTrue(controller.onRequestCursorUpdates( | 258 Assert.assertTrue(controller.onRequestCursorUpdates( |
249 true /* immediate request */, false /* monitor request */, view) ); | 259 true /* immediate request */, false /* monitor request */, view) ); |
250 controller.focusedNodeChanged(false); | 260 controller.focusedNodeChanged(false); |
251 composingTextDelegate.clearTextAndSelection(controller); | 261 composingTextDelegate.clearTextAndSelection(controller); |
252 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 100.0f), | 262 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 100.0f), |
253 true, true, 2.0f, 0.0f, 3.0f, view); | 263 true, true, 2.0f, 0.0f, 3.0f, view); |
254 assertEquals(4, immw.getUpdateCursorAnchorInfoCounter()); | 264 Assert.assertEquals(4, immw.getUpdateCursorAnchorInfoCounter()); |
255 | 265 |
256 // Make sure that CURSOR_UPDATE_IMMEDIATE can be enabled again. | 266 // Make sure that CURSOR_UPDATE_IMMEDIATE can be enabled again. |
257 controller.focusedNodeChanged(true); | 267 controller.focusedNodeChanged(true); |
258 composingTextDelegate.clearTextAndSelection(controller); | 268 composingTextDelegate.clearTextAndSelection(controller); |
259 assertTrue(controller.onRequestCursorUpdates( | 269 Assert.assertTrue(controller.onRequestCursorUpdates( |
260 true /* immediate request */, false /* monitor request */, view) ); | 270 true /* immediate request */, false /* monitor request */, view) ); |
261 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), | 271 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), |
262 true, true, 2.0f, 0.0f, 3.0f, view); | 272 true, true, 2.0f, 0.0f, 3.0f, view); |
263 assertEquals(5, immw.getUpdateCursorAnchorInfoCounter()); | 273 Assert.assertEquals(5, immw.getUpdateCursorAnchorInfoCounter()); |
264 assertScaleAndTranslate(1.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); | 274 assertScaleAndTranslate(1.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); |
265 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, | 275 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, |
266 3.0f, immw.getLastCursorAnchorInfo()); | 276 3.0f, immw.getLastCursorAnchorInfo()); |
267 assertEquals(null, immw.getLastCursorAnchorInfo().getCharacterBounds(0)) ; | 277 Assert.assertEquals(null, immw.getLastCursorAnchorInfo().getCharacterBou nds(0)); |
268 assertEquals(0, immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0 )); | 278 Assert.assertEquals(0, immw.getLastCursorAnchorInfo().getCharacterBounds Flags(0)); |
269 assertComposingText(null, -1, immw.getLastCursorAnchorInfo()); | 279 assertComposingText(null, -1, immw.getLastCursorAnchorInfo()); |
270 assertSelection(-1, -1, immw.getLastCursorAnchorInfo()); | 280 assertSelection(-1, -1, immw.getLastCursorAnchorInfo()); |
271 immw.clearLastCursorAnchorInfo(); | 281 immw.clearLastCursorAnchorInfo(); |
272 } | 282 } |
273 | 283 |
284 @Test | |
274 @SmallTest | 285 @SmallTest |
275 @Feature({"Input-Text-IME"}) | 286 @Feature({"Input-Text-IME"}) |
276 public void testMonitorMode() { | 287 public void testMonitorMode() { |
277 TestInputMethodManagerWrapper immw = new TestInputMethodManagerWrapper(n ull); | 288 TestInputMethodManagerWrapper immw = new TestInputMethodManagerWrapper(n ull); |
278 TestViewDelegate viewDelegate = new TestViewDelegate(); | 289 TestViewDelegate viewDelegate = new TestViewDelegate(); |
279 TestComposingTextDelegate composingTextDelegate = new TestComposingTextD elegate(); | 290 TestComposingTextDelegate composingTextDelegate = new TestComposingTextD elegate(); |
280 CursorAnchorInfoController controller = CursorAnchorInfoController.creat eForTest( | 291 CursorAnchorInfoController controller = CursorAnchorInfoController.creat eForTest( |
281 immw, composingTextDelegate, viewDelegate); | 292 immw, composingTextDelegate, viewDelegate); |
282 View view = null; | 293 View view = null; |
283 viewDelegate.locationX = 0; | 294 viewDelegate.locationX = 0; |
284 viewDelegate.locationY = 0; | 295 viewDelegate.locationY = 0; |
285 | 296 |
286 controller.focusedNodeChanged(true); | 297 controller.focusedNodeChanged(true); |
287 composingTextDelegate.clearTextAndSelection(controller); | 298 composingTextDelegate.clearTextAndSelection(controller); |
288 | 299 |
289 // Make sure that #updateCursorAnchorInfo() is not be called until the m atrix info becomes | 300 // Make sure that #updateCursorAnchorInfo() is not be called until the m atrix info becomes |
290 // available with #onUpdateFrameInfo(). | 301 // available with #onUpdateFrameInfo(). |
291 assertTrue(controller.onRequestCursorUpdates( | 302 Assert.assertTrue(controller.onRequestCursorUpdates( |
292 false /* immediate request */, true /* monitor request */, view) ); | 303 false /* immediate request */, true /* monitor request */, view) ); |
293 controller.setCompositionCharacterBounds(new float[] {0.0f, 1.0f, 2.0f, 3.0f}, view); | 304 controller.setCompositionCharacterBounds(new float[] {0.0f, 1.0f, 2.0f, 3.0f}, view); |
294 composingTextDelegate.updateTextAndSelection(controller, "0", 0, 1, 0, 1 ); | 305 composingTextDelegate.updateTextAndSelection(controller, "0", 0, 1, 0, 1 ); |
295 assertEquals(0, immw.getUpdateCursorAnchorInfoCounter()); | 306 Assert.assertEquals(0, immw.getUpdateCursorAnchorInfoCounter()); |
296 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), | 307 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), |
297 true, true, 2.0f, 0.0f, 3.0f, view); | 308 true, true, 2.0f, 0.0f, 3.0f, view); |
298 assertEquals(1, immw.getUpdateCursorAnchorInfoCounter()); | 309 Assert.assertEquals(1, immw.getUpdateCursorAnchorInfoCounter()); |
299 assertScaleAndTranslate(1.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); | 310 assertScaleAndTranslate(1.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); |
300 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, | 311 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, |
301 3.0f, immw.getLastCursorAnchorInfo()); | 312 3.0f, immw.getLastCursorAnchorInfo()); |
302 assertEquals(new RectF(0.0f, 1.0f, 2.0f, 3.0f), | 313 Assert.assertEquals(new RectF(0.0f, 1.0f, 2.0f, 3.0f), |
303 immw.getLastCursorAnchorInfo().getCharacterBounds(0)); | 314 immw.getLastCursorAnchorInfo().getCharacterBounds(0)); |
304 assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, | 315 Assert.assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, |
305 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0)); | 316 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0)); |
306 assertComposingText("0", 0, immw.getLastCursorAnchorInfo()); | 317 assertComposingText("0", 0, immw.getLastCursorAnchorInfo()); |
307 assertSelection(0, 1, immw.getLastCursorAnchorInfo()); | 318 assertSelection(0, 1, immw.getLastCursorAnchorInfo()); |
308 immw.clearLastCursorAnchorInfo(); | 319 immw.clearLastCursorAnchorInfo(); |
309 | 320 |
310 // Make sure that #updateCursorAnchorInfo() is not be called if any coor dinate parameter is | 321 // Make sure that #updateCursorAnchorInfo() is not be called if any coor dinate parameter is |
311 // changed for better performance. | 322 // changed for better performance. |
312 controller.setCompositionCharacterBounds(new float[] {0.0f, 1.0f, 2.0f, 3.0f}, view); | 323 controller.setCompositionCharacterBounds(new float[] {0.0f, 1.0f, 2.0f, 3.0f}, view); |
313 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), | 324 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), |
314 true, true, 2.0f, 0.0f, 3.0f, view); | 325 true, true, 2.0f, 0.0f, 3.0f, view); |
315 assertEquals(1, immw.getUpdateCursorAnchorInfoCounter()); | 326 Assert.assertEquals(1, immw.getUpdateCursorAnchorInfoCounter()); |
316 | 327 |
317 // Make sure that #updateCursorAnchorInfo() is called if #setComposition CharacterBounds() | 328 // Make sure that #updateCursorAnchorInfo() is called if #setComposition CharacterBounds() |
318 // is called with a different parameter. | 329 // is called with a different parameter. |
319 controller.setCompositionCharacterBounds(new float[] {30.0f, 1.0f, 32.0f , 3.0f}, view); | 330 controller.setCompositionCharacterBounds(new float[] {30.0f, 1.0f, 32.0f , 3.0f}, view); |
320 assertEquals(2, immw.getUpdateCursorAnchorInfoCounter()); | 331 Assert.assertEquals(2, immw.getUpdateCursorAnchorInfoCounter()); |
321 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), | 332 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), |
322 true, true, 2.0f, 0.0f, 3.0f, view); | 333 true, true, 2.0f, 0.0f, 3.0f, view); |
323 assertEquals(2, immw.getUpdateCursorAnchorInfoCounter()); | 334 Assert.assertEquals(2, immw.getUpdateCursorAnchorInfoCounter()); |
324 assertScaleAndTranslate(1.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); | 335 assertScaleAndTranslate(1.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); |
325 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, | 336 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, |
326 3.0f, immw.getLastCursorAnchorInfo()); | 337 3.0f, immw.getLastCursorAnchorInfo()); |
327 assertEquals(new RectF(30.0f, 1.0f, 32.0f, 3.0f), | 338 Assert.assertEquals(new RectF(30.0f, 1.0f, 32.0f, 3.0f), |
328 immw.getLastCursorAnchorInfo().getCharacterBounds(0)); | 339 immw.getLastCursorAnchorInfo().getCharacterBounds(0)); |
329 assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, | 340 Assert.assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, |
330 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0)); | 341 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0)); |
331 assertComposingText("0", 0, immw.getLastCursorAnchorInfo()); | 342 assertComposingText("0", 0, immw.getLastCursorAnchorInfo()); |
332 assertSelection(0, 1, immw.getLastCursorAnchorInfo()); | 343 assertSelection(0, 1, immw.getLastCursorAnchorInfo()); |
333 immw.clearLastCursorAnchorInfo(); | 344 immw.clearLastCursorAnchorInfo(); |
334 | 345 |
335 // Make sure that #updateCursorAnchorInfo() is called if #updateTextAndS election() | 346 // Make sure that #updateCursorAnchorInfo() is called if #updateTextAndS election() |
336 // is called with a different parameter. | 347 // is called with a different parameter. |
337 composingTextDelegate.updateTextAndSelection(controller, "1", 0, 1, 0, 1 ); | 348 composingTextDelegate.updateTextAndSelection(controller, "1", 0, 1, 0, 1 ); |
338 assertEquals(2, immw.getUpdateCursorAnchorInfoCounter()); | 349 Assert.assertEquals(2, immw.getUpdateCursorAnchorInfoCounter()); |
339 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), | 350 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), |
340 true, true, 2.0f, 0.0f, 3.0f, view); | 351 true, true, 2.0f, 0.0f, 3.0f, view); |
341 assertEquals(3, immw.getUpdateCursorAnchorInfoCounter()); | 352 Assert.assertEquals(3, immw.getUpdateCursorAnchorInfoCounter()); |
342 assertScaleAndTranslate(1.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); | 353 assertScaleAndTranslate(1.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); |
343 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, | 354 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, |
344 3.0f, immw.getLastCursorAnchorInfo()); | 355 3.0f, immw.getLastCursorAnchorInfo()); |
345 assertEquals(new RectF(30.0f, 1.0f, 32.0f, 3.0f), | 356 Assert.assertEquals(new RectF(30.0f, 1.0f, 32.0f, 3.0f), |
346 immw.getLastCursorAnchorInfo().getCharacterBounds(0)); | 357 immw.getLastCursorAnchorInfo().getCharacterBounds(0)); |
347 assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, | 358 Assert.assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, |
348 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0)); | 359 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0)); |
349 assertComposingText("1", 0, immw.getLastCursorAnchorInfo()); | 360 assertComposingText("1", 0, immw.getLastCursorAnchorInfo()); |
350 assertSelection(0, 1, immw.getLastCursorAnchorInfo()); | 361 assertSelection(0, 1, immw.getLastCursorAnchorInfo()); |
351 immw.clearLastCursorAnchorInfo(); | 362 immw.clearLastCursorAnchorInfo(); |
352 | 363 |
353 // Make sure that #updateCursorAnchorInfo() is called if #onUpdateFrameI nfo() | 364 // Make sure that #updateCursorAnchorInfo() is called if #onUpdateFrameI nfo() |
354 // is called with a different parameter. | 365 // is called with a different parameter. |
355 controller.onUpdateFrameInfo(createRenderCoordinates(2.0f, 0.0f), | 366 controller.onUpdateFrameInfo(createRenderCoordinates(2.0f, 0.0f), |
356 true, true, 2.0f, 0.0f, 3.0f, view); | 367 true, true, 2.0f, 0.0f, 3.0f, view); |
357 assertEquals(4, immw.getUpdateCursorAnchorInfoCounter()); | 368 Assert.assertEquals(4, immw.getUpdateCursorAnchorInfoCounter()); |
358 assertScaleAndTranslate(2.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); | 369 assertScaleAndTranslate(2.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); |
359 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, | 370 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, |
360 3.0f, immw.getLastCursorAnchorInfo()); | 371 3.0f, immw.getLastCursorAnchorInfo()); |
361 assertEquals(new RectF(30.0f, 1.0f, 32.0f, 3.0f), | 372 Assert.assertEquals(new RectF(30.0f, 1.0f, 32.0f, 3.0f), |
362 immw.getLastCursorAnchorInfo().getCharacterBounds(0)); | 373 immw.getLastCursorAnchorInfo().getCharacterBounds(0)); |
363 assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, | 374 Assert.assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, |
364 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0)); | 375 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0)); |
365 assertComposingText("1", 0, immw.getLastCursorAnchorInfo()); | 376 assertComposingText("1", 0, immw.getLastCursorAnchorInfo()); |
366 assertSelection(0, 1, immw.getLastCursorAnchorInfo()); | 377 assertSelection(0, 1, immw.getLastCursorAnchorInfo()); |
367 immw.clearLastCursorAnchorInfo(); | 378 immw.clearLastCursorAnchorInfo(); |
368 | 379 |
369 // Make sure that #updateCursorAnchorInfo() is called when the view orig in is changed. | 380 // Make sure that #updateCursorAnchorInfo() is called when the view orig in is changed. |
370 viewDelegate.locationX = 7; | 381 viewDelegate.locationX = 7; |
371 viewDelegate.locationY = 9; | 382 viewDelegate.locationY = 9; |
372 controller.onUpdateFrameInfo(createRenderCoordinates(2.0f, 0.0f), | 383 controller.onUpdateFrameInfo(createRenderCoordinates(2.0f, 0.0f), |
373 true, true, 2.0f, 0.0f, 3.0f, view); | 384 true, true, 2.0f, 0.0f, 3.0f, view); |
374 assertEquals(5, immw.getUpdateCursorAnchorInfoCounter()); | 385 Assert.assertEquals(5, immw.getUpdateCursorAnchorInfoCounter()); |
375 assertScaleAndTranslate(2.0f, 7.0f, 9.0f, immw.getLastCursorAnchorInfo() ); | 386 assertScaleAndTranslate(2.0f, 7.0f, 9.0f, immw.getLastCursorAnchorInfo() ); |
376 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, | 387 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, |
377 3.0f, immw.getLastCursorAnchorInfo()); | 388 3.0f, immw.getLastCursorAnchorInfo()); |
378 assertEquals(new RectF(30.0f, 1.0f, 32.0f, 3.0f), | 389 Assert.assertEquals(new RectF(30.0f, 1.0f, 32.0f, 3.0f), |
379 immw.getLastCursorAnchorInfo().getCharacterBounds(0)); | 390 immw.getLastCursorAnchorInfo().getCharacterBounds(0)); |
380 assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, | 391 Assert.assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, |
381 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0)); | 392 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0)); |
382 assertComposingText("1", 0, immw.getLastCursorAnchorInfo()); | 393 assertComposingText("1", 0, immw.getLastCursorAnchorInfo()); |
383 assertSelection(0, 1, immw.getLastCursorAnchorInfo()); | 394 assertSelection(0, 1, immw.getLastCursorAnchorInfo()); |
384 immw.clearLastCursorAnchorInfo(); | 395 immw.clearLastCursorAnchorInfo(); |
385 | 396 |
386 // Make sure that CURSOR_UPDATE_IMMEDIATE is cleared if the focused node becomes | 397 // Make sure that CURSOR_UPDATE_IMMEDIATE is cleared if the focused node becomes |
387 // non-editable. | 398 // non-editable. |
388 controller.focusedNodeChanged(false); | 399 controller.focusedNodeChanged(false); |
389 controller.focusedNodeChanged(true); | 400 controller.focusedNodeChanged(true); |
390 composingTextDelegate.clearTextAndSelection(controller); | 401 composingTextDelegate.clearTextAndSelection(controller); |
391 assertTrue(controller.onRequestCursorUpdates( | 402 Assert.assertTrue(controller.onRequestCursorUpdates( |
392 false /* immediate request */, true /* monitor request */, view) ); | 403 false /* immediate request */, true /* monitor request */, view) ); |
393 controller.focusedNodeChanged(false); | 404 controller.focusedNodeChanged(false); |
394 composingTextDelegate.clearTextAndSelection(controller); | 405 composingTextDelegate.clearTextAndSelection(controller); |
395 controller.setCompositionCharacterBounds(new float[] {0.0f, 1.0f, 2.0f, 3.0f}, view); | 406 controller.setCompositionCharacterBounds(new float[] {0.0f, 1.0f, 2.0f, 3.0f}, view); |
396 composingTextDelegate.updateTextAndSelection(controller, "0", 0, 1, 0, 1 ); | 407 composingTextDelegate.updateTextAndSelection(controller, "0", 0, 1, 0, 1 ); |
397 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), | 408 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), |
398 true, true, 2.0f, 0.0f, 3.0f, view); | 409 true, true, 2.0f, 0.0f, 3.0f, view); |
399 assertEquals(5, immw.getUpdateCursorAnchorInfoCounter()); | 410 Assert.assertEquals(5, immw.getUpdateCursorAnchorInfoCounter()); |
400 | 411 |
401 // Make sure that CURSOR_UPDATE_MONITOR can be enabled again. | 412 // Make sure that CURSOR_UPDATE_MONITOR can be enabled again. |
402 controller.focusedNodeChanged(true); | 413 controller.focusedNodeChanged(true); |
403 composingTextDelegate.clearTextAndSelection(controller); | 414 composingTextDelegate.clearTextAndSelection(controller); |
404 assertTrue(controller.onRequestCursorUpdates( | 415 Assert.assertTrue(controller.onRequestCursorUpdates( |
405 false /* immediate request */, true /* monitor request */, view) ); | 416 false /* immediate request */, true /* monitor request */, view) ); |
406 controller.setCompositionCharacterBounds(new float[] {0.0f, 1.0f, 2.0f, 3.0f}, view); | 417 controller.setCompositionCharacterBounds(new float[] {0.0f, 1.0f, 2.0f, 3.0f}, view); |
407 composingTextDelegate.updateTextAndSelection(controller, "0", 0, 1, 0, 1 ); | 418 composingTextDelegate.updateTextAndSelection(controller, "0", 0, 1, 0, 1 ); |
408 assertEquals(5, immw.getUpdateCursorAnchorInfoCounter()); | 419 Assert.assertEquals(5, immw.getUpdateCursorAnchorInfoCounter()); |
409 viewDelegate.locationX = 0; | 420 viewDelegate.locationX = 0; |
410 viewDelegate.locationY = 0; | 421 viewDelegate.locationY = 0; |
411 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), | 422 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), |
412 true, true, 2.0f, 0.0f, 3.0f, view); | 423 true, true, 2.0f, 0.0f, 3.0f, view); |
413 assertEquals(6, immw.getUpdateCursorAnchorInfoCounter()); | 424 Assert.assertEquals(6, immw.getUpdateCursorAnchorInfoCounter()); |
414 assertScaleAndTranslate(1.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); | 425 assertScaleAndTranslate(1.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); |
415 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, | 426 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, 2.0f, 0.0f, 3.0f, |
416 3.0f, immw.getLastCursorAnchorInfo()); | 427 3.0f, immw.getLastCursorAnchorInfo()); |
417 assertEquals(new RectF(0.0f, 1.0f, 2.0f, 3.0f), | 428 Assert.assertEquals(new RectF(0.0f, 1.0f, 2.0f, 3.0f), |
418 immw.getLastCursorAnchorInfo().getCharacterBounds(0)); | 429 immw.getLastCursorAnchorInfo().getCharacterBounds(0)); |
419 assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, | 430 Assert.assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, |
420 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0)); | 431 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0)); |
421 assertComposingText("0", 0, immw.getLastCursorAnchorInfo()); | 432 assertComposingText("0", 0, immw.getLastCursorAnchorInfo()); |
422 assertSelection(0, 1, immw.getLastCursorAnchorInfo()); | 433 assertSelection(0, 1, immw.getLastCursorAnchorInfo()); |
423 immw.clearLastCursorAnchorInfo(); | 434 immw.clearLastCursorAnchorInfo(); |
424 } | 435 } |
425 | 436 |
437 @Test | |
426 @SmallTest | 438 @SmallTest |
427 @Feature({"Input-Text-IME"}) | 439 @Feature({"Input-Text-IME"}) |
428 public void testSetCompositionCharacterBounds() { | 440 public void testSetCompositionCharacterBounds() { |
429 TestInputMethodManagerWrapper immw = new TestInputMethodManagerWrapper(n ull); | 441 TestInputMethodManagerWrapper immw = new TestInputMethodManagerWrapper(n ull); |
430 TestViewDelegate viewDelegate = new TestViewDelegate(); | 442 TestViewDelegate viewDelegate = new TestViewDelegate(); |
431 TestComposingTextDelegate composingTextDelegate = new TestComposingTextD elegate(); | 443 TestComposingTextDelegate composingTextDelegate = new TestComposingTextD elegate(); |
432 CursorAnchorInfoController controller = CursorAnchorInfoController.creat eForTest( | 444 CursorAnchorInfoController controller = CursorAnchorInfoController.creat eForTest( |
433 immw, composingTextDelegate, viewDelegate); | 445 immw, composingTextDelegate, viewDelegate); |
434 View view = null; | 446 View view = null; |
435 | 447 |
436 viewDelegate.locationX = 0; | 448 viewDelegate.locationX = 0; |
437 viewDelegate.locationY = 0; | 449 viewDelegate.locationY = 0; |
438 | 450 |
439 controller.focusedNodeChanged(true); | 451 controller.focusedNodeChanged(true); |
440 composingTextDelegate.clearTextAndSelection(controller); | 452 composingTextDelegate.clearTextAndSelection(controller); |
441 assertTrue(controller.onRequestCursorUpdates( | 453 Assert.assertTrue(controller.onRequestCursorUpdates( |
442 false /* immediate request */, true /* monitor request */, view) ); | 454 false /* immediate request */, true /* monitor request */, view) ); |
443 | 455 |
444 composingTextDelegate.updateTextAndSelection(controller, "01234", 1, 3, 1, 1); | 456 composingTextDelegate.updateTextAndSelection(controller, "01234", 1, 3, 1, 1); |
445 controller.setCompositionCharacterBounds(new float[] {0.0f, 1.0f, 2.0f, 3.0f, | 457 controller.setCompositionCharacterBounds(new float[] {0.0f, 1.0f, 2.0f, 3.0f, |
446 4.0f, 1.1f, 6.0f, 2.9f}, view); | 458 4.0f, 1.1f, 6.0f, 2.9f}, view); |
447 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), | 459 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), |
448 false, false, Float.NaN, Float.NaN, Float.NaN, view); | 460 false, false, Float.NaN, Float.NaN, Float.NaN, view); |
449 assertEquals(1, immw.getUpdateCursorAnchorInfoCounter()); | 461 Assert.assertEquals(1, immw.getUpdateCursorAnchorInfoCounter()); |
450 assertEquals(null, immw.getLastCursorAnchorInfo().getCharacterBounds(0)) ; | 462 Assert.assertEquals(null, immw.getLastCursorAnchorInfo().getCharacterBou nds(0)); |
451 assertEquals(0, immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0 )); | 463 Assert.assertEquals(0, immw.getLastCursorAnchorInfo().getCharacterBounds Flags(0)); |
452 assertEquals(new RectF(0.0f, 1.0f, 2.0f, 3.0f), | 464 Assert.assertEquals(new RectF(0.0f, 1.0f, 2.0f, 3.0f), |
453 immw.getLastCursorAnchorInfo().getCharacterBounds(1)); | 465 immw.getLastCursorAnchorInfo().getCharacterBounds(1)); |
454 assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, | 466 Assert.assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, |
455 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(1)); | 467 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(1)); |
456 assertEquals(new RectF(4.0f, 1.1f, 6.0f, 2.9f), | 468 Assert.assertEquals(new RectF(4.0f, 1.1f, 6.0f, 2.9f), |
457 immw.getLastCursorAnchorInfo().getCharacterBounds(2)); | 469 immw.getLastCursorAnchorInfo().getCharacterBounds(2)); |
458 assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, | 470 Assert.assertEquals(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, |
459 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(2)); | 471 immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(2)); |
460 assertEquals(null, immw.getLastCursorAnchorInfo().getCharacterBounds(3)) ; | 472 Assert.assertEquals(null, immw.getLastCursorAnchorInfo().getCharacterBou nds(3)); |
461 assertEquals(0, immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(3 )); | 473 Assert.assertEquals(0, immw.getLastCursorAnchorInfo().getCharacterBounds Flags(3)); |
462 assertComposingText("12", 1, immw.getLastCursorAnchorInfo()); | 474 assertComposingText("12", 1, immw.getLastCursorAnchorInfo()); |
463 assertSelection(1, 1, immw.getLastCursorAnchorInfo()); | 475 assertSelection(1, 1, immw.getLastCursorAnchorInfo()); |
464 } | 476 } |
465 | 477 |
478 @Test | |
466 @SmallTest | 479 @SmallTest |
467 @Feature({"Input-Text-IME"}) | 480 @Feature({"Input-Text-IME"}) |
468 public void testUpdateTextAndSelection() { | 481 public void testUpdateTextAndSelection() { |
469 TestInputMethodManagerWrapper immw = new TestInputMethodManagerWrapper(n ull); | 482 TestInputMethodManagerWrapper immw = new TestInputMethodManagerWrapper(n ull); |
470 TestViewDelegate viewDelegate = new TestViewDelegate(); | 483 TestViewDelegate viewDelegate = new TestViewDelegate(); |
471 TestComposingTextDelegate composingTextDelegate = new TestComposingTextD elegate(); | 484 TestComposingTextDelegate composingTextDelegate = new TestComposingTextD elegate(); |
472 CursorAnchorInfoController controller = CursorAnchorInfoController.creat eForTest( | 485 CursorAnchorInfoController controller = CursorAnchorInfoController.creat eForTest( |
473 immw, composingTextDelegate, viewDelegate); | 486 immw, composingTextDelegate, viewDelegate); |
474 View view = null; | 487 View view = null; |
475 | 488 |
476 viewDelegate.locationX = 0; | 489 viewDelegate.locationX = 0; |
477 viewDelegate.locationY = 0; | 490 viewDelegate.locationY = 0; |
478 | 491 |
479 controller.focusedNodeChanged(true); | 492 controller.focusedNodeChanged(true); |
480 composingTextDelegate.clearTextAndSelection(controller); | 493 composingTextDelegate.clearTextAndSelection(controller); |
481 assertTrue(controller.onRequestCursorUpdates( | 494 Assert.assertTrue(controller.onRequestCursorUpdates( |
482 false /* immediate request */, true /* monitor request */, view) ); | 495 false /* immediate request */, true /* monitor request */, view) ); |
483 | 496 |
484 composingTextDelegate.updateTextAndSelection(controller, "01234", 3, 3, 1, 1); | 497 composingTextDelegate.updateTextAndSelection(controller, "01234", 3, 3, 1, 1); |
485 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), | 498 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), |
486 false, false, Float.NaN, Float.NaN, Float.NaN, view); | 499 false, false, Float.NaN, Float.NaN, Float.NaN, view); |
487 assertEquals(1, immw.getUpdateCursorAnchorInfoCounter()); | 500 Assert.assertEquals(1, immw.getUpdateCursorAnchorInfoCounter()); |
488 assertEquals(null, immw.getLastCursorAnchorInfo().getCharacterBounds(0)) ; | 501 Assert.assertEquals(null, immw.getLastCursorAnchorInfo().getCharacterBou nds(0)); |
489 assertEquals(0, immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(0 )); | 502 Assert.assertEquals(0, immw.getLastCursorAnchorInfo().getCharacterBounds Flags(0)); |
490 assertEquals(null, immw.getLastCursorAnchorInfo().getCharacterBounds(1)) ; | 503 Assert.assertEquals(null, immw.getLastCursorAnchorInfo().getCharacterBou nds(1)); |
491 assertEquals(0, immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(1 )); | 504 Assert.assertEquals(0, immw.getLastCursorAnchorInfo().getCharacterBounds Flags(1)); |
492 assertEquals(null, immw.getLastCursorAnchorInfo().getCharacterBounds(2)) ; | 505 Assert.assertEquals(null, immw.getLastCursorAnchorInfo().getCharacterBou nds(2)); |
493 assertEquals(0, immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(2 )); | 506 Assert.assertEquals(0, immw.getLastCursorAnchorInfo().getCharacterBounds Flags(2)); |
494 assertEquals(null, immw.getLastCursorAnchorInfo().getCharacterBounds(3)) ; | 507 Assert.assertEquals(null, immw.getLastCursorAnchorInfo().getCharacterBou nds(3)); |
495 assertEquals(0, immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(3 )); | 508 Assert.assertEquals(0, immw.getLastCursorAnchorInfo().getCharacterBounds Flags(3)); |
496 assertEquals(null, immw.getLastCursorAnchorInfo().getCharacterBounds(4)) ; | 509 Assert.assertEquals(null, immw.getLastCursorAnchorInfo().getCharacterBou nds(4)); |
497 assertEquals(0, immw.getLastCursorAnchorInfo().getCharacterBoundsFlags(4 )); | 510 Assert.assertEquals(0, immw.getLastCursorAnchorInfo().getCharacterBounds Flags(4)); |
498 assertComposingText("", 3, immw.getLastCursorAnchorInfo()); | 511 assertComposingText("", 3, immw.getLastCursorAnchorInfo()); |
499 assertSelection(1, 1, immw.getLastCursorAnchorInfo()); | 512 assertSelection(1, 1, immw.getLastCursorAnchorInfo()); |
500 } | 513 } |
501 | 514 |
515 @Test | |
502 @SmallTest | 516 @SmallTest |
503 @Feature({"Input-Text-IME"}) | 517 @Feature({"Input-Text-IME"}) |
504 public void testInsertionMarker() { | 518 public void testInsertionMarker() { |
505 TestInputMethodManagerWrapper immw = new TestInputMethodManagerWrapper(n ull); | 519 TestInputMethodManagerWrapper immw = new TestInputMethodManagerWrapper(n ull); |
506 TestViewDelegate viewDelegate = new TestViewDelegate(); | 520 TestViewDelegate viewDelegate = new TestViewDelegate(); |
507 TestComposingTextDelegate composingTextDelegate = new TestComposingTextD elegate(); | 521 TestComposingTextDelegate composingTextDelegate = new TestComposingTextD elegate(); |
508 CursorAnchorInfoController controller = CursorAnchorInfoController.creat eForTest( | 522 CursorAnchorInfoController controller = CursorAnchorInfoController.creat eForTest( |
509 immw, composingTextDelegate, viewDelegate); | 523 immw, composingTextDelegate, viewDelegate); |
510 View view = null; | 524 View view = null; |
511 | 525 |
512 controller.focusedNodeChanged(true); | 526 controller.focusedNodeChanged(true); |
513 composingTextDelegate.clearTextAndSelection(controller); | 527 composingTextDelegate.clearTextAndSelection(controller); |
514 assertTrue(controller.onRequestCursorUpdates( | 528 Assert.assertTrue(controller.onRequestCursorUpdates( |
515 false /* immediate request */, true /* monitor request */, view) ); | 529 false /* immediate request */, true /* monitor request */, view) ); |
516 | 530 |
517 // Test no insertion marker. | 531 // Test no insertion marker. |
518 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), | 532 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), |
519 false, false, Float.NaN, Float.NaN, Float.NaN, view); | 533 false, false, Float.NaN, Float.NaN, Float.NaN, view); |
520 assertEquals(1, immw.getUpdateCursorAnchorInfoCounter()); | 534 Assert.assertEquals(1, immw.getUpdateCursorAnchorInfoCounter()); |
521 assertHasNoInsertionMarker(immw.getLastCursorAnchorInfo()); | 535 assertHasNoInsertionMarker(immw.getLastCursorAnchorInfo()); |
522 immw.clearLastCursorAnchorInfo(); | 536 immw.clearLastCursorAnchorInfo(); |
523 | 537 |
524 // Test a visible insertion marker. | 538 // Test a visible insertion marker. |
525 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), | 539 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), |
526 true, true, 10.0f, 23.0f, 29.0f, view); | 540 true, true, 10.0f, 23.0f, 29.0f, view); |
527 assertEquals(2, immw.getUpdateCursorAnchorInfoCounter()); | 541 Assert.assertEquals(2, immw.getUpdateCursorAnchorInfoCounter()); |
528 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, | 542 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_VISIBLE_REGION, |
529 10.0f, 23.0f, 29.0f, 29.0f, immw.getLastCursorAnchorInfo()); | 543 10.0f, 23.0f, 29.0f, 29.0f, immw.getLastCursorAnchorInfo()); |
530 immw.clearLastCursorAnchorInfo(); | 544 immw.clearLastCursorAnchorInfo(); |
531 | 545 |
532 // Test a invisible insertion marker. | 546 // Test a invisible insertion marker. |
533 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), | 547 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), |
534 true, false, 10.0f, 23.0f, 29.0f, view); | 548 true, false, 10.0f, 23.0f, 29.0f, view); |
535 assertEquals(3, immw.getUpdateCursorAnchorInfoCounter()); | 549 Assert.assertEquals(3, immw.getUpdateCursorAnchorInfoCounter()); |
536 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_INVISIBLE_REGION, | 550 assertHasInsertionMarker(CursorAnchorInfo.FLAG_HAS_INVISIBLE_REGION, |
537 10.0f, 23.0f, 29.0f, 29.0f, immw.getLastCursorAnchorInfo()); | 551 10.0f, 23.0f, 29.0f, 29.0f, immw.getLastCursorAnchorInfo()); |
538 immw.clearLastCursorAnchorInfo(); | 552 immw.clearLastCursorAnchorInfo(); |
539 } | 553 } |
540 | 554 |
555 @Test | |
541 @SmallTest | 556 @SmallTest |
542 @Feature({"Input-Text-IME"}) | 557 @Feature({"Input-Text-IME"}) |
543 public void testMatrix() { | 558 public void testMatrix() { |
544 TestInputMethodManagerWrapper immw = new TestInputMethodManagerWrapper(n ull); | 559 TestInputMethodManagerWrapper immw = new TestInputMethodManagerWrapper(n ull); |
545 TestViewDelegate viewDelegate = new TestViewDelegate(); | 560 TestViewDelegate viewDelegate = new TestViewDelegate(); |
546 TestComposingTextDelegate composingTextDelegate = new TestComposingTextD elegate(); | 561 TestComposingTextDelegate composingTextDelegate = new TestComposingTextD elegate(); |
547 CursorAnchorInfoController controller = CursorAnchorInfoController.creat eForTest( | 562 CursorAnchorInfoController controller = CursorAnchorInfoController.creat eForTest( |
548 immw, composingTextDelegate, viewDelegate); | 563 immw, composingTextDelegate, viewDelegate); |
549 View view = null; | 564 View view = null; |
550 | 565 |
551 controller.focusedNodeChanged(true); | 566 controller.focusedNodeChanged(true); |
552 composingTextDelegate.clearTextAndSelection(controller); | 567 composingTextDelegate.clearTextAndSelection(controller); |
553 assertTrue(controller.onRequestCursorUpdates( | 568 Assert.assertTrue(controller.onRequestCursorUpdates( |
554 false /* immediate request */, true /* monitor request */, view) ); | 569 false /* immediate request */, true /* monitor request */, view) ); |
555 | 570 |
556 // Test no transformation | 571 // Test no transformation |
557 viewDelegate.locationX = 0; | 572 viewDelegate.locationX = 0; |
558 viewDelegate.locationY = 0; | 573 viewDelegate.locationY = 0; |
559 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), | 574 controller.onUpdateFrameInfo(createRenderCoordinates(1.0f, 0.0f), |
560 false, false, Float.NaN, Float.NaN, Float.NaN, view); | 575 false, false, Float.NaN, Float.NaN, Float.NaN, view); |
561 assertEquals(1, immw.getUpdateCursorAnchorInfoCounter()); | 576 Assert.assertEquals(1, immw.getUpdateCursorAnchorInfoCounter()); |
562 assertScaleAndTranslate(1.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); | 577 assertScaleAndTranslate(1.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); |
563 immw.clearLastCursorAnchorInfo(); | 578 immw.clearLastCursorAnchorInfo(); |
564 | 579 |
565 // device scale factor == 2.0 | 580 // device scale factor == 2.0 |
566 viewDelegate.locationX = 0; | 581 viewDelegate.locationX = 0; |
567 viewDelegate.locationY = 0; | 582 viewDelegate.locationY = 0; |
568 controller.onUpdateFrameInfo(createRenderCoordinates(2.0f, 0.0f), | 583 controller.onUpdateFrameInfo(createRenderCoordinates(2.0f, 0.0f), |
569 false, false, Float.NaN, Float.NaN, Float.NaN, view); | 584 false, false, Float.NaN, Float.NaN, Float.NaN, view); |
570 assertEquals(2, immw.getUpdateCursorAnchorInfoCounter()); | 585 Assert.assertEquals(2, immw.getUpdateCursorAnchorInfoCounter()); |
571 assertScaleAndTranslate(2.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); | 586 assertScaleAndTranslate(2.0f, 0.0f, 0.0f, immw.getLastCursorAnchorInfo() ); |
572 immw.clearLastCursorAnchorInfo(); | 587 immw.clearLastCursorAnchorInfo(); |
573 | 588 |
574 // device scale factor == 2.0 | 589 // device scale factor == 2.0 |
575 // view origin == (10, 141) | 590 // view origin == (10, 141) |
576 viewDelegate.locationX = 10; | 591 viewDelegate.locationX = 10; |
577 viewDelegate.locationY = 141; | 592 viewDelegate.locationY = 141; |
578 controller.onUpdateFrameInfo(createRenderCoordinates(2.0f, 0.0f), | 593 controller.onUpdateFrameInfo(createRenderCoordinates(2.0f, 0.0f), |
579 false, false, Float.NaN, Float.NaN, Float.NaN, view); | 594 false, false, Float.NaN, Float.NaN, Float.NaN, view); |
580 assertEquals(3, immw.getUpdateCursorAnchorInfoCounter()); | 595 Assert.assertEquals(3, immw.getUpdateCursorAnchorInfoCounter()); |
581 assertScaleAndTranslate(2.0f, 10.0f, 141.0f, immw.getLastCursorAnchorInf o()); | 596 assertScaleAndTranslate(2.0f, 10.0f, 141.0f, immw.getLastCursorAnchorInf o()); |
582 immw.clearLastCursorAnchorInfo(); | 597 immw.clearLastCursorAnchorInfo(); |
583 | 598 |
584 // device scale factor == 2.0 | 599 // device scale factor == 2.0 |
585 // content offset Y = 40.0f | 600 // content offset Y = 40.0f |
586 // view origin == (10, 141) | 601 // view origin == (10, 141) |
587 viewDelegate.locationX = 10; | 602 viewDelegate.locationX = 10; |
588 viewDelegate.locationY = 141; | 603 viewDelegate.locationY = 141; |
589 controller.onUpdateFrameInfo(createRenderCoordinates(2.0f, 40.0f), | 604 controller.onUpdateFrameInfo(createRenderCoordinates(2.0f, 40.0f), |
590 false, false, Float.NaN, Float.NaN, Float.NaN, view); | 605 false, false, Float.NaN, Float.NaN, Float.NaN, view); |
591 assertEquals(4, immw.getUpdateCursorAnchorInfoCounter()); | 606 Assert.assertEquals(4, immw.getUpdateCursorAnchorInfoCounter()); |
592 assertScaleAndTranslate(2.0f, 10.0f, 181.0f, immw.getLastCursorAnchorInf o()); | 607 assertScaleAndTranslate(2.0f, 10.0f, 181.0f, immw.getLastCursorAnchorInf o()); |
593 immw.clearLastCursorAnchorInfo(); | 608 immw.clearLastCursorAnchorInfo(); |
594 } | 609 } |
595 } | 610 } |
OLD | NEW |