OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/macros.h" | 5 #include "base/macros.h" |
6 #include "ui/events/event_utils.h" | 6 #include "ui/events/event_utils.h" |
7 #include "ui/strings/grit/ui_strings.h" | 7 #include "ui/strings/grit/ui_strings.h" |
8 #include "ui/touch_selection/touch_selection_menu_runner.h" | 8 #include "ui/touch_selection/touch_selection_menu_runner.h" |
9 #include "ui/views/controls/button/button.h" | 9 #include "ui/views/controls/button/button.h" |
10 #include "ui/views/test/views_test_base.h" | 10 #include "ui/views/test/views_test_base.h" |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 | 60 |
61 int last_executed_command_id_; | 61 int last_executed_command_id_; |
62 | 62 |
63 DISALLOW_COPY_AND_ASSIGN(TouchSelectionMenuRunnerViewsTest); | 63 DISALLOW_COPY_AND_ASSIGN(TouchSelectionMenuRunnerViewsTest); |
64 }; | 64 }; |
65 | 65 |
66 // Tests that the default touch selection menu runner is installed and opening | 66 // Tests that the default touch selection menu runner is installed and opening |
67 // and closing the menu works properly. | 67 // and closing the menu works properly. |
68 TEST_F(TouchSelectionMenuRunnerViewsTest, InstalledAndWorksProperly) { | 68 TEST_F(TouchSelectionMenuRunnerViewsTest, InstalledAndWorksProperly) { |
69 // See comment in SetUp(). | 69 // See comment in SetUp(). |
70 if (IsAuraMusClient()) | 70 if (IsMus()) |
71 return; | 71 return; |
72 | 72 |
73 gfx::Rect menu_anchor(0, 0, 10, 10); | 73 gfx::Rect menu_anchor(0, 0, 10, 10); |
74 gfx::Size handle_size(10, 10); | 74 gfx::Size handle_size(10, 10); |
75 | 75 |
76 // Menu runner instance should be installed, but no menu should be running. | 76 // Menu runner instance should be installed, but no menu should be running. |
77 EXPECT_TRUE(ui::TouchSelectionMenuRunner::GetInstance()); | 77 EXPECT_TRUE(ui::TouchSelectionMenuRunner::GetInstance()); |
78 EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); | 78 EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); |
79 | 79 |
80 // Run menu. Since commands are available, this should bring up menus. | 80 // Run menu. Since commands are available, this should bring up menus. |
(...skipping 10 matching lines...) Expand all Loading... |
91 set_no_commmand_available(true); | 91 set_no_commmand_available(true); |
92 ui::TouchSelectionMenuRunner::GetInstance()->OpenMenu( | 92 ui::TouchSelectionMenuRunner::GetInstance()->OpenMenu( |
93 this, menu_anchor, handle_size, GetContext()); | 93 this, menu_anchor, handle_size, GetContext()); |
94 EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); | 94 EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); |
95 } | 95 } |
96 | 96 |
97 // Tests that anchor rect for the quick menu is adjusted correctly based on the | 97 // Tests that anchor rect for the quick menu is adjusted correctly based on the |
98 // distance of handles. | 98 // distance of handles. |
99 TEST_F(TouchSelectionMenuRunnerViewsTest, QuickMenuAdjustsAnchorRect) { | 99 TEST_F(TouchSelectionMenuRunnerViewsTest, QuickMenuAdjustsAnchorRect) { |
100 // See comment in SetUp(). | 100 // See comment in SetUp(). |
101 if (IsAuraMusClient()) | 101 if (IsMus()) |
102 return; | 102 return; |
103 | 103 |
104 gfx::Size handle_size(10, 10); | 104 gfx::Size handle_size(10, 10); |
105 TouchSelectionMenuRunnerViews::TestApi test_api( | 105 TouchSelectionMenuRunnerViews::TestApi test_api( |
106 static_cast<TouchSelectionMenuRunnerViews*>( | 106 static_cast<TouchSelectionMenuRunnerViews*>( |
107 ui::TouchSelectionMenuRunner::GetInstance())); | 107 ui::TouchSelectionMenuRunner::GetInstance())); |
108 | 108 |
109 // Calculate the width of quick menu. In addition to |kMenuCommandCount| | 109 // Calculate the width of quick menu. In addition to |kMenuCommandCount| |
110 // commands, there is an item for ellipsis. | 110 // commands, there is an item for ellipsis. |
111 int quick_menu_width = | 111 int quick_menu_width = |
(...skipping 15 matching lines...) Expand all Loading... |
127 this, anchor_rect, handle_size, GetContext()); | 127 this, anchor_rect, handle_size, GetContext()); |
128 EXPECT_EQ(anchor_rect, test_api.GetAnchorRect()); | 128 EXPECT_EQ(anchor_rect, test_api.GetAnchorRect()); |
129 | 129 |
130 ui::TouchSelectionMenuRunner::GetInstance()->CloseMenu(); | 130 ui::TouchSelectionMenuRunner::GetInstance()->CloseMenu(); |
131 RunPendingMessages(); | 131 RunPendingMessages(); |
132 } | 132 } |
133 | 133 |
134 // Tests that running one of menu actions closes the menu properly. | 134 // Tests that running one of menu actions closes the menu properly. |
135 TEST_F(TouchSelectionMenuRunnerViewsTest, RunningActionClosesProperly) { | 135 TEST_F(TouchSelectionMenuRunnerViewsTest, RunningActionClosesProperly) { |
136 // See comment in SetUp(). | 136 // See comment in SetUp(). |
137 if (IsAuraMusClient()) | 137 if (IsMus()) |
138 return; | 138 return; |
139 | 139 |
140 gfx::Rect menu_anchor(0, 0, 10, 10); | 140 gfx::Rect menu_anchor(0, 0, 10, 10); |
141 gfx::Size handle_size(10, 10); | 141 gfx::Size handle_size(10, 10); |
142 TouchSelectionMenuRunnerViews::TestApi test_api( | 142 TouchSelectionMenuRunnerViews::TestApi test_api( |
143 static_cast<TouchSelectionMenuRunnerViews*>( | 143 static_cast<TouchSelectionMenuRunnerViews*>( |
144 ui::TouchSelectionMenuRunner::GetInstance())); | 144 ui::TouchSelectionMenuRunner::GetInstance())); |
145 | 145 |
146 // Initially, no menu should be running. | 146 // Initially, no menu should be running. |
147 EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); | 147 EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); |
(...skipping 14 matching lines...) Expand all Loading... |
162 ui::EventTimeForNow(), details); | 162 ui::EventTimeForNow(), details); |
163 button->OnGestureEvent(&tap); | 163 button->OnGestureEvent(&tap); |
164 RunPendingMessages(); | 164 RunPendingMessages(); |
165 EXPECT_NE(0, last_executed_command_id()); | 165 EXPECT_NE(0, last_executed_command_id()); |
166 EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); | 166 EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); |
167 } | 167 } |
168 | 168 |
169 // Tests that closing the menu widget cleans up the menu runner state properly. | 169 // Tests that closing the menu widget cleans up the menu runner state properly. |
170 TEST_F(TouchSelectionMenuRunnerViewsTest, ClosingWidgetClosesProperly) { | 170 TEST_F(TouchSelectionMenuRunnerViewsTest, ClosingWidgetClosesProperly) { |
171 // See comment in SetUp(). | 171 // See comment in SetUp(). |
172 if (IsAuraMusClient()) | 172 if (IsMus()) |
173 return; | 173 return; |
174 | 174 |
175 gfx::Rect menu_anchor(0, 0, 10, 10); | 175 gfx::Rect menu_anchor(0, 0, 10, 10); |
176 gfx::Size handle_size(10, 10); | 176 gfx::Size handle_size(10, 10); |
177 TouchSelectionMenuRunnerViews::TestApi test_api( | 177 TouchSelectionMenuRunnerViews::TestApi test_api( |
178 static_cast<TouchSelectionMenuRunnerViews*>( | 178 static_cast<TouchSelectionMenuRunnerViews*>( |
179 ui::TouchSelectionMenuRunner::GetInstance())); | 179 ui::TouchSelectionMenuRunner::GetInstance())); |
180 | 180 |
181 // Initially, no menu should be running. | 181 // Initially, no menu should be running. |
182 EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); | 182 EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); |
183 | 183 |
184 // Run menu. Since commands are available, this should bring up menus. | 184 // Run menu. Since commands are available, this should bring up menus. |
185 ui::TouchSelectionMenuRunner::GetInstance()->OpenMenu( | 185 ui::TouchSelectionMenuRunner::GetInstance()->OpenMenu( |
186 this, menu_anchor, handle_size, GetContext()); | 186 this, menu_anchor, handle_size, GetContext()); |
187 EXPECT_TRUE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); | 187 EXPECT_TRUE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); |
188 | 188 |
189 // Close the menu widget and check that menu runner correctly knows that menu | 189 // Close the menu widget and check that menu runner correctly knows that menu |
190 // is not running anymore. | 190 // is not running anymore. |
191 Widget* widget = test_api.GetWidget(); | 191 Widget* widget = test_api.GetWidget(); |
192 DCHECK(widget); | 192 DCHECK(widget); |
193 widget->Close(); | 193 widget->Close(); |
194 RunPendingMessages(); | 194 RunPendingMessages(); |
195 EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); | 195 EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); |
196 } | 196 } |
197 | 197 |
198 } // namespace views | 198 } // namespace views |
OLD | NEW |