Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(61)

Side by Side Diff: ui/views/touchui/touch_selection_controller_impl_unittest.cc

Issue 24012002: Move Range code to gfx. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: d Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ui/views/ime/input_method_bridge.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "base/command_line.h" 5 #include "base/command_line.h"
6 #include "base/strings/utf_string_conversions.h" 6 #include "base/strings/utf_string_conversions.h"
7 #include "grit/ui_resources.h" 7 #include "grit/ui_resources.h"
8 #include "ui/base/resource/resource_bundle.h" 8 #include "ui/base/resource/resource_bundle.h"
9 #include "ui/base/touch/touch_editing_controller.h" 9 #include "ui/base/touch/touch_editing_controller.h"
10 #include "ui/base/ui_base_switches.h" 10 #include "ui/base/ui_base_switches.h"
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 // a Textfield changes. 193 // a Textfield changes.
194 TEST_F(TouchSelectionControllerImplTest, SelectionInTextfieldTest) { 194 TEST_F(TouchSelectionControllerImplTest, SelectionInTextfieldTest) {
195 CreateTextfield(); 195 CreateTextfield();
196 textfield_->SetText(ASCIIToUTF16("some text")); 196 textfield_->SetText(ASCIIToUTF16("some text"));
197 // Tap the textfield to invoke touch selection. 197 // Tap the textfield to invoke touch selection.
198 ui::GestureEvent tap(ui::ET_GESTURE_TAP, 0, 0, 0, base::TimeDelta(), 198 ui::GestureEvent tap(ui::ET_GESTURE_TAP, 0, 0, 0, base::TimeDelta(),
199 ui::GestureEventDetails(ui::ET_GESTURE_TAP, 1.0f, 0.0f), 0); 199 ui::GestureEventDetails(ui::ET_GESTURE_TAP, 1.0f, 0.0f), 0);
200 textfield_view_->OnGestureEvent(&tap); 200 textfield_view_->OnGestureEvent(&tap);
201 201
202 // Test selecting a range. 202 // Test selecting a range.
203 textfield_->SelectRange(ui::Range(3, 7)); 203 textfield_->SelectRange(gfx::Range(3, 7));
204 VERIFY_HANDLE_POSITIONS(false); 204 VERIFY_HANDLE_POSITIONS(false);
205 205
206 // Test selecting everything. 206 // Test selecting everything.
207 textfield_->SelectAll(false); 207 textfield_->SelectAll(false);
208 VERIFY_HANDLE_POSITIONS(false); 208 VERIFY_HANDLE_POSITIONS(false);
209 209
210 // Test with no selection. 210 // Test with no selection.
211 textfield_->ClearSelection(); 211 textfield_->ClearSelection();
212 VERIFY_HANDLE_POSITIONS(false); 212 VERIFY_HANDLE_POSITIONS(false);
213 213
(...skipping 16 matching lines...) Expand all
230 ui::GestureEvent tap(ui::ET_GESTURE_TAP, 0, 0, 0, base::TimeDelta(), 230 ui::GestureEvent tap(ui::ET_GESTURE_TAP, 0, 0, 0, base::TimeDelta(),
231 ui::GestureEventDetails(ui::ET_GESTURE_TAP, 1.0f, 0.0f), 0); 231 ui::GestureEventDetails(ui::ET_GESTURE_TAP, 1.0f, 0.0f), 0);
232 textfield_view_->OnGestureEvent(&tap); 232 textfield_view_->OnGestureEvent(&tap);
233 233
234 // Test cursor at run boundary and with empty selection. 234 // Test cursor at run boundary and with empty selection.
235 textfield_->SelectSelectionModel( 235 textfield_->SelectSelectionModel(
236 gfx::SelectionModel(3, gfx::CURSOR_BACKWARD)); 236 gfx::SelectionModel(3, gfx::CURSOR_BACKWARD));
237 VERIFY_HANDLE_POSITIONS(false); 237 VERIFY_HANDLE_POSITIONS(false);
238 238
239 // Test selection range inside one run and starts or ends at run boundary. 239 // Test selection range inside one run and starts or ends at run boundary.
240 textfield_->SelectRange(ui::Range(2, 3)); 240 textfield_->SelectRange(gfx::Range(2, 3));
241 VERIFY_HANDLE_POSITIONS(false); 241 VERIFY_HANDLE_POSITIONS(false);
242 242
243 textfield_->SelectRange(ui::Range(3, 2)); 243 textfield_->SelectRange(gfx::Range(3, 2));
244 VERIFY_HANDLE_POSITIONS(false); 244 VERIFY_HANDLE_POSITIONS(false);
245 245
246 textfield_->SelectRange(ui::Range(3, 4)); 246 textfield_->SelectRange(gfx::Range(3, 4));
247 VERIFY_HANDLE_POSITIONS(false); 247 VERIFY_HANDLE_POSITIONS(false);
248 248
249 textfield_->SelectRange(ui::Range(4, 3)); 249 textfield_->SelectRange(gfx::Range(4, 3));
250 VERIFY_HANDLE_POSITIONS(false); 250 VERIFY_HANDLE_POSITIONS(false);
251 251
252 textfield_->SelectRange(ui::Range(3, 6)); 252 textfield_->SelectRange(gfx::Range(3, 6));
253 VERIFY_HANDLE_POSITIONS(false); 253 VERIFY_HANDLE_POSITIONS(false);
254 254
255 textfield_->SelectRange(ui::Range(6, 3)); 255 textfield_->SelectRange(gfx::Range(6, 3));
256 VERIFY_HANDLE_POSITIONS(false); 256 VERIFY_HANDLE_POSITIONS(false);
257 257
258 // Test selection range accross runs. 258 // Test selection range accross runs.
259 textfield_->SelectRange(ui::Range(0, 6)); 259 textfield_->SelectRange(gfx::Range(0, 6));
260 VERIFY_HANDLE_POSITIONS(false); 260 VERIFY_HANDLE_POSITIONS(false);
261 261
262 textfield_->SelectRange(ui::Range(6, 0)); 262 textfield_->SelectRange(gfx::Range(6, 0));
263 VERIFY_HANDLE_POSITIONS(false); 263 VERIFY_HANDLE_POSITIONS(false);
264 264
265 textfield_->SelectRange(ui::Range(1, 4)); 265 textfield_->SelectRange(gfx::Range(1, 4));
266 VERIFY_HANDLE_POSITIONS(false); 266 VERIFY_HANDLE_POSITIONS(false);
267 267
268 textfield_->SelectRange(ui::Range(4, 1)); 268 textfield_->SelectRange(gfx::Range(4, 1));
269 VERIFY_HANDLE_POSITIONS(false); 269 VERIFY_HANDLE_POSITIONS(false);
270 } 270 }
271 271
272 // Tests if the SelectRect callback is called appropriately when selection 272 // Tests if the SelectRect callback is called appropriately when selection
273 // handles are moved. 273 // handles are moved.
274 TEST_F(TouchSelectionControllerImplTest, SelectRectCallbackTest) { 274 TEST_F(TouchSelectionControllerImplTest, SelectRectCallbackTest) {
275 CreateTextfield(); 275 CreateTextfield();
276 textfield_->SetText(ASCIIToUTF16("textfield with selected text")); 276 textfield_->SetText(ASCIIToUTF16("textfield with selected text"));
277 // Tap the textfield to invoke touch selection. 277 // Tap the textfield to invoke touch selection.
278 ui::GestureEvent tap(ui::ET_GESTURE_TAP, 0, 0, 0, base::TimeDelta(), 278 ui::GestureEvent tap(ui::ET_GESTURE_TAP, 0, 0, 0, base::TimeDelta(),
279 ui::GestureEventDetails(ui::ET_GESTURE_TAP, 1.0f, 0.0f), 0); 279 ui::GestureEventDetails(ui::ET_GESTURE_TAP, 1.0f, 0.0f), 0);
280 textfield_view_->OnGestureEvent(&tap); 280 textfield_view_->OnGestureEvent(&tap);
281 textfield_->SelectRange(ui::Range(3, 7)); 281 textfield_->SelectRange(gfx::Range(3, 7));
282 282
283 EXPECT_EQ(UTF16ToUTF8(textfield_->GetSelectedText()), "tfie"); 283 EXPECT_EQ(UTF16ToUTF8(textfield_->GetSelectedText()), "tfie");
284 VERIFY_HANDLE_POSITIONS(false); 284 VERIFY_HANDLE_POSITIONS(false);
285 285
286 // Drag selection handle 2 to right by 3 chars. 286 // Drag selection handle 2 to right by 3 chars.
287 const gfx::Font& font = textfield_->GetPrimaryFont(); 287 const gfx::Font& font = textfield_->GetPrimaryFont();
288 int x = font.GetStringWidth(ASCIIToUTF16("ld ")); 288 int x = font.GetStringWidth(ASCIIToUTF16("ld "));
289 SimulateSelectionHandleDrag(gfx::Point(x, 0), 2); 289 SimulateSelectionHandleDrag(gfx::Point(x, 0), 2);
290 EXPECT_EQ(UTF16ToUTF8(textfield_->GetSelectedText()), "tfield "); 290 EXPECT_EQ(UTF16ToUTF8(textfield_->GetSelectedText()), "tfield ");
291 VERIFY_HANDLE_POSITIONS(false); 291 VERIFY_HANDLE_POSITIONS(false);
(...skipping 19 matching lines...) Expand all
311 311
312 TEST_F(TouchSelectionControllerImplTest, SelectRectInBidiCallbackTest) { 312 TEST_F(TouchSelectionControllerImplTest, SelectRectInBidiCallbackTest) {
313 CreateTextfield(); 313 CreateTextfield();
314 textfield_->SetText(WideToUTF16(L"abc\x05e1\x05e2\x05e3" L"def")); 314 textfield_->SetText(WideToUTF16(L"abc\x05e1\x05e2\x05e3" L"def"));
315 // Tap the textfield to invoke touch selection. 315 // Tap the textfield to invoke touch selection.
316 ui::GestureEvent tap(ui::ET_GESTURE_TAP, 0, 0, 0, base::TimeDelta(), 316 ui::GestureEvent tap(ui::ET_GESTURE_TAP, 0, 0, 0, base::TimeDelta(),
317 ui::GestureEventDetails(ui::ET_GESTURE_TAP, 1.0f, 0.0f), 0); 317 ui::GestureEventDetails(ui::ET_GESTURE_TAP, 1.0f, 0.0f), 0);
318 textfield_view_->OnGestureEvent(&tap); 318 textfield_view_->OnGestureEvent(&tap);
319 319
320 // Select [c] from left to right. 320 // Select [c] from left to right.
321 textfield_->SelectRange(ui::Range(2, 3)); 321 textfield_->SelectRange(gfx::Range(2, 3));
322 EXPECT_EQ(WideToUTF16(L"c"), textfield_->GetSelectedText()); 322 EXPECT_EQ(WideToUTF16(L"c"), textfield_->GetSelectedText());
323 VERIFY_HANDLE_POSITIONS(false); 323 VERIFY_HANDLE_POSITIONS(false);
324 324
325 // Drag selection handle 2 to right by 1 char. 325 // Drag selection handle 2 to right by 1 char.
326 const gfx::Font& font = textfield_->GetPrimaryFont(); 326 const gfx::Font& font = textfield_->GetPrimaryFont();
327 int x = font.GetStringWidth(WideToUTF16(L"\x05e3")); 327 int x = font.GetStringWidth(WideToUTF16(L"\x05e3"));
328 SimulateSelectionHandleDrag(gfx::Point(x, 0), 2); 328 SimulateSelectionHandleDrag(gfx::Point(x, 0), 2);
329 EXPECT_EQ(WideToUTF16(L"c\x05e1\x05e2"), textfield_->GetSelectedText()); 329 EXPECT_EQ(WideToUTF16(L"c\x05e1\x05e2"), textfield_->GetSelectedText());
330 VERIFY_HANDLE_POSITIONS(false); 330 VERIFY_HANDLE_POSITIONS(false);
331 331
332 // Drag selection handle 1 to left by 1 char. 332 // Drag selection handle 1 to left by 1 char.
333 x = font.GetStringWidth(WideToUTF16(L"b")); 333 x = font.GetStringWidth(WideToUTF16(L"b"));
334 SimulateSelectionHandleDrag(gfx::Point(-x, 0), 1); 334 SimulateSelectionHandleDrag(gfx::Point(-x, 0), 1);
335 EXPECT_EQ(WideToUTF16(L"bc\x05e1\x05e2"), textfield_->GetSelectedText()); 335 EXPECT_EQ(WideToUTF16(L"bc\x05e1\x05e2"), textfield_->GetSelectedText());
336 VERIFY_HANDLE_POSITIONS(true); 336 VERIFY_HANDLE_POSITIONS(true);
337 337
338 // Select [c] from right to left. 338 // Select [c] from right to left.
339 textfield_->SelectRange(ui::Range(3, 2)); 339 textfield_->SelectRange(gfx::Range(3, 2));
340 EXPECT_EQ(WideToUTF16(L"c"), textfield_->GetSelectedText()); 340 EXPECT_EQ(WideToUTF16(L"c"), textfield_->GetSelectedText());
341 VERIFY_HANDLE_POSITIONS(false); 341 VERIFY_HANDLE_POSITIONS(false);
342 342
343 // Drag selection handle 1 to right by 1 char. 343 // Drag selection handle 1 to right by 1 char.
344 x = font.GetStringWidth(WideToUTF16(L"\x05e3")); 344 x = font.GetStringWidth(WideToUTF16(L"\x05e3"));
345 SimulateSelectionHandleDrag(gfx::Point(x, 0), 1); 345 SimulateSelectionHandleDrag(gfx::Point(x, 0), 1);
346 EXPECT_EQ(WideToUTF16(L"c\x05e1\x05e2"), textfield_->GetSelectedText()); 346 EXPECT_EQ(WideToUTF16(L"c\x05e1\x05e2"), textfield_->GetSelectedText());
347 VERIFY_HANDLE_POSITIONS(true); 347 VERIFY_HANDLE_POSITIONS(true);
348 348
349 // Drag selection handle 2 to left by 1 char. 349 // Drag selection handle 2 to left by 1 char.
350 x = font.GetStringWidth(WideToUTF16(L"b")); 350 x = font.GetStringWidth(WideToUTF16(L"b"));
351 SimulateSelectionHandleDrag(gfx::Point(-x, 0), 2); 351 SimulateSelectionHandleDrag(gfx::Point(-x, 0), 2);
352 EXPECT_EQ(WideToUTF16(L"bc\x05e1\x05e2"), textfield_->GetSelectedText()); 352 EXPECT_EQ(WideToUTF16(L"bc\x05e1\x05e2"), textfield_->GetSelectedText());
353 VERIFY_HANDLE_POSITIONS(false); 353 VERIFY_HANDLE_POSITIONS(false);
354 354
355 // Select [\x5e1] from right to left. 355 // Select [\x5e1] from right to left.
356 textfield_->SelectRange(ui::Range(3, 4)); 356 textfield_->SelectRange(gfx::Range(3, 4));
357 EXPECT_EQ(WideToUTF16(L"\x05e1"), textfield_->GetSelectedText()); 357 EXPECT_EQ(WideToUTF16(L"\x05e1"), textfield_->GetSelectedText());
358 VERIFY_HANDLE_POSITIONS(false); 358 VERIFY_HANDLE_POSITIONS(false);
359 359
360 /* TODO(xji): for bidi text "abcDEF" whose display is "abcFEDhij", when click 360 /* TODO(xji): for bidi text "abcDEF" whose display is "abcFEDhij", when click
361 right of 'D' and select [D] then move the left selection handle to left 361 right of 'D' and select [D] then move the left selection handle to left
362 by one character, it should select [ED], instead it selects [F]. 362 by one character, it should select [ED], instead it selects [F].
363 Reason: click right of 'D' and left of 'h' return the same x-axis position, 363 Reason: click right of 'D' and left of 'h' return the same x-axis position,
364 pass this position to FindCursorPosition() returns index of 'h'. which 364 pass this position to FindCursorPosition() returns index of 'h'. which
365 means the selection start changed from 3 to 6. 365 means the selection start changed from 3 to 6.
366 Need further investigation on whether this is a bug in Pango and how to 366 Need further investigation on whether this is a bug in Pango and how to
367 work around it. 367 work around it.
368 // Drag selection handle 2 to left by 1 char. 368 // Drag selection handle 2 to left by 1 char.
369 x = font.GetStringWidth(WideToUTF16(L"\x05e2")); 369 x = font.GetStringWidth(WideToUTF16(L"\x05e2"));
370 SimulateSelectionHandleDrag(gfx::Point(-x, 0), 2); 370 SimulateSelectionHandleDrag(gfx::Point(-x, 0), 2);
371 EXPECT_EQ(WideToUTF16(L"\x05e1\x05e2"), textfield_->GetSelectedText()); 371 EXPECT_EQ(WideToUTF16(L"\x05e1\x05e2"), textfield_->GetSelectedText());
372 VERIFY_HANDLE_POSITIONS(false); 372 VERIFY_HANDLE_POSITIONS(false);
373 */ 373 */
374 374
375 // Drag selection handle 1 to right by 1 char. 375 // Drag selection handle 1 to right by 1 char.
376 x = font.GetStringWidth(WideToUTF16(L"d")); 376 x = font.GetStringWidth(WideToUTF16(L"d"));
377 SimulateSelectionHandleDrag(gfx::Point(x, 0), 1); 377 SimulateSelectionHandleDrag(gfx::Point(x, 0), 1);
378 EXPECT_EQ(WideToUTF16(L"\x05e2\x05e3" L"d"), textfield_->GetSelectedText()); 378 EXPECT_EQ(WideToUTF16(L"\x05e2\x05e3" L"d"), textfield_->GetSelectedText());
379 VERIFY_HANDLE_POSITIONS(true); 379 VERIFY_HANDLE_POSITIONS(true);
380 380
381 // Select [\x5e1] from left to right. 381 // Select [\x5e1] from left to right.
382 textfield_->SelectRange(ui::Range(4, 3)); 382 textfield_->SelectRange(gfx::Range(4, 3));
383 EXPECT_EQ(WideToUTF16(L"\x05e1"), textfield_->GetSelectedText()); 383 EXPECT_EQ(WideToUTF16(L"\x05e1"), textfield_->GetSelectedText());
384 VERIFY_HANDLE_POSITIONS(false); 384 VERIFY_HANDLE_POSITIONS(false);
385 385
386 /* TODO(xji): see detail of above commented out test case. 386 /* TODO(xji): see detail of above commented out test case.
387 // Drag selection handle 1 to left by 1 char. 387 // Drag selection handle 1 to left by 1 char.
388 x = font.GetStringWidth(WideToUTF16(L"\x05e2")); 388 x = font.GetStringWidth(WideToUTF16(L"\x05e2"));
389 SimulateSelectionHandleDrag(gfx::Point(-x, 0), 1); 389 SimulateSelectionHandleDrag(gfx::Point(-x, 0), 1);
390 EXPECT_EQ(WideToUTF16(L"\x05e1\x05e2"), textfield_->GetSelectedText()); 390 EXPECT_EQ(WideToUTF16(L"\x05e1\x05e2"), textfield_->GetSelectedText());
391 VERIFY_HANDLE_POSITIONS(true); 391 VERIFY_HANDLE_POSITIONS(true);
392 */ 392 */
393 393
394 // Drag selection handle 2 to right by 1 char. 394 // Drag selection handle 2 to right by 1 char.
395 x = font.GetStringWidth(WideToUTF16(L"d")); 395 x = font.GetStringWidth(WideToUTF16(L"d"));
396 SimulateSelectionHandleDrag(gfx::Point(x, 0), 2); 396 SimulateSelectionHandleDrag(gfx::Point(x, 0), 2);
397 EXPECT_EQ(WideToUTF16(L"\x05e2\x05e3" L"d"), textfield_->GetSelectedText()); 397 EXPECT_EQ(WideToUTF16(L"\x05e2\x05e3" L"d"), textfield_->GetSelectedText());
398 VERIFY_HANDLE_POSITIONS(false); 398 VERIFY_HANDLE_POSITIONS(false);
399 399
400 // Select [\x05r3] from right to left. 400 // Select [\x05r3] from right to left.
401 textfield_->SelectRange(ui::Range(5, 6)); 401 textfield_->SelectRange(gfx::Range(5, 6));
402 EXPECT_EQ(WideToUTF16(L"\x05e3"), textfield_->GetSelectedText()); 402 EXPECT_EQ(WideToUTF16(L"\x05e3"), textfield_->GetSelectedText());
403 VERIFY_HANDLE_POSITIONS(false); 403 VERIFY_HANDLE_POSITIONS(false);
404 404
405 // Drag selection handle 2 to left by 1 char. 405 // Drag selection handle 2 to left by 1 char.
406 x = font.GetStringWidth(WideToUTF16(L"c")); 406 x = font.GetStringWidth(WideToUTF16(L"c"));
407 SimulateSelectionHandleDrag(gfx::Point(-x, 0), 2); 407 SimulateSelectionHandleDrag(gfx::Point(-x, 0), 2);
408 EXPECT_EQ(WideToUTF16(L"c\x05e1\x05e2"), textfield_->GetSelectedText()); 408 EXPECT_EQ(WideToUTF16(L"c\x05e1\x05e2"), textfield_->GetSelectedText());
409 VERIFY_HANDLE_POSITIONS(false); 409 VERIFY_HANDLE_POSITIONS(false);
410 410
411 // Drag selection handle 1 to right by 1 char. 411 // Drag selection handle 1 to right by 1 char.
412 x = font.GetStringWidth(WideToUTF16(L"\x05e2")); 412 x = font.GetStringWidth(WideToUTF16(L"\x05e2"));
413 SimulateSelectionHandleDrag(gfx::Point(x, 0), 1); 413 SimulateSelectionHandleDrag(gfx::Point(x, 0), 1);
414 EXPECT_EQ(WideToUTF16(L"c\x05e1"), textfield_->GetSelectedText()); 414 EXPECT_EQ(WideToUTF16(L"c\x05e1"), textfield_->GetSelectedText());
415 VERIFY_HANDLE_POSITIONS(true); 415 VERIFY_HANDLE_POSITIONS(true);
416 416
417 // Select [\x05r3] from left to right. 417 // Select [\x05r3] from left to right.
418 textfield_->SelectRange(ui::Range(6, 5)); 418 textfield_->SelectRange(gfx::Range(6, 5));
419 EXPECT_EQ(WideToUTF16(L"\x05e3"), textfield_->GetSelectedText()); 419 EXPECT_EQ(WideToUTF16(L"\x05e3"), textfield_->GetSelectedText());
420 VERIFY_HANDLE_POSITIONS(false); 420 VERIFY_HANDLE_POSITIONS(false);
421 421
422 // Drag selection handle 1 to left by 1 char. 422 // Drag selection handle 1 to left by 1 char.
423 x = font.GetStringWidth(WideToUTF16(L"c")); 423 x = font.GetStringWidth(WideToUTF16(L"c"));
424 SimulateSelectionHandleDrag(gfx::Point(-x, 0), 1); 424 SimulateSelectionHandleDrag(gfx::Point(-x, 0), 1);
425 EXPECT_EQ(WideToUTF16(L"c\x05e1\x05e2"), textfield_->GetSelectedText()); 425 EXPECT_EQ(WideToUTF16(L"c\x05e1\x05e2"), textfield_->GetSelectedText());
426 VERIFY_HANDLE_POSITIONS(true); 426 VERIFY_HANDLE_POSITIONS(true);
427 427
428 // Drag selection handle 2 to right by 1 char. 428 // Drag selection handle 2 to right by 1 char.
(...skipping 11 matching lines...) Expand all
440 for (int i = 0; i < 10; ++i) 440 for (int i = 0; i < 10; ++i)
441 textfield_text += textfield_text; 441 textfield_text += textfield_text;
442 textfield_->SetText(ASCIIToUTF16(textfield_text)); 442 textfield_->SetText(ASCIIToUTF16(textfield_text));
443 443
444 // Tap the textfield to invoke selection. 444 // Tap the textfield to invoke selection.
445 ui::GestureEvent tap(ui::ET_GESTURE_TAP, 0, 0, 0, base::TimeDelta(), 445 ui::GestureEvent tap(ui::ET_GESTURE_TAP, 0, 0, 0, base::TimeDelta(),
446 ui::GestureEventDetails(ui::ET_GESTURE_TAP, 1.0f, 0.0f), 0); 446 ui::GestureEventDetails(ui::ET_GESTURE_TAP, 1.0f, 0.0f), 0);
447 textfield_view_->OnGestureEvent(&tap); 447 textfield_view_->OnGestureEvent(&tap);
448 448
449 // Select some text such that one handle is hidden. 449 // Select some text such that one handle is hidden.
450 textfield_->SelectRange(ui::Range(10, textfield_text.length())); 450 textfield_->SelectRange(gfx::Range(10, textfield_text.length()));
451 451
452 // Check that one selection handle is hidden. 452 // Check that one selection handle is hidden.
453 EXPECT_FALSE(IsSelectionHandle1Visible()); 453 EXPECT_FALSE(IsSelectionHandle1Visible());
454 EXPECT_TRUE(IsSelectionHandle2Visible()); 454 EXPECT_TRUE(IsSelectionHandle2Visible());
455 EXPECT_EQ(ui::Range(10, textfield_text.length()), 455 EXPECT_EQ(gfx::Range(10, textfield_text.length()),
456 textfield_->GetSelectedRange()); 456 textfield_->GetSelectedRange());
457 457
458 // Drag the visible handle around and make sure the selection end point of the 458 // Drag the visible handle around and make sure the selection end point of the
459 // invisible handle does not change. 459 // invisible handle does not change.
460 size_t visible_handle_position = textfield_->GetSelectedRange().end(); 460 size_t visible_handle_position = textfield_->GetSelectedRange().end();
461 for (int i = 0; i < 10; ++i) { 461 for (int i = 0; i < 10; ++i) {
462 SimulateSelectionHandleDrag(gfx::Point(-10, 0), 2); 462 SimulateSelectionHandleDrag(gfx::Point(-10, 0), 2);
463 // Make sure that the visible handle is being dragged. 463 // Make sure that the visible handle is being dragged.
464 EXPECT_NE(visible_handle_position, textfield_->GetSelectedRange().end()); 464 EXPECT_NE(visible_handle_position, textfield_->GetSelectedRange().end());
465 visible_handle_position = textfield_->GetSelectedRange().end(); 465 visible_handle_position = textfield_->GetSelectedRange().end();
(...skipping 22 matching lines...) Expand all
488 gfx::Point cursor_pos = GetCursorHandlePosition(); 488 gfx::Point cursor_pos = GetCursorHandlePosition();
489 cursor_pos.Offset(GetHandleImageSize().width() / 2 + kPadding, 0); 489 cursor_pos.Offset(GetHandleImageSize().width() / 2 + kPadding, 0);
490 generator.GestureTapAt(cursor_pos); 490 generator.GestureTapAt(cursor_pos);
491 generator.GestureTapAt(cursor_pos); 491 generator.GestureTapAt(cursor_pos);
492 EXPECT_TRUE(textfield_->HasSelection()); 492 EXPECT_TRUE(textfield_->HasSelection());
493 VERIFY_HANDLE_POSITIONS(false); 493 VERIFY_HANDLE_POSITIONS(false);
494 } 494 }
495 #endif 495 #endif
496 496
497 } // namespace views 497 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/ime/input_method_bridge.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698