| 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 "ui/views/controls/button/custom_button.h" | 5 #include "ui/views/controls/button/custom_button.h" |
| 6 | 6 |
| 7 #include "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
| 9 #include "build/build_config.h" | 9 #include "build/build_config.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 246 // The button should no longer notify on mouse release. | 246 // The button should no longer notify on mouse release. |
| 247 button()->Reset(); | 247 button()->Reset(); |
| 248 button()->OnMouseReleased(ui::MouseEvent( | 248 button()->OnMouseReleased(ui::MouseEvent( |
| 249 ui::ET_MOUSE_RELEASED, center, center, ui::EventTimeForNow(), | 249 ui::ET_MOUSE_RELEASED, center, center, ui::EventTimeForNow(), |
| 250 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); | 250 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); |
| 251 EXPECT_EQ(CustomButton::STATE_HOVERED, button()->state()); | 251 EXPECT_EQ(CustomButton::STATE_HOVERED, button()->state()); |
| 252 EXPECT_FALSE(button()->pressed()); | 252 EXPECT_FALSE(button()->pressed()); |
| 253 } | 253 } |
| 254 | 254 |
| 255 // Tests that OnClickCanceled gets called when NotifyClick is not expected | 255 // Tests that OnClickCanceled gets called when NotifyClick is not expected |
| 256 // anymore. | 256 // anymore (e.g., release happens outside of the button). |
| 257 TEST_F(CustomButtonTest, NotifyActionNoClick) { | 257 TEST_F(CustomButtonTest, NotifyActionNoClick) { |
| 258 gfx::Point center(10, 10); | 258 gfx::Point center(10, 10); |
| 259 gfx::Point outside(10 + button()->width(), 10); |
| 259 | 260 |
| 260 // By default the button should notify its listener on mouse release. | 261 // By default the button should notify its listener on mouse release. |
| 261 button()->OnMousePressed(ui::MouseEvent( | 262 button()->OnMousePressed(ui::MouseEvent( |
| 262 ui::ET_MOUSE_PRESSED, center, center, ui::EventTimeForNow(), | 263 ui::ET_MOUSE_PRESSED, center, center, ui::EventTimeForNow(), |
| 263 ui::EF_RIGHT_MOUSE_BUTTON, ui::EF_RIGHT_MOUSE_BUTTON)); | 264 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); |
| 264 EXPECT_FALSE(button()->canceled()); | 265 EXPECT_FALSE(button()->canceled()); |
| 265 | 266 |
| 266 button()->OnMouseReleased(ui::MouseEvent( | 267 button()->OnMouseReleased(ui::MouseEvent( |
| 267 ui::ET_MOUSE_RELEASED, center, center, ui::EventTimeForNow(), | 268 ui::ET_MOUSE_RELEASED, outside, outside, ui::EventTimeForNow(), |
| 268 ui::EF_RIGHT_MOUSE_BUTTON, ui::EF_RIGHT_MOUSE_BUTTON)); | 269 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); |
| 269 EXPECT_TRUE(button()->canceled()); | 270 EXPECT_TRUE(button()->canceled()); |
| 270 | 271 |
| 271 // Set the notify action to its listener on mouse press. | 272 // Set the notify action to its listener on mouse press. |
| 272 button()->Reset(); | 273 button()->Reset(); |
| 273 button()->set_notify_action(CustomButton::NOTIFY_ON_PRESS); | 274 button()->set_notify_action(CustomButton::NOTIFY_ON_PRESS); |
| 274 button()->OnMousePressed(ui::MouseEvent( | 275 button()->OnMousePressed(ui::MouseEvent( |
| 275 ui::ET_MOUSE_PRESSED, center, center, ui::EventTimeForNow(), | 276 ui::ET_MOUSE_PRESSED, center, center, ui::EventTimeForNow(), |
| 276 ui::EF_RIGHT_MOUSE_BUTTON, ui::EF_RIGHT_MOUSE_BUTTON)); | 277 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); |
| 277 // OnClickCanceled is only sent on mouse release. | 278 // OnClickCanceled is only sent on mouse release. |
| 278 EXPECT_FALSE(button()->canceled()); | 279 EXPECT_FALSE(button()->canceled()); |
| 279 | 280 |
| 280 // The button should no longer notify on mouse release. | 281 // The button should no longer notify on mouse release. |
| 281 button()->Reset(); | 282 button()->Reset(); |
| 282 button()->OnMouseReleased(ui::MouseEvent( | 283 button()->OnMouseReleased(ui::MouseEvent( |
| 283 ui::ET_MOUSE_RELEASED, center, center, ui::EventTimeForNow(), | 284 ui::ET_MOUSE_RELEASED, outside, outside, ui::EventTimeForNow(), |
| 284 ui::EF_RIGHT_MOUSE_BUTTON, ui::EF_RIGHT_MOUSE_BUTTON)); | 285 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); |
| 285 EXPECT_FALSE(button()->canceled()); | 286 EXPECT_FALSE(button()->canceled()); |
| 286 } | 287 } |
| 287 | 288 |
| 288 // No touch on desktop Mac. Tracked in http://crbug.com/445520. | 289 // No touch on desktop Mac. Tracked in http://crbug.com/445520. |
| 289 #if !defined(OS_MACOSX) || defined(USE_AURA) | 290 #if !defined(OS_MACOSX) || defined(USE_AURA) |
| 290 | 291 |
| 291 namespace { | 292 namespace { |
| 292 | 293 |
| 293 void PerformGesture(CustomButton* button, ui::EventType event_type) { | 294 void PerformGesture(CustomButton* button, ui::EventType event_type) { |
| 294 ui::GestureEventDetails gesture_details(event_type); | 295 ui::GestureEventDetails gesture_details(event_type); |
| (...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 585 EXPECT_EQ(CustomButton::STATE_PRESSED, button()->state()); | 586 EXPECT_EQ(CustomButton::STATE_PRESSED, button()->state()); |
| 586 EXPECT_FALSE(button()->pressed()); | 587 EXPECT_FALSE(button()->pressed()); |
| 587 | 588 |
| 588 ui::KeyEvent space_release(ui::ET_KEY_RELEASED, ui::VKEY_SPACE, ui::EF_NONE); | 589 ui::KeyEvent space_release(ui::ET_KEY_RELEASED, ui::VKEY_SPACE, ui::EF_NONE); |
| 589 SimulateKeyEvent(&space_release); | 590 SimulateKeyEvent(&space_release); |
| 590 EXPECT_EQ(CustomButton::STATE_NORMAL, button()->state()); | 591 EXPECT_EQ(CustomButton::STATE_NORMAL, button()->state()); |
| 591 EXPECT_TRUE(button()->pressed()); | 592 EXPECT_TRUE(button()->pressed()); |
| 592 } | 593 } |
| 593 | 594 |
| 594 } // namespace views | 595 } // namespace views |
| OLD | NEW |