OLD | NEW |
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 Loading... |
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) |
OLD | NEW |