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

Side by Side Diff: ui/views/controls/button/custom_button_unittest.cc

Issue 1260453006: ui: events: Add a class to hold common touch and stylus properties (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address build problems, add accessor and unit tests. Created 5 years, 4 months 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
OLDNEW
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 "ui/views/controls/button/custom_button.h" 5 #include "ui/views/controls/button/custom_button.h"
6 6
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 #include "ui/base/layout.h" 8 #include "ui/base/layout.h"
9 #include "ui/events/event_utils.h" 9 #include "ui/events/event_utils.h"
10 #include "ui/gfx/screen.h" 10 #include "ui/gfx/screen.h"
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 DISALLOW_COPY_AND_ASSIGN(CustomButtonTest); 92 DISALLOW_COPY_AND_ASSIGN(CustomButtonTest);
93 }; 93 };
94 94
95 } // namespace 95 } // namespace
96 96
97 // Tests that hover state changes correctly when visiblity/enableness changes. 97 // Tests that hover state changes correctly when visiblity/enableness changes.
98 TEST_F(CustomButtonTest, HoverStateOnVisibilityChange) { 98 TEST_F(CustomButtonTest, HoverStateOnVisibilityChange) {
99 gfx::Point center(10, 10); 99 gfx::Point center(10, 10);
100 button()->OnMousePressed(ui::MouseEvent( 100 button()->OnMousePressed(ui::MouseEvent(
101 ui::ET_MOUSE_PRESSED, center, center, ui::EventTimeForNow(), 101 ui::ET_MOUSE_PRESSED, center, center, ui::EventTimeForNow(),
102 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); 102 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON,
103 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)));
103 EXPECT_EQ(CustomButton::STATE_PRESSED, button()->state()); 104 EXPECT_EQ(CustomButton::STATE_PRESSED, button()->state());
104 105
105 button()->OnMouseReleased(ui::MouseEvent( 106 button()->OnMouseReleased(ui::MouseEvent(
106 ui::ET_MOUSE_RELEASED, center, center, ui::EventTimeForNow(), 107 ui::ET_MOUSE_RELEASED, center, center, ui::EventTimeForNow(),
107 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); 108 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON,
109 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)));
108 EXPECT_EQ(CustomButton::STATE_HOVERED, button()->state()); 110 EXPECT_EQ(CustomButton::STATE_HOVERED, button()->state());
109 111
110 button()->SetEnabled(false); 112 button()->SetEnabled(false);
111 EXPECT_EQ(CustomButton::STATE_DISABLED, button()->state()); 113 EXPECT_EQ(CustomButton::STATE_DISABLED, button()->state());
112 114
113 button()->SetEnabled(true); 115 button()->SetEnabled(true);
114 EXPECT_EQ(CustomButton::STATE_HOVERED, button()->state()); 116 EXPECT_EQ(CustomButton::STATE_HOVERED, button()->state());
115 117
116 button()->SetVisible(false); 118 button()->SetVisible(false);
117 EXPECT_EQ(CustomButton::STATE_NORMAL, button()->state()); 119 EXPECT_EQ(CustomButton::STATE_NORMAL, button()->state());
(...skipping 25 matching lines...) Expand all
143 #endif // !defined(OS_MACOSX) || defined(USE_AURA) 145 #endif // !defined(OS_MACOSX) || defined(USE_AURA)
144 } 146 }
145 147
146 // Tests the different types of NotifyActions. 148 // Tests the different types of NotifyActions.
147 TEST_F(CustomButtonTest, NotifyAction) { 149 TEST_F(CustomButtonTest, NotifyAction) {
148 gfx::Point center(10, 10); 150 gfx::Point center(10, 10);
149 151
150 // By default the button should notify its listener on mouse release. 152 // By default the button should notify its listener on mouse release.
151 button()->OnMousePressed(ui::MouseEvent( 153 button()->OnMousePressed(ui::MouseEvent(
152 ui::ET_MOUSE_PRESSED, center, center, ui::EventTimeForNow(), 154 ui::ET_MOUSE_PRESSED, center, center, ui::EventTimeForNow(),
153 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); 155 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON,
156 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)));
154 EXPECT_EQ(CustomButton::STATE_PRESSED, button()->state()); 157 EXPECT_EQ(CustomButton::STATE_PRESSED, button()->state());
155 EXPECT_FALSE(button()->notified()); 158 EXPECT_FALSE(button()->notified());
156 159
157 button()->OnMouseReleased(ui::MouseEvent( 160 button()->OnMouseReleased(ui::MouseEvent(
158 ui::ET_MOUSE_RELEASED, center, center, ui::EventTimeForNow(), 161 ui::ET_MOUSE_RELEASED, center, center, ui::EventTimeForNow(),
159 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); 162 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON,
163 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)));
160 EXPECT_EQ(CustomButton::STATE_HOVERED, button()->state()); 164 EXPECT_EQ(CustomButton::STATE_HOVERED, button()->state());
161 EXPECT_TRUE(button()->notified()); 165 EXPECT_TRUE(button()->notified());
162 166
163 // Set the notify action to its listener on mouse press. 167 // Set the notify action to its listener on mouse press.
164 button()->Reset(); 168 button()->Reset();
165 button()->set_notify_action(CustomButton::NOTIFY_ON_PRESS); 169 button()->set_notify_action(CustomButton::NOTIFY_ON_PRESS);
166 button()->OnMousePressed(ui::MouseEvent( 170 button()->OnMousePressed(ui::MouseEvent(
167 ui::ET_MOUSE_PRESSED, center, center, ui::EventTimeForNow(), 171 ui::ET_MOUSE_PRESSED, center, center, ui::EventTimeForNow(),
168 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); 172 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON,
173 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)));
169 EXPECT_EQ(CustomButton::STATE_PRESSED, button()->state()); 174 EXPECT_EQ(CustomButton::STATE_PRESSED, button()->state());
170 EXPECT_TRUE(button()->notified()); 175 EXPECT_TRUE(button()->notified());
171 176
172 // The button should no longer notify on mouse release. 177 // The button should no longer notify on mouse release.
173 button()->Reset(); 178 button()->Reset();
174 button()->OnMouseReleased(ui::MouseEvent( 179 button()->OnMouseReleased(ui::MouseEvent(
175 ui::ET_MOUSE_RELEASED, center, center, ui::EventTimeForNow(), 180 ui::ET_MOUSE_RELEASED, center, center, ui::EventTimeForNow(),
176 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); 181 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON,
182 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)));
177 EXPECT_EQ(CustomButton::STATE_HOVERED, button()->state()); 183 EXPECT_EQ(CustomButton::STATE_HOVERED, button()->state());
178 EXPECT_FALSE(button()->notified()); 184 EXPECT_FALSE(button()->notified());
179 } 185 }
180 186
181 // No touch on desktop Mac. Tracked in http://crbug.com/445520. 187 // No touch on desktop Mac. Tracked in http://crbug.com/445520.
182 #if !defined(OS_MACOSX) || defined(USE_AURA) 188 #if !defined(OS_MACOSX) || defined(USE_AURA)
183 189
184 namespace { 190 namespace {
185 191
186 void PerformGesture(CustomButton* button, ui::EventType event_type) { 192 void PerformGesture(CustomButton* button, ui::EventType event_type) {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 EXPECT_FALSE(CustomButton::AsCustomButton(&label)); 240 EXPECT_FALSE(CustomButton::AsCustomButton(&label));
235 241
236 Link link(text); 242 Link link(text);
237 EXPECT_FALSE(CustomButton::AsCustomButton(&link)); 243 EXPECT_FALSE(CustomButton::AsCustomButton(&link));
238 244
239 Textfield textfield; 245 Textfield textfield;
240 EXPECT_FALSE(CustomButton::AsCustomButton(&textfield)); 246 EXPECT_FALSE(CustomButton::AsCustomButton(&textfield));
241 } 247 }
242 248
243 } // namespace views 249 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698