| 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 "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 "ui/aura/client/screen_position_client.h" | 7 #include "ui/aura/client/screen_position_client.h" |
| 8 #include "ui/aura/window.h" | 8 #include "ui/aura/window.h" |
| 9 #include "ui/base/resource/resource_bundle.h" | 9 #include "ui/base/resource/resource_bundle.h" |
| 10 #include "ui/base/touch/touch_editing_controller.h" | 10 #include "ui/base/touch/touch_editing_controller.h" |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 TouchSelectionControllerImplTest() | 64 TouchSelectionControllerImplTest() |
| 65 : textfield_widget_(NULL), | 65 : textfield_widget_(NULL), |
| 66 widget_(NULL), | 66 widget_(NULL), |
| 67 textfield_(NULL), | 67 textfield_(NULL), |
| 68 views_tsc_factory_(new ViewsTouchSelectionControllerFactory) { | 68 views_tsc_factory_(new ViewsTouchSelectionControllerFactory) { |
| 69 CommandLine::ForCurrentProcess()->AppendSwitch( | 69 CommandLine::ForCurrentProcess()->AppendSwitch( |
| 70 switches::kEnableTouchEditing); | 70 switches::kEnableTouchEditing); |
| 71 ui::TouchSelectionControllerFactory::SetInstance(views_tsc_factory_.get()); | 71 ui::TouchSelectionControllerFactory::SetInstance(views_tsc_factory_.get()); |
| 72 } | 72 } |
| 73 | 73 |
| 74 virtual ~TouchSelectionControllerImplTest() { | 74 ~TouchSelectionControllerImplTest() override { |
| 75 ui::TouchSelectionControllerFactory::SetInstance(NULL); | 75 ui::TouchSelectionControllerFactory::SetInstance(NULL); |
| 76 } | 76 } |
| 77 | 77 |
| 78 virtual void TearDown() { | 78 void TearDown() override { |
| 79 if (textfield_widget_ && !textfield_widget_->IsClosed()) | 79 if (textfield_widget_ && !textfield_widget_->IsClosed()) |
| 80 textfield_widget_->Close(); | 80 textfield_widget_->Close(); |
| 81 if (widget_ && !widget_->IsClosed()) | 81 if (widget_ && !widget_->IsClosed()) |
| 82 widget_->Close(); | 82 widget_->Close(); |
| 83 ViewsTestBase::TearDown(); | 83 ViewsTestBase::TearDown(); |
| 84 } | 84 } |
| 85 | 85 |
| 86 void CreateTextfield() { | 86 void CreateTextfield() { |
| 87 textfield_ = new Textfield(); | 87 textfield_ = new Textfield(); |
| 88 textfield_widget_ = new Widget; | 88 textfield_widget_ = new Widget; |
| (...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 563 } | 563 } |
| 564 | 564 |
| 565 void set_bounds(const gfx::Rect& bounds) { | 565 void set_bounds(const gfx::Rect& bounds) { |
| 566 bounds_ = bounds; | 566 bounds_ = bounds; |
| 567 } | 567 } |
| 568 | 568 |
| 569 void set_cursor_rect(const gfx::Rect& cursor_rect) { | 569 void set_cursor_rect(const gfx::Rect& cursor_rect) { |
| 570 cursor_rect_ = cursor_rect; | 570 cursor_rect_ = cursor_rect; |
| 571 } | 571 } |
| 572 | 572 |
| 573 virtual ~TestTouchEditable() {} | 573 ~TestTouchEditable() override {} |
| 574 | 574 |
| 575 private: | 575 private: |
| 576 // Overridden from ui::TouchEditable. | 576 // Overridden from ui::TouchEditable. |
| 577 virtual void SelectRect( | 577 void SelectRect(const gfx::Point& start, const gfx::Point& end) override { |
| 578 const gfx::Point& start, const gfx::Point& end) override { | |
| 579 NOTREACHED(); | 578 NOTREACHED(); |
| 580 } | 579 } |
| 581 virtual void MoveCaretTo(const gfx::Point& point) override { | 580 void MoveCaretTo(const gfx::Point& point) override { NOTREACHED(); } |
| 582 NOTREACHED(); | 581 void GetSelectionEndPoints(gfx::Rect* p1, gfx::Rect* p2) override { |
| 583 } | |
| 584 virtual void GetSelectionEndPoints(gfx::Rect* p1, gfx::Rect* p2) override { | |
| 585 *p1 = *p2 = cursor_rect_; | 582 *p1 = *p2 = cursor_rect_; |
| 586 } | 583 } |
| 587 virtual gfx::Rect GetBounds() override { | 584 gfx::Rect GetBounds() override { return gfx::Rect(bounds_.size()); } |
| 588 return gfx::Rect(bounds_.size()); | 585 gfx::NativeView GetNativeView() const override { return window_; } |
| 589 } | 586 void ConvertPointToScreen(gfx::Point* point) override { |
| 590 virtual gfx::NativeView GetNativeView() const override { | |
| 591 return window_; | |
| 592 } | |
| 593 virtual void ConvertPointToScreen(gfx::Point* point) override { | |
| 594 aura::client::ScreenPositionClient* screen_position_client = | 587 aura::client::ScreenPositionClient* screen_position_client = |
| 595 aura::client::GetScreenPositionClient(window_->GetRootWindow()); | 588 aura::client::GetScreenPositionClient(window_->GetRootWindow()); |
| 596 if (screen_position_client) | 589 if (screen_position_client) |
| 597 screen_position_client->ConvertPointToScreen(window_, point); | 590 screen_position_client->ConvertPointToScreen(window_, point); |
| 598 } | 591 } |
| 599 virtual void ConvertPointFromScreen(gfx::Point* point) override { | 592 void ConvertPointFromScreen(gfx::Point* point) override { |
| 600 aura::client::ScreenPositionClient* screen_position_client = | 593 aura::client::ScreenPositionClient* screen_position_client = |
| 601 aura::client::GetScreenPositionClient(window_->GetRootWindow()); | 594 aura::client::GetScreenPositionClient(window_->GetRootWindow()); |
| 602 if (screen_position_client) | 595 if (screen_position_client) |
| 603 screen_position_client->ConvertPointFromScreen(window_, point); | 596 screen_position_client->ConvertPointFromScreen(window_, point); |
| 604 } | 597 } |
| 605 virtual bool DrawsHandles() override { | 598 bool DrawsHandles() override { return false; } |
| 599 void OpenContextMenu(const gfx::Point& anchor) override { NOTREACHED(); } |
| 600 void DestroyTouchSelection() override { NOTREACHED(); } |
| 601 |
| 602 // Overridden from ui::SimpleMenuModel::Delegate. |
| 603 bool IsCommandIdChecked(int command_id) const override { |
| 604 NOTREACHED(); |
| 606 return false; | 605 return false; |
| 607 } | 606 } |
| 608 virtual void OpenContextMenu(const gfx::Point& anchor) override { | 607 bool IsCommandIdEnabled(int command_id) const override { |
| 609 NOTREACHED(); | 608 NOTREACHED(); |
| 609 return false; |
| 610 } | 610 } |
| 611 virtual void DestroyTouchSelection() override { | 611 bool GetAcceleratorForCommandId(int command_id, |
| 612 ui::Accelerator* accelerator) override { |
| 613 NOTREACHED(); |
| 614 return false; |
| 615 } |
| 616 void ExecuteCommand(int command_id, int event_flags) override { |
| 612 NOTREACHED(); | 617 NOTREACHED(); |
| 613 } | 618 } |
| 614 | 619 |
| 615 // Overridden from ui::SimpleMenuModel::Delegate. | |
| 616 virtual bool IsCommandIdChecked(int command_id) const override { | |
| 617 NOTREACHED(); | |
| 618 return false; | |
| 619 } | |
| 620 virtual bool IsCommandIdEnabled(int command_id) const override { | |
| 621 NOTREACHED(); | |
| 622 return false; | |
| 623 } | |
| 624 virtual bool GetAcceleratorForCommandId( | |
| 625 int command_id, | |
| 626 ui::Accelerator* accelerator) override { | |
| 627 NOTREACHED(); | |
| 628 return false; | |
| 629 } | |
| 630 virtual void ExecuteCommand(int command_id, int event_flags) override { | |
| 631 NOTREACHED(); | |
| 632 } | |
| 633 | |
| 634 aura::Window* window_; | 620 aura::Window* window_; |
| 635 | 621 |
| 636 // Boundaries of the client view. | 622 // Boundaries of the client view. |
| 637 gfx::Rect bounds_; | 623 gfx::Rect bounds_; |
| 638 | 624 |
| 639 // Cursor position inside the client view. | 625 // Cursor position inside the client view. |
| 640 gfx::Rect cursor_rect_; | 626 gfx::Rect cursor_rect_; |
| 641 | 627 |
| 642 DISALLOW_COPY_AND_ASSIGN(TestTouchEditable); | 628 DISALLOW_COPY_AND_ASSIGN(TestTouchEditable); |
| 643 }; | 629 }; |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 723 ui::EF_NONE, ui::EF_NONE); | 709 ui::EF_NONE, ui::EF_NONE); |
| 724 EXPECT_EQ(GetCursorHandleNativeView(), | 710 EXPECT_EQ(GetCursorHandleNativeView(), |
| 725 targeter->FindTargetForEvent(root, &test_event3)); | 711 targeter->FindTargetForEvent(root, &test_event3)); |
| 726 } | 712 } |
| 727 | 713 |
| 728 // A simple implementation of TouchEditingMenuController that enables all | 714 // A simple implementation of TouchEditingMenuController that enables all |
| 729 // available commands. | 715 // available commands. |
| 730 class TestTouchEditingMenuController : public TouchEditingMenuController { | 716 class TestTouchEditingMenuController : public TouchEditingMenuController { |
| 731 public: | 717 public: |
| 732 TestTouchEditingMenuController() {} | 718 TestTouchEditingMenuController() {} |
| 733 virtual ~TestTouchEditingMenuController() {} | 719 ~TestTouchEditingMenuController() override {} |
| 734 | 720 |
| 735 // Overriden from TouchEditingMenuController. | 721 // Overriden from TouchEditingMenuController. |
| 736 virtual bool IsCommandIdEnabled(int command_id) const override { | 722 bool IsCommandIdEnabled(int command_id) const override { |
| 737 // Return true, since we want the menu to have all |kMenuCommandCount| | 723 // Return true, since we want the menu to have all |kMenuCommandCount| |
| 738 // available commands. | 724 // available commands. |
| 739 return true; | 725 return true; |
| 740 } | 726 } |
| 741 virtual void ExecuteCommand(int command_id, int event_flags) override { | 727 void ExecuteCommand(int command_id, int event_flags) override { |
| 742 NOTREACHED(); | 728 NOTREACHED(); |
| 743 } | 729 } |
| 744 virtual void OpenContextMenu() override { | 730 void OpenContextMenu() override { NOTREACHED(); } |
| 745 NOTREACHED(); | 731 void OnMenuClosed(TouchEditingMenuView* menu) override {} |
| 746 } | |
| 747 virtual void OnMenuClosed(TouchEditingMenuView* menu) override {} | |
| 748 | 732 |
| 749 private: | 733 private: |
| 750 DISALLOW_COPY_AND_ASSIGN(TestTouchEditingMenuController); | 734 DISALLOW_COPY_AND_ASSIGN(TestTouchEditingMenuController); |
| 751 }; | 735 }; |
| 752 | 736 |
| 753 // Tests if anchor rect for touch editing quick menu is adjusted correctly based | 737 // Tests if anchor rect for touch editing quick menu is adjusted correctly based |
| 754 // on the distance of handles. | 738 // on the distance of handles. |
| 755 TEST_F(TouchSelectionControllerImplTest, QuickMenuAdjustsAnchorRect) { | 739 TEST_F(TouchSelectionControllerImplTest, QuickMenuAdjustsAnchorRect) { |
| 756 CreateWidget(); | 740 CreateWidget(); |
| 757 aura::Window* window = widget_->GetNativeView(); | 741 aura::Window* window = widget_->GetNativeView(); |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 843 // Start touch editing; then press a key and ensure it deactivates touch | 827 // Start touch editing; then press a key and ensure it deactivates touch |
| 844 // selection. | 828 // selection. |
| 845 StartTouchEditing(); | 829 StartTouchEditing(); |
| 846 EXPECT_TRUE(GetSelectionController()); | 830 EXPECT_TRUE(GetSelectionController()); |
| 847 generator.PressKey(ui::VKEY_A, 0); | 831 generator.PressKey(ui::VKEY_A, 0); |
| 848 RunPendingMessages(); | 832 RunPendingMessages(); |
| 849 EXPECT_FALSE(GetSelectionController()); | 833 EXPECT_FALSE(GetSelectionController()); |
| 850 } | 834 } |
| 851 | 835 |
| 852 } // namespace views | 836 } // namespace views |
| OLD | NEW |