| 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 |