Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(233)

Side by Side Diff: chrome/browser/ui/views/toolbar/toolbar_button_test.cc

Issue 62873007: [Toolbar] Base toolbar button class with background images for button states (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: overriding Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "base/message_loop/message_loop.h" 5 #include "base/message_loop/message_loop.h"
6 #include "base/strings/utf_string_conversions.h" 6 #include "base/strings/utf_string_conversions.h"
7 #include "chrome/browser/ui/views/toolbar/button_dropdown.h" 7 #include "chrome/browser/ui/views/toolbar/toolbar_button.h"
8 #include "chrome/test/base/interactive_test_utils.h" 8 #include "chrome/test/base/interactive_test_utils.h"
9 #include "chrome/test/base/ui_test_utils.h" 9 #include "chrome/test/base/ui_test_utils.h"
10 #include "chrome/test/base/view_event_test_base.h" 10 #include "chrome/test/base/view_event_test_base.h"
11 #include "ui/base/models/simple_menu_model.h" 11 #include "ui/base/models/simple_menu_model.h"
12 #include "ui/base/test/ui_controls.h" 12 #include "ui/base/test/ui_controls.h"
13 13
14 class ButtonDropDownDragTest : public ViewEventTestBase, 14 class ToolbarButtonDragTest : public ViewEventTestBase,
15 ui::SimpleMenuModel::Delegate { 15 ui::SimpleMenuModel::Delegate {
16 public: 16 public:
17 ButtonDropDownDragTest() 17 ToolbarButtonDragTest()
18 : button_(NULL), 18 : button_(NULL),
19 menu_shown_(false), 19 menu_shown_(false),
20 menu_closed_(false) { 20 menu_closed_(false) {
21 } 21 }
22 22
23 virtual ~ButtonDropDownDragTest() { 23 virtual ~ToolbarButtonDragTest() {
24 } 24 }
25 25
26 // ViewEventTestBase implementation. 26 // ViewEventTestBase implementation.
27 virtual void SetUp() OVERRIDE { 27 virtual void SetUp() OVERRIDE {
28 button_ = new ButtonDropDown(NULL, new ui::SimpleMenuModel(this)); 28 button_ = new ToolbarButton(NULL, new ui::SimpleMenuModel(this));
29 29
30 ViewEventTestBase::SetUp(); 30 ViewEventTestBase::SetUp();
31 } 31 }
32 32
33 virtual void TearDown() OVERRIDE { 33 virtual void TearDown() OVERRIDE {
34 ViewEventTestBase::TearDown(); 34 ViewEventTestBase::TearDown();
35 } 35 }
36 36
37 virtual views::View* CreateContentsView() OVERRIDE { 37 virtual views::View* CreateContentsView() OVERRIDE {
38 return button_; 38 return button_;
(...skipping 24 matching lines...) Expand all
63 virtual void MenuWillShow(ui::SimpleMenuModel* /*source*/) OVERRIDE { 63 virtual void MenuWillShow(ui::SimpleMenuModel* /*source*/) OVERRIDE {
64 menu_shown_ = true; 64 menu_shown_ = true;
65 } 65 }
66 66
67 virtual void MenuClosed(ui::SimpleMenuModel* /*source*/) OVERRIDE { 67 virtual void MenuClosed(ui::SimpleMenuModel* /*source*/) OVERRIDE {
68 menu_closed_ = true; 68 menu_closed_ = true;
69 } 69 }
70 70
71 // ViewEventTestBase implementation. 71 // ViewEventTestBase implementation.
72 virtual void DoTestOnMessageLoop() OVERRIDE { 72 virtual void DoTestOnMessageLoop() OVERRIDE {
73 // Click on the ButtonDropDown. 73 // Click on the ToolbarButton.
74 ui_test_utils::MoveMouseToCenterAndPress( 74 ui_test_utils::MoveMouseToCenterAndPress(
75 button_, 75 button_,
76 ui_controls::LEFT, 76 ui_controls::LEFT,
77 ui_controls::DOWN, 77 ui_controls::DOWN,
78 CreateEventTask(this, &ButtonDropDownDragTest::Step1)); 78 CreateEventTask(this, &ToolbarButtonDragTest::Step1));
79 } 79 }
80 80
81 void Step1() { 81 void Step1() {
82 // Drag to invoke the menu. 82 // Drag to invoke the menu.
83 gfx::Point view_center; 83 gfx::Point view_center;
84 views::View::ConvertPointToScreen(button_, &view_center); 84 views::View::ConvertPointToScreen(button_, &view_center);
85 // The 50 is a bit arbitrary. We just need a value greater than the drag 85 // The 50 is a bit arbitrary. We just need a value greater than the drag
86 // threshold. 86 // threshold.
87 ui_controls::SendMouseMoveNotifyWhenDone( 87 ui_controls::SendMouseMoveNotifyWhenDone(
88 view_center.x(), view_center.y() + 50, 88 view_center.x(), view_center.y() + 50,
89 CreateEventTask(this, &ButtonDropDownDragTest::Step2)); 89 CreateEventTask(this, &ToolbarButtonDragTest::Step2));
90 } 90 }
91 91
92 void Step2() { 92 void Step2() {
93 ASSERT_TRUE(menu_shown_); 93 ASSERT_TRUE(menu_shown_);
94 94
95 // Release. 95 // Release.
96 ui_controls::SendMouseEventsNotifyWhenDone( 96 ui_controls::SendMouseEventsNotifyWhenDone(
97 ui_controls::LEFT, 97 ui_controls::LEFT,
98 ui_controls::UP, 98 ui_controls::UP,
99 CreateEventTask(this, &ButtonDropDownDragTest::Step3)); 99 CreateEventTask(this, &ToolbarButtonDragTest::Step3));
100 } 100 }
101 101
102 void Step3() { 102 void Step3() {
103 // Click mouse to dismiss menu. The views menu does not dismiss the 103 // Click mouse to dismiss menu. The views menu does not dismiss the
104 // menu on click-drag-release unless an item is selected. 104 // menu on click-drag-release unless an item is selected.
105 ui_test_utils::MoveMouseToCenterAndPress( 105 ui_test_utils::MoveMouseToCenterAndPress(
106 button_, 106 button_,
107 ui_controls::LEFT, 107 ui_controls::LEFT,
108 ui_controls::DOWN | ui_controls::UP, 108 ui_controls::DOWN | ui_controls::UP,
109 CreateEventTask(this, &ButtonDropDownDragTest::Step4)); 109 CreateEventTask(this, &ToolbarButtonDragTest::Step4));
110 } 110 }
111 111
112 void Step4() { 112 void Step4() {
113 // One more hop is required because ui::SimpleMenuModel calls 113 // One more hop is required because ui::SimpleMenuModel calls
114 // ui::SimpleMenuModel::Delegate::MenuClosed() via a posted 114 // ui::SimpleMenuModel::Delegate::MenuClosed() via a posted
115 // task. 115 // task.
116 base::MessageLoopForUI::current()->PostTask( 116 base::MessageLoopForUI::current()->PostTask(
117 FROM_HERE, CreateEventTask(this, &ButtonDropDownDragTest::Step5)); 117 FROM_HERE, CreateEventTask(this, &ToolbarButtonDragTest::Step5));
118 } 118 }
119 119
120 void Step5() { 120 void Step5() {
121 ASSERT_TRUE(menu_closed_); 121 ASSERT_TRUE(menu_closed_);
122 Done(); 122 Done();
123 } 123 }
124 124
125 private: 125 private:
126 ButtonDropDown* button_; 126 ToolbarButton* button_;
127 bool menu_shown_; 127 bool menu_shown_;
128 bool menu_closed_; 128 bool menu_closed_;
129 }; 129 };
130 130
131 VIEW_TEST(ButtonDropDownDragTest, DragActivation) 131 VIEW_TEST(ToolbarButtonDragTest, DragActivation)
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/toolbar/toolbar_button.cc ('k') | chrome/browser/ui/views/toolbar/toolbar_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698