OLD | NEW |
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 <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "ui/aura/client/screen_position_client.h" | 10 #include "ui/aura/client/screen_position_client.h" |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 } | 70 } |
71 | 71 |
72 ~TouchSelectionControllerImplTest() override { | 72 ~TouchSelectionControllerImplTest() override { |
73 ui::TouchEditingControllerFactory::SetInstance(nullptr); | 73 ui::TouchEditingControllerFactory::SetInstance(nullptr); |
74 } | 74 } |
75 | 75 |
76 void SetUp() override { | 76 void SetUp() override { |
77 ViewsTestBase::SetUp(); | 77 ViewsTestBase::SetUp(); |
78 // TODO: test uses GetContext(), which is not applicable to aura-mus. | 78 // TODO: test uses GetContext(), which is not applicable to aura-mus. |
79 // http://crbug.com/663809. | 79 // http://crbug.com/663809. |
80 if (IsAuraMusClient()) | 80 if (IsMus()) |
81 return; | 81 return; |
82 test_cursor_client_.reset(new aura::test::TestCursorClient(GetContext())); | 82 test_cursor_client_.reset(new aura::test::TestCursorClient(GetContext())); |
83 } | 83 } |
84 | 84 |
85 void TearDown() override { | 85 void TearDown() override { |
86 test_cursor_client_.reset(); | 86 test_cursor_client_.reset(); |
87 if (textfield_widget_ && !textfield_widget_->IsClosed()) | 87 if (textfield_widget_ && !textfield_widget_->IsClosed()) |
88 textfield_widget_->Close(); | 88 textfield_widget_->Close(); |
89 if (widget_ && !widget_->IsClosed()) | 89 if (widget_ && !widget_->IsClosed()) |
90 widget_->Close(); | 90 widget_->Close(); |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
316 std::unique_ptr<aura::test::TestCursorClient> test_cursor_client_; | 316 std::unique_ptr<aura::test::TestCursorClient> test_cursor_client_; |
317 | 317 |
318 private: | 318 private: |
319 DISALLOW_COPY_AND_ASSIGN(TouchSelectionControllerImplTest); | 319 DISALLOW_COPY_AND_ASSIGN(TouchSelectionControllerImplTest); |
320 }; | 320 }; |
321 | 321 |
322 // Tests that the selection handles are placed appropriately when selection in | 322 // Tests that the selection handles are placed appropriately when selection in |
323 // a Textfield changes. | 323 // a Textfield changes. |
324 TEST_F(TouchSelectionControllerImplTest, SelectionInTextfieldTest) { | 324 TEST_F(TouchSelectionControllerImplTest, SelectionInTextfieldTest) { |
325 // TODO: see comment in SetUp(). | 325 // TODO: see comment in SetUp(). |
326 if (IsAuraMusClient()) | 326 if (IsMus()) |
327 return; | 327 return; |
328 | 328 |
329 CreateTextfield(); | 329 CreateTextfield(); |
330 textfield_->SetText(ASCIIToUTF16("some text")); | 330 textfield_->SetText(ASCIIToUTF16("some text")); |
331 // Tap the textfield to invoke touch selection. | 331 // Tap the textfield to invoke touch selection. |
332 ui::GestureEventDetails details(ui::ET_GESTURE_TAP); | 332 ui::GestureEventDetails details(ui::ET_GESTURE_TAP); |
333 details.set_tap_count(1); | 333 details.set_tap_count(1); |
334 ui::GestureEvent tap(0, 0, 0, base::TimeTicks(), details); | 334 ui::GestureEvent tap(0, 0, 0, base::TimeTicks(), details); |
335 textfield_->OnGestureEvent(&tap); | 335 textfield_->OnGestureEvent(&tap); |
336 | 336 |
(...skipping 16 matching lines...) Expand all Loading... |
353 // Test with focus re-gained. | 353 // Test with focus re-gained. |
354 textfield_widget_->GetFocusManager()->SetFocusedView(textfield_); | 354 textfield_widget_->GetFocusManager()->SetFocusedView(textfield_); |
355 EXPECT_FALSE(GetSelectionController()); | 355 EXPECT_FALSE(GetSelectionController()); |
356 textfield_->OnGestureEvent(&tap); | 356 textfield_->OnGestureEvent(&tap); |
357 VerifyHandlePositions(false, true, FROM_HERE); | 357 VerifyHandlePositions(false, true, FROM_HERE); |
358 } | 358 } |
359 | 359 |
360 // Tests that the selection handles are placed appropriately in bidi text. | 360 // Tests that the selection handles are placed appropriately in bidi text. |
361 TEST_F(TouchSelectionControllerImplTest, SelectionInBidiTextfieldTest) { | 361 TEST_F(TouchSelectionControllerImplTest, SelectionInBidiTextfieldTest) { |
362 // TODO: see comment in SetUp(). | 362 // TODO: see comment in SetUp(). |
363 if (IsAuraMusClient()) | 363 if (IsMus()) |
364 return; | 364 return; |
365 | 365 |
366 CreateTextfield(); | 366 CreateTextfield(); |
367 textfield_->SetText(WideToUTF16(L"abc\x05d0\x05d1\x05d2")); | 367 textfield_->SetText(WideToUTF16(L"abc\x05d0\x05d1\x05d2")); |
368 // Tap the textfield to invoke touch selection. | 368 // Tap the textfield to invoke touch selection. |
369 ui::GestureEventDetails details(ui::ET_GESTURE_TAP); | 369 ui::GestureEventDetails details(ui::ET_GESTURE_TAP); |
370 details.set_tap_count(1); | 370 details.set_tap_count(1); |
371 ui::GestureEvent tap(0, 0, 0, base::TimeTicks(), details); | 371 ui::GestureEvent tap(0, 0, 0, base::TimeTicks(), details); |
372 textfield_->OnGestureEvent(&tap); | 372 textfield_->OnGestureEvent(&tap); |
373 | 373 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
409 VerifyHandlePositions(false, true, FROM_HERE); | 409 VerifyHandlePositions(false, true, FROM_HERE); |
410 | 410 |
411 textfield_->SelectRange(gfx::Range(4, 1)); | 411 textfield_->SelectRange(gfx::Range(4, 1)); |
412 VerifyHandlePositions(false, true, FROM_HERE); | 412 VerifyHandlePositions(false, true, FROM_HERE); |
413 } | 413 } |
414 | 414 |
415 // Tests if the SelectRect callback is called appropriately when selection | 415 // Tests if the SelectRect callback is called appropriately when selection |
416 // handles are moved. | 416 // handles are moved. |
417 TEST_F(TouchSelectionControllerImplTest, SelectRectCallbackTest) { | 417 TEST_F(TouchSelectionControllerImplTest, SelectRectCallbackTest) { |
418 // TODO: see comment in SetUp(). | 418 // TODO: see comment in SetUp(). |
419 if (IsAuraMusClient()) | 419 if (IsMus()) |
420 return; | 420 return; |
421 | 421 |
422 CreateTextfield(); | 422 CreateTextfield(); |
423 textfield_->SetText(ASCIIToUTF16("textfield with selected text")); | 423 textfield_->SetText(ASCIIToUTF16("textfield with selected text")); |
424 // Tap the textfield to invoke touch selection. | 424 // Tap the textfield to invoke touch selection. |
425 ui::GestureEventDetails details(ui::ET_GESTURE_TAP); | 425 ui::GestureEventDetails details(ui::ET_GESTURE_TAP); |
426 details.set_tap_count(1); | 426 details.set_tap_count(1); |
427 ui::GestureEvent tap(0, 0, 0, base::TimeTicks(), details); | 427 ui::GestureEvent tap(0, 0, 0, base::TimeTicks(), details); |
428 textfield_->OnGestureEvent(&tap); | 428 textfield_->OnGestureEvent(&tap); |
429 textfield_->SelectRange(gfx::Range(3, 7)); | 429 textfield_->SelectRange(gfx::Range(3, 7)); |
(...skipping 25 matching lines...) Expand all Loading... |
455 | 455 |
456 // Drag selection handle 2 across selection handle 1. | 456 // Drag selection handle 2 across selection handle 1. |
457 x = gfx::Canvas::GetStringWidth(ASCIIToUTF16("with selected "), font_list); | 457 x = gfx::Canvas::GetStringWidth(ASCIIToUTF16("with selected "), font_list); |
458 SimulateSelectionHandleDrag(gfx::Vector2d(x, 0), 2); | 458 SimulateSelectionHandleDrag(gfx::Vector2d(x, 0), 2); |
459 EXPECT_EQ("selected ", UTF16ToUTF8(textfield_->GetSelectedText())); | 459 EXPECT_EQ("selected ", UTF16ToUTF8(textfield_->GetSelectedText())); |
460 VerifyHandlePositions(false, true, FROM_HERE); | 460 VerifyHandlePositions(false, true, FROM_HERE); |
461 } | 461 } |
462 | 462 |
463 TEST_F(TouchSelectionControllerImplTest, SelectRectInBidiCallbackTest) { | 463 TEST_F(TouchSelectionControllerImplTest, SelectRectInBidiCallbackTest) { |
464 // TODO: see comment in SetUp(). | 464 // TODO: see comment in SetUp(). |
465 if (IsAuraMusClient()) | 465 if (IsMus()) |
466 return; | 466 return; |
467 | 467 |
468 CreateTextfield(); | 468 CreateTextfield(); |
469 textfield_->SetText(WideToUTF16(L"abc\x05e1\x05e2\x05e3" L"def")); | 469 textfield_->SetText(WideToUTF16(L"abc\x05e1\x05e2\x05e3" L"def")); |
470 // Tap the textfield to invoke touch selection. | 470 // Tap the textfield to invoke touch selection. |
471 ui::GestureEventDetails details(ui::ET_GESTURE_TAP); | 471 ui::GestureEventDetails details(ui::ET_GESTURE_TAP); |
472 details.set_tap_count(1); | 472 details.set_tap_count(1); |
473 ui::GestureEvent tap(0, 0, 0, base::TimeTicks(), details); | 473 ui::GestureEvent tap(0, 0, 0, base::TimeTicks(), details); |
474 textfield_->OnGestureEvent(&tap); | 474 textfield_->OnGestureEvent(&tap); |
475 | 475 |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
587 // Drag selection handle 2 to right by 1 char. | 587 // Drag selection handle 2 to right by 1 char. |
588 x = gfx::Canvas::GetStringWidth(WideToUTF16(L"\x05e2"), font_list); | 588 x = gfx::Canvas::GetStringWidth(WideToUTF16(L"\x05e2"), font_list); |
589 SimulateSelectionHandleDrag(gfx::Vector2d(x, 0), 2); | 589 SimulateSelectionHandleDrag(gfx::Vector2d(x, 0), 2); |
590 EXPECT_EQ(WideToUTF16(L"c\x05e1"), textfield_->GetSelectedText()); | 590 EXPECT_EQ(WideToUTF16(L"c\x05e1"), textfield_->GetSelectedText()); |
591 VerifyHandlePositions(false, false, FROM_HERE); | 591 VerifyHandlePositions(false, false, FROM_HERE); |
592 } | 592 } |
593 | 593 |
594 TEST_F(TouchSelectionControllerImplTest, | 594 TEST_F(TouchSelectionControllerImplTest, |
595 HiddenSelectionHandleRetainsCursorPosition) { | 595 HiddenSelectionHandleRetainsCursorPosition) { |
596 // TODO: see comment in SetUp(). | 596 // TODO: see comment in SetUp(). |
597 if (IsAuraMusClient()) | 597 if (IsMus()) |
598 return; | 598 return; |
599 | 599 |
600 static const uint32_t selection_start = 10u; | 600 static const uint32_t selection_start = 10u; |
601 SetupSelectionInvisibleHandle(selection_start); | 601 SetupSelectionInvisibleHandle(selection_start); |
602 // Drag the visible handle around and make sure the selection end point of the | 602 // Drag the visible handle around and make sure the selection end point of the |
603 // invisible handle does not change. | 603 // invisible handle does not change. |
604 size_t visible_handle_position = textfield_->GetSelectedRange().end(); | 604 size_t visible_handle_position = textfield_->GetSelectedRange().end(); |
605 for (int i = 0; i < 10; ++i) { | 605 for (int i = 0; i < 10; ++i) { |
606 static const int drag_diff = -10; | 606 static const int drag_diff = -10; |
607 SimulateSelectionHandleDrag(gfx::Vector2d(drag_diff, 0), 2); | 607 SimulateSelectionHandleDrag(gfx::Vector2d(drag_diff, 0), 2); |
608 // Make sure that the visible handle is being dragged. | 608 // Make sure that the visible handle is being dragged. |
609 EXPECT_NE(visible_handle_position, textfield_->GetSelectedRange().end()); | 609 EXPECT_NE(visible_handle_position, textfield_->GetSelectedRange().end()); |
610 visible_handle_position = textfield_->GetSelectedRange().end(); | 610 visible_handle_position = textfield_->GetSelectedRange().end(); |
611 EXPECT_EQ((size_t) 10, textfield_->GetSelectedRange().start()); | 611 EXPECT_EQ((size_t) 10, textfield_->GetSelectedRange().start()); |
612 } | 612 } |
613 } | 613 } |
614 | 614 |
615 // Tests that we can handle the hidden handle getting exposed as a result of a | 615 // Tests that we can handle the hidden handle getting exposed as a result of a |
616 // drag and that it maintains the correct orientation when exposed. | 616 // drag and that it maintains the correct orientation when exposed. |
617 TEST_F(TouchSelectionControllerImplTest, HiddenSelectionHandleExposed) { | 617 TEST_F(TouchSelectionControllerImplTest, HiddenSelectionHandleExposed) { |
618 // TODO: see comment in SetUp(). | 618 // TODO: see comment in SetUp(). |
619 if (IsAuraMusClient()) | 619 if (IsMus()) |
620 return; | 620 return; |
621 | 621 |
622 static const uint32_t selection_start = 0u; | 622 static const uint32_t selection_start = 0u; |
623 SetupSelectionInvisibleHandle(selection_start); | 623 SetupSelectionInvisibleHandle(selection_start); |
624 | 624 |
625 // Drag the handle until the selection shrinks such that the other handle | 625 // Drag the handle until the selection shrinks such that the other handle |
626 // becomes visible. | 626 // becomes visible. |
627 while (!IsSelectionHandle1Visible()) { | 627 while (!IsSelectionHandle1Visible()) { |
628 static const int drag_diff = -10; | 628 static const int drag_diff = -10; |
629 SimulateSelectionHandleDrag(gfx::Vector2d(drag_diff, 0), 2); | 629 SimulateSelectionHandleDrag(gfx::Vector2d(drag_diff, 0), 2); |
630 } | 630 } |
631 | 631 |
632 // Confirm that the exposed handle maintains the LEFT orientation | 632 // Confirm that the exposed handle maintains the LEFT orientation |
633 // (and does not reset to gfx::SelectionBound::Type::CENTER). | 633 // (and does not reset to gfx::SelectionBound::Type::CENTER). |
634 EXPECT_EQ(gfx::SelectionBound::Type::LEFT, GetSelectionHandle1Type()); | 634 EXPECT_EQ(gfx::SelectionBound::Type::LEFT, GetSelectionHandle1Type()); |
635 } | 635 } |
636 | 636 |
637 TEST_F(TouchSelectionControllerImplTest, | 637 TEST_F(TouchSelectionControllerImplTest, |
638 DoubleTapInTextfieldWithCursorHandleShouldSelectText) { | 638 DoubleTapInTextfieldWithCursorHandleShouldSelectText) { |
639 // TODO: see comment in SetUp(). | 639 // TODO: see comment in SetUp(). |
640 if (IsAuraMusClient()) | 640 if (IsMus()) |
641 return; | 641 return; |
642 | 642 |
643 CreateTextfield(); | 643 CreateTextfield(); |
644 textfield_->SetText(ASCIIToUTF16("some text")); | 644 textfield_->SetText(ASCIIToUTF16("some text")); |
645 ui::test::EventGenerator generator( | 645 ui::test::EventGenerator generator( |
646 textfield_->GetWidget()->GetNativeView()->GetRootWindow()); | 646 textfield_->GetWidget()->GetNativeView()->GetRootWindow()); |
647 | 647 |
648 // Tap the textfield to invoke touch selection. | 648 // Tap the textfield to invoke touch selection. |
649 generator.GestureTapAt(gfx::Point(10, 10)); | 649 generator.GestureTapAt(gfx::Point(10, 10)); |
650 | 650 |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
733 gfx::SelectionBound cursor_bound_; | 733 gfx::SelectionBound cursor_bound_; |
734 | 734 |
735 DISALLOW_COPY_AND_ASSIGN(TestTouchEditable); | 735 DISALLOW_COPY_AND_ASSIGN(TestTouchEditable); |
736 }; | 736 }; |
737 | 737 |
738 // Tests if the touch editing handle is shown or hidden properly according to | 738 // Tests if the touch editing handle is shown or hidden properly according to |
739 // the cursor position relative to the client boundaries. | 739 // the cursor position relative to the client boundaries. |
740 TEST_F(TouchSelectionControllerImplTest, | 740 TEST_F(TouchSelectionControllerImplTest, |
741 VisibilityOfHandleRegardingClientBounds) { | 741 VisibilityOfHandleRegardingClientBounds) { |
742 // TODO: see comment in SetUp(). | 742 // TODO: see comment in SetUp(). |
743 if (IsAuraMusClient()) | 743 if (IsMus()) |
744 return; | 744 return; |
745 | 745 |
746 CreateWidget(); | 746 CreateWidget(); |
747 | 747 |
748 TestTouchEditable touch_editable(widget_->GetNativeView()); | 748 TestTouchEditable touch_editable(widget_->GetNativeView()); |
749 std::unique_ptr<ui::TouchEditingControllerDeprecated> | 749 std::unique_ptr<ui::TouchEditingControllerDeprecated> |
750 touch_selection_controller( | 750 touch_selection_controller( |
751 ui::TouchEditingControllerDeprecated::Create(&touch_editable)); | 751 ui::TouchEditingControllerDeprecated::Create(&touch_editable)); |
752 | 752 |
753 touch_editable.set_bounds(gfx::Rect(0, 0, 100, 20)); | 753 touch_editable.set_bounds(gfx::Rect(0, 0, 100, 20)); |
(...skipping 30 matching lines...) Expand all Loading... |
784 touch_editable.set_cursor_rect( | 784 touch_editable.set_cursor_rect( |
785 gfx::RectF(2.f, kBarBottomAllowance + 1.f, 1.f, 20.f)); | 785 gfx::RectF(2.f, kBarBottomAllowance + 1.f, 1.f, 20.f)); |
786 touch_selection_controller->SelectionChanged(); | 786 touch_selection_controller->SelectionChanged(); |
787 EXPECT_FALSE(IsCursorHandleVisibleFor(touch_selection_controller.get())); | 787 EXPECT_FALSE(IsCursorHandleVisibleFor(touch_selection_controller.get())); |
788 | 788 |
789 touch_selection_controller.reset(); | 789 touch_selection_controller.reset(); |
790 } | 790 } |
791 | 791 |
792 TEST_F(TouchSelectionControllerImplTest, HandlesStackAboveParent) { | 792 TEST_F(TouchSelectionControllerImplTest, HandlesStackAboveParent) { |
793 // TODO: see comment in SetUp(). | 793 // TODO: see comment in SetUp(). |
794 if (IsAuraMusClient()) | 794 if (IsMus()) |
795 return; | 795 return; |
796 | 796 |
797 ui::EventTarget* root = GetContext(); | 797 ui::EventTarget* root = GetContext(); |
798 ui::EventTargeter* targeter = root->GetEventTargeter(); | 798 ui::EventTargeter* targeter = root->GetEventTargeter(); |
799 | 799 |
800 // Create the first window containing a Views::Textfield. | 800 // Create the first window containing a Views::Textfield. |
801 CreateTextfield(); | 801 CreateTextfield(); |
802 aura::Window* window1 = textfield_widget_->GetNativeView(); | 802 aura::Window* window1 = textfield_widget_->GetNativeView(); |
803 | 803 |
804 // Start touch editing, check that the handle is above the first window, and | 804 // Start touch editing, check that the handle is above the first window, and |
(...skipping 21 matching lines...) Expand all Loading... |
826 // first window. | 826 // first window. |
827 window1->GetRootWindow()->StackChildAtTop(window1); | 827 window1->GetRootWindow()->StackChildAtTop(window1); |
828 ui::MouseEvent test_event3(ui::ET_MOUSE_MOVED, test_point, test_point, | 828 ui::MouseEvent test_event3(ui::ET_MOUSE_MOVED, test_point, test_point, |
829 ui::EventTimeForNow(), ui::EF_NONE, ui::EF_NONE); | 829 ui::EventTimeForNow(), ui::EF_NONE, ui::EF_NONE); |
830 EXPECT_EQ(GetCursorHandleNativeView(), | 830 EXPECT_EQ(GetCursorHandleNativeView(), |
831 targeter->FindTargetForEvent(root, &test_event3)); | 831 targeter->FindTargetForEvent(root, &test_event3)); |
832 } | 832 } |
833 | 833 |
834 TEST_F(TouchSelectionControllerImplTest, MouseEventDeactivatesTouchSelection) { | 834 TEST_F(TouchSelectionControllerImplTest, MouseEventDeactivatesTouchSelection) { |
835 // TODO: see comment in SetUp(). | 835 // TODO: see comment in SetUp(). |
836 if (IsAuraMusClient()) | 836 if (IsMus()) |
837 return; | 837 return; |
838 | 838 |
839 CreateTextfield(); | 839 CreateTextfield(); |
840 EXPECT_FALSE(GetSelectionController()); | 840 EXPECT_FALSE(GetSelectionController()); |
841 | 841 |
842 ui::test::EventGenerator generator( | 842 ui::test::EventGenerator generator( |
843 textfield_widget_->GetNativeView()->GetRootWindow()); | 843 textfield_widget_->GetNativeView()->GetRootWindow()); |
844 | 844 |
845 generator.set_current_location(gfx::Point(5, 5)); | 845 generator.set_current_location(gfx::Point(5, 5)); |
846 RunPendingMessages(); | 846 RunPendingMessages(); |
(...skipping 24 matching lines...) Expand all Loading... |
871 // ensure it deactivates touch selection. | 871 // ensure it deactivates touch selection. |
872 StartTouchEditing(); | 872 StartTouchEditing(); |
873 EXPECT_TRUE(GetSelectionController()); | 873 EXPECT_TRUE(GetSelectionController()); |
874 generator.MoveMouseTo(5, 505); | 874 generator.MoveMouseTo(5, 505); |
875 RunPendingMessages(); | 875 RunPendingMessages(); |
876 EXPECT_FALSE(GetSelectionController()); | 876 EXPECT_FALSE(GetSelectionController()); |
877 } | 877 } |
878 | 878 |
879 TEST_F(TouchSelectionControllerImplTest, MouseCaptureChangedEventIgnored) { | 879 TEST_F(TouchSelectionControllerImplTest, MouseCaptureChangedEventIgnored) { |
880 // TODO: see comment in SetUp(). | 880 // TODO: see comment in SetUp(). |
881 if (IsAuraMusClient()) | 881 if (IsMus()) |
882 return; | 882 return; |
883 | 883 |
884 CreateTextfield(); | 884 CreateTextfield(); |
885 EXPECT_FALSE(GetSelectionController()); | 885 EXPECT_FALSE(GetSelectionController()); |
886 | 886 |
887 ui::test::EventGenerator generator( | 887 ui::test::EventGenerator generator( |
888 textfield_widget_->GetNativeView()->GetRootWindow()); | 888 textfield_widget_->GetNativeView()->GetRootWindow()); |
889 RunPendingMessages(); | 889 RunPendingMessages(); |
890 | 890 |
891 // Start touch editing; then generate a mouse-capture-changed event and ensure | 891 // Start touch editing; then generate a mouse-capture-changed event and ensure |
892 // it does not deactivate touch selection. | 892 // it does not deactivate touch selection. |
893 StartTouchEditing(); | 893 StartTouchEditing(); |
894 EXPECT_TRUE(GetSelectionController()); | 894 EXPECT_TRUE(GetSelectionController()); |
895 ui::MouseEvent capture_changed(ui::ET_MOUSE_CAPTURE_CHANGED, gfx::Point(5, 5), | 895 ui::MouseEvent capture_changed(ui::ET_MOUSE_CAPTURE_CHANGED, gfx::Point(5, 5), |
896 gfx::Point(5, 5), base::TimeTicks(), 0, 0); | 896 gfx::Point(5, 5), base::TimeTicks(), 0, 0); |
897 generator.Dispatch(&capture_changed); | 897 generator.Dispatch(&capture_changed); |
898 RunPendingMessages(); | 898 RunPendingMessages(); |
899 EXPECT_TRUE(GetSelectionController()); | 899 EXPECT_TRUE(GetSelectionController()); |
900 } | 900 } |
901 | 901 |
902 TEST_F(TouchSelectionControllerImplTest, KeyEventDeactivatesTouchSelection) { | 902 TEST_F(TouchSelectionControllerImplTest, KeyEventDeactivatesTouchSelection) { |
903 // TODO: see comment in SetUp(). | 903 // TODO: see comment in SetUp(). |
904 if (IsAuraMusClient()) | 904 if (IsMus()) |
905 return; | 905 return; |
906 | 906 |
907 CreateTextfield(); | 907 CreateTextfield(); |
908 EXPECT_FALSE(GetSelectionController()); | 908 EXPECT_FALSE(GetSelectionController()); |
909 | 909 |
910 ui::test::EventGenerator generator( | 910 ui::test::EventGenerator generator( |
911 textfield_widget_->GetNativeView()->GetRootWindow()); | 911 textfield_widget_->GetNativeView()->GetRootWindow()); |
912 | 912 |
913 RunPendingMessages(); | 913 RunPendingMessages(); |
914 | 914 |
915 // Start touch editing; then press a key and ensure it deactivates touch | 915 // Start touch editing; then press a key and ensure it deactivates touch |
916 // selection. | 916 // selection. |
917 StartTouchEditing(); | 917 StartTouchEditing(); |
918 EXPECT_TRUE(GetSelectionController()); | 918 EXPECT_TRUE(GetSelectionController()); |
919 generator.PressKey(ui::VKEY_A, 0); | 919 generator.PressKey(ui::VKEY_A, 0); |
920 RunPendingMessages(); | 920 RunPendingMessages(); |
921 EXPECT_FALSE(GetSelectionController()); | 921 EXPECT_FALSE(GetSelectionController()); |
922 } | 922 } |
923 | 923 |
924 } // namespace views | 924 } // namespace views |
OLD | NEW |