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/callback.h" | 5 #include "base/callback.h" |
6 #include "base/strings/utf_string_conversions.h" | 6 #include "base/strings/utf_string_conversions.h" |
7 #include "chrome/test/base/interactive_test_utils.h" | 7 #include "chrome/test/base/interactive_test_utils.h" |
8 #include "chrome/test/base/ui_test_utils.h" | 8 #include "chrome/test/base/ui_test_utils.h" |
9 #include "chrome/test/base/view_event_test_base.h" | 9 #include "chrome/test/base/view_event_test_base.h" |
10 #include "ui/base/models/menu_model.h" | 10 #include "ui/base/models/menu_model.h" |
11 #include "ui/base/test/ui_controls.h" | 11 #include "ui/base/test/ui_controls.h" |
12 #include "ui/views/controls/button/menu_button.h" | 12 #include "ui/views/controls/button/menu_button.h" |
13 #include "ui/views/controls/button/menu_button_listener.h" | 13 #include "ui/views/controls/button/menu_button_listener.h" |
14 #include "ui/views/controls/menu/menu_controller.h" | 14 #include "ui/views/controls/menu/menu_controller.h" |
15 #include "ui/views/controls/menu/menu_item_view.h" | 15 #include "ui/views/controls/menu/menu_item_view.h" |
16 #include "ui/views/controls/menu/menu_model_adapter.h" | 16 #include "ui/views/controls/menu/menu_model_adapter.h" |
17 #include "ui/views/controls/menu/menu_runner.h" | 17 #include "ui/views/controls/menu/menu_runner.h" |
18 #include "ui/views/controls/menu/submenu_view.h" | 18 #include "ui/views/controls/menu/submenu_view.h" |
19 #include "ui/views/test/test_views_delegate.h" | |
20 #include "ui/views/widget/root_view.h" | 19 #include "ui/views/widget/root_view.h" |
21 #include "ui/views/widget/widget.h" | 20 #include "ui/views/widget/widget.h" |
22 | 21 |
23 namespace { | 22 namespace { |
24 | 23 |
25 const int kTopMenuBaseId = 100; | 24 const int kTopMenuBaseId = 100; |
26 const int kSubMenuBaseId = 200; | 25 const int kSubMenuBaseId = 200; |
27 | 26 |
28 // Implement most of the ui::MenuModel pure virtual methods for subclasses | 27 // Implement most of the ui::MenuModel pure virtual methods for subclasses |
29 // | 28 // |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 } // namespace | 187 } // namespace |
189 | 188 |
190 class MenuModelAdapterTest : public ViewEventTestBase, | 189 class MenuModelAdapterTest : public ViewEventTestBase, |
191 public views::MenuButtonListener { | 190 public views::MenuButtonListener { |
192 public: | 191 public: |
193 MenuModelAdapterTest() | 192 MenuModelAdapterTest() |
194 : ViewEventTestBase(), | 193 : ViewEventTestBase(), |
195 button_(NULL), | 194 button_(NULL), |
196 menu_model_adapter_(&top_menu_model_), | 195 menu_model_adapter_(&top_menu_model_), |
197 menu_(NULL) { | 196 menu_(NULL) { |
198 old_views_delegate_ = views::ViewsDelegate::views_delegate; | |
199 views::ViewsDelegate::views_delegate = &views_delegate_; | |
200 } | 197 } |
201 | 198 |
202 virtual ~MenuModelAdapterTest() { | 199 virtual ~MenuModelAdapterTest() { |
203 views::ViewsDelegate::views_delegate = old_views_delegate_; | |
204 } | 200 } |
205 | 201 |
206 // ViewEventTestBase implementation. | 202 // ViewEventTestBase implementation. |
207 | 203 |
208 virtual void SetUp() OVERRIDE { | 204 virtual void SetUp() OVERRIDE { |
209 button_ = new views::MenuButton( | 205 button_ = new views::MenuButton( |
210 NULL, base::ASCIIToUTF16("Menu Adapter Test"), this, true); | 206 NULL, base::ASCIIToUTF16("Menu Adapter Test"), this, true); |
211 | 207 |
212 menu_ = menu_model_adapter_.CreateMenu(); | 208 menu_ = menu_model_adapter_.CreateMenu(); |
213 menu_runner_.reset(new views::MenuRunner(menu_)); | 209 menu_runner_.reset(new views::MenuRunner(menu_)); |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
299 private: | 295 private: |
300 // Generate a mouse click on the specified view and post a new task. | 296 // Generate a mouse click on the specified view and post a new task. |
301 virtual void Click(views::View* view, const base::Closure& next) { | 297 virtual void Click(views::View* view, const base::Closure& next) { |
302 ui_test_utils::MoveMouseToCenterAndPress( | 298 ui_test_utils::MoveMouseToCenterAndPress( |
303 view, | 299 view, |
304 ui_controls::LEFT, | 300 ui_controls::LEFT, |
305 ui_controls::DOWN | ui_controls::UP, | 301 ui_controls::DOWN | ui_controls::UP, |
306 next); | 302 next); |
307 } | 303 } |
308 | 304 |
309 views::ViewsDelegate* old_views_delegate_; | |
310 views::TestViewsDelegate views_delegate_; | |
311 | |
312 views::MenuButton* button_; | 305 views::MenuButton* button_; |
313 TopMenuModel top_menu_model_; | 306 TopMenuModel top_menu_model_; |
314 views::MenuModelAdapter menu_model_adapter_; | 307 views::MenuModelAdapter menu_model_adapter_; |
315 views::MenuItemView* menu_; | 308 views::MenuItemView* menu_; |
316 scoped_ptr<views::MenuRunner> menu_runner_; | 309 scoped_ptr<views::MenuRunner> menu_runner_; |
317 }; | 310 }; |
318 | 311 |
319 VIEW_TEST(MenuModelAdapterTest, RebuildMenu) | 312 VIEW_TEST(MenuModelAdapterTest, RebuildMenu) |
OLD | NEW |