OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "ui/views/widget/root_view.h" | 5 #include "ui/views/widget/root_view.h" |
6 | 6 |
7 #include "ui/views/context_menu_controller.h" | 7 #include "ui/views/context_menu_controller.h" |
8 #include "ui/views/test/views_test_base.h" | 8 #include "ui/views/test/views_test_base.h" |
9 #include "ui/views/view_targeter.h" | 9 #include "ui/views/view_targeter.h" |
10 #include "ui/views/widget/root_view.h" | 10 #include "ui/views/widget/root_view.h" |
11 | 11 |
12 namespace views { | 12 namespace views { |
13 namespace test { | 13 namespace test { |
14 | 14 |
15 typedef ViewsTestBase RootViewTest; | 15 typedef ViewsTestBase RootViewTest; |
16 | 16 |
17 class DeleteOnKeyEventView : public View { | 17 class DeleteOnKeyEventView : public View { |
18 public: | 18 public: |
19 explicit DeleteOnKeyEventView(bool* set_on_key) : set_on_key_(set_on_key) {} | 19 explicit DeleteOnKeyEventView(bool* set_on_key) : set_on_key_(set_on_key) {} |
20 virtual ~DeleteOnKeyEventView() {} | 20 ~DeleteOnKeyEventView() override {} |
21 | 21 |
22 virtual bool OnKeyPressed(const ui::KeyEvent& event) override { | 22 bool OnKeyPressed(const ui::KeyEvent& event) override { |
23 *set_on_key_ = true; | 23 *set_on_key_ = true; |
24 delete this; | 24 delete this; |
25 return true; | 25 return true; |
26 } | 26 } |
27 | 27 |
28 private: | 28 private: |
29 // Set to true in OnKeyPressed(). | 29 // Set to true in OnKeyPressed(). |
30 bool* set_on_key_; | 30 bool* set_on_key_; |
31 | 31 |
32 DISALLOW_COPY_AND_ASSIGN(DeleteOnKeyEventView); | 32 DISALLOW_COPY_AND_ASSIGN(DeleteOnKeyEventView); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 } | 66 } |
67 | 67 |
68 // Tracks whether a context menu is shown. | 68 // Tracks whether a context menu is shown. |
69 class TestContextMenuController : public ContextMenuController { | 69 class TestContextMenuController : public ContextMenuController { |
70 public: | 70 public: |
71 TestContextMenuController() | 71 TestContextMenuController() |
72 : show_context_menu_calls_(0), | 72 : show_context_menu_calls_(0), |
73 menu_source_view_(NULL), | 73 menu_source_view_(NULL), |
74 menu_source_type_(ui::MENU_SOURCE_NONE) { | 74 menu_source_type_(ui::MENU_SOURCE_NONE) { |
75 } | 75 } |
76 virtual ~TestContextMenuController() {} | 76 ~TestContextMenuController() override {} |
77 | 77 |
78 int show_context_menu_calls() const { return show_context_menu_calls_; } | 78 int show_context_menu_calls() const { return show_context_menu_calls_; } |
79 View* menu_source_view() const { return menu_source_view_; } | 79 View* menu_source_view() const { return menu_source_view_; } |
80 ui::MenuSourceType menu_source_type() const { return menu_source_type_; } | 80 ui::MenuSourceType menu_source_type() const { return menu_source_type_; } |
81 | 81 |
82 void Reset() { | 82 void Reset() { |
83 show_context_menu_calls_ = 0; | 83 show_context_menu_calls_ = 0; |
84 menu_source_view_ = NULL; | 84 menu_source_view_ = NULL; |
85 menu_source_type_ = ui::MENU_SOURCE_NONE; | 85 menu_source_type_ = ui::MENU_SOURCE_NONE; |
86 } | 86 } |
87 | 87 |
88 // ContextMenuController: | 88 // ContextMenuController: |
89 virtual void ShowContextMenuForView( | 89 void ShowContextMenuForView(View* source, |
90 View* source, | 90 const gfx::Point& point, |
91 const gfx::Point& point, | 91 ui::MenuSourceType source_type) override { |
92 ui::MenuSourceType source_type) override { | |
93 show_context_menu_calls_++; | 92 show_context_menu_calls_++; |
94 menu_source_view_ = source; | 93 menu_source_view_ = source; |
95 menu_source_type_ = source_type; | 94 menu_source_type_ = source_type; |
96 } | 95 } |
97 | 96 |
98 private: | 97 private: |
99 int show_context_menu_calls_; | 98 int show_context_menu_calls_; |
100 View* menu_source_view_; | 99 View* menu_source_view_; |
101 ui::MenuSourceType menu_source_type_; | 100 ui::MenuSourceType menu_source_type_; |
102 | 101 |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 EXPECT_EQ(ui::MENU_SOURCE_KEYBOARD, controller.menu_source_type()); | 152 EXPECT_EQ(ui::MENU_SOURCE_KEYBOARD, controller.menu_source_type()); |
154 controller.Reset(); | 153 controller.Reset(); |
155 } | 154 } |
156 | 155 |
157 // View which handles all gesture events. | 156 // View which handles all gesture events. |
158 class GestureHandlingView : public View { | 157 class GestureHandlingView : public View { |
159 public: | 158 public: |
160 GestureHandlingView() { | 159 GestureHandlingView() { |
161 } | 160 } |
162 | 161 |
163 virtual ~GestureHandlingView() { | 162 ~GestureHandlingView() override {} |
164 } | |
165 | 163 |
166 virtual void OnGestureEvent(ui::GestureEvent* event) override { | 164 void OnGestureEvent(ui::GestureEvent* event) override { event->SetHandled(); } |
167 event->SetHandled(); | |
168 } | |
169 | 165 |
170 private: | 166 private: |
171 DISALLOW_COPY_AND_ASSIGN(GestureHandlingView); | 167 DISALLOW_COPY_AND_ASSIGN(GestureHandlingView); |
172 }; | 168 }; |
173 | 169 |
174 // Tests that context menus are shown for long press by the post-target handler | 170 // Tests that context menus are shown for long press by the post-target handler |
175 // installed on the RootView only if the event is targetted at a view which can | 171 // installed on the RootView only if the event is targetted at a view which can |
176 // show a context menu. | 172 // show a context menu. |
177 TEST_F(RootViewTest, ContextMenuFromLongPress) { | 173 TEST_F(RootViewTest, ContextMenuFromLongPress) { |
178 Widget widget; | 174 Widget widget; |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
336 25, 5, 0, base::TimeDelta(), ui::GestureEventDetails(ui::ET_GESTURE_END)); | 332 25, 5, 0, base::TimeDelta(), ui::GestureEventDetails(ui::ET_GESTURE_END)); |
337 details = root_view->OnEventFromSource(&end3); | 333 details = root_view->OnEventFromSource(&end3); |
338 | 334 |
339 EXPECT_FALSE(details.target_destroyed); | 335 EXPECT_FALSE(details.target_destroyed); |
340 EXPECT_FALSE(details.dispatcher_destroyed); | 336 EXPECT_FALSE(details.dispatcher_destroyed); |
341 EXPECT_EQ(0, controller.show_context_menu_calls()); | 337 EXPECT_EQ(0, controller.show_context_menu_calls()); |
342 } | 338 } |
343 | 339 |
344 } // namespace test | 340 } // namespace test |
345 } // namespace views | 341 } // namespace views |
OLD | NEW |