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

Side by Side Diff: chrome/browser/ui/views/toolbar/button_dropdown_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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "base/message_loop/message_loop.h"
6 #include "base/strings/utf_string_conversions.h"
7 #include "chrome/browser/ui/views/toolbar/button_dropdown.h"
8 #include "chrome/test/base/interactive_test_utils.h"
9 #include "chrome/test/base/ui_test_utils.h"
10 #include "chrome/test/base/view_event_test_base.h"
11 #include "ui/base/models/simple_menu_model.h"
12 #include "ui/base/test/ui_controls.h"
13
14 class ButtonDropDownDragTest : public ViewEventTestBase,
15 ui::SimpleMenuModel::Delegate {
16 public:
17 ButtonDropDownDragTest()
18 : button_(NULL),
19 menu_shown_(false),
20 menu_closed_(false) {
21 }
22
23 virtual ~ButtonDropDownDragTest() {
24 }
25
26 // ViewEventTestBase implementation.
27 virtual void SetUp() OVERRIDE {
28 button_ = new ButtonDropDown(NULL, new ui::SimpleMenuModel(this));
29
30 ViewEventTestBase::SetUp();
31 }
32
33 virtual void TearDown() OVERRIDE {
34 ViewEventTestBase::TearDown();
35 }
36
37 virtual views::View* CreateContentsView() OVERRIDE {
38 return button_;
39 }
40
41 virtual gfx::Size GetPreferredSize() OVERRIDE {
42 return button_->GetPreferredSize();
43 }
44
45 // ui::SimpleMenuModel::Delegate implementation.
46 virtual bool IsCommandIdChecked(int id) const OVERRIDE {
47 return false;
48 }
49
50 virtual bool IsCommandIdEnabled(int id) const OVERRIDE {
51 return true;
52 }
53
54 virtual bool GetAcceleratorForCommandId(
55 int id,
56 ui::Accelerator* accelerator) OVERRIDE {
57 return false;
58 }
59
60 virtual void ExecuteCommand(int id, int event_flags) OVERRIDE {
61 }
62
63 virtual void MenuWillShow(ui::SimpleMenuModel* /*source*/) OVERRIDE {
64 menu_shown_ = true;
65 }
66
67 virtual void MenuClosed(ui::SimpleMenuModel* /*source*/) OVERRIDE {
68 menu_closed_ = true;
69 }
70
71 // ViewEventTestBase implementation.
72 virtual void DoTestOnMessageLoop() OVERRIDE {
73 // Click on the ButtonDropDown.
74 ui_test_utils::MoveMouseToCenterAndPress(
75 button_,
76 ui_controls::LEFT,
77 ui_controls::DOWN,
78 CreateEventTask(this, &ButtonDropDownDragTest::Step1));
79 }
80
81 void Step1() {
82 // Drag to invoke the menu.
83 gfx::Point 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
86 // threshold.
87 ui_controls::SendMouseMoveNotifyWhenDone(
88 view_center.x(), view_center.y() + 50,
89 CreateEventTask(this, &ButtonDropDownDragTest::Step2));
90 }
91
92 void Step2() {
93 ASSERT_TRUE(menu_shown_);
94
95 // Release.
96 ui_controls::SendMouseEventsNotifyWhenDone(
97 ui_controls::LEFT,
98 ui_controls::UP,
99 CreateEventTask(this, &ButtonDropDownDragTest::Step3));
100 }
101
102 void Step3() {
103 // Click mouse to dismiss menu. The views menu does not dismiss the
104 // menu on click-drag-release unless an item is selected.
105 ui_test_utils::MoveMouseToCenterAndPress(
106 button_,
107 ui_controls::LEFT,
108 ui_controls::DOWN | ui_controls::UP,
109 CreateEventTask(this, &ButtonDropDownDragTest::Step4));
110 }
111
112 void Step4() {
113 // One more hop is required because ui::SimpleMenuModel calls
114 // ui::SimpleMenuModel::Delegate::MenuClosed() via a posted
115 // task.
116 base::MessageLoopForUI::current()->PostTask(
117 FROM_HERE, CreateEventTask(this, &ButtonDropDownDragTest::Step5));
118 }
119
120 void Step5() {
121 ASSERT_TRUE(menu_closed_);
122 Done();
123 }
124
125 private:
126 ButtonDropDown* button_;
127 bool menu_shown_;
128 bool menu_closed_;
129 };
130
131 VIEW_TEST(ButtonDropDownDragTest, DragActivation)
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/toolbar/button_dropdown.cc ('k') | chrome/browser/ui/views/toolbar/home_button.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698