| Index: ui/views/controls/button/menu_button_unittest.cc
|
| diff --git a/ui/views/controls/button/menu_button_unittest.cc b/ui/views/controls/button/menu_button_unittest.cc
|
| index b75a55a75fd21a9cf98b33a66c8adb8c47a2d24f..355d1d0a67b53589f6f9b21bd02c886e08528eeb 100644
|
| --- a/ui/views/controls/button/menu_button_unittest.cc
|
| +++ b/ui/views/controls/button/menu_button_unittest.cc
|
| @@ -4,9 +4,11 @@
|
|
|
| #include "ui/views/controls/button/menu_button.h"
|
|
|
| +#include "base/command_line.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "ui/base/dragdrop/drag_drop_types.h"
|
| +#include "ui/base/ui_base_switches.h"
|
| #include "ui/events/test/event_generator.h"
|
| #include "ui/views/controls/button/menu_button_listener.h"
|
| #include "ui/views/drag_controller.h"
|
| @@ -27,6 +29,12 @@ class MenuButtonTest : public ViewsTestBase {
|
| MenuButtonTest() : widget_(nullptr), button_(nullptr) {}
|
| virtual ~MenuButtonTest() {}
|
|
|
| + void SetUp() override {
|
| + CommandLine::ForCurrentProcess()->AppendSwitch(
|
| + switches::kEnableTouchFeedback);
|
| + ViewsTestBase::SetUp();
|
| + }
|
| +
|
| void TearDown() override {
|
| if (widget_ && !widget_->IsClosed())
|
| widget_->Close();
|
| @@ -390,4 +398,34 @@ TEST_F(MenuButtonTest, DraggableMenuButtonDoesNotActivateOnDrag) {
|
| }
|
| #endif
|
|
|
| +// Tests that the button enters a hovered state upon a tap down, before becoming
|
| +// pressed at activation.
|
| +TEST_F(MenuButtonTest, TouchFeedbackDuringTap) {
|
| + TestMenuButtonListener menu_button_listener;
|
| + CreateMenuButtonWithMenuButtonListener(&menu_button_listener);
|
| + ui::test::EventGenerator generator(GetContext(), widget()->GetNativeWindow());
|
| + generator.set_current_location(gfx::Point(10, 10));
|
| + generator.PressTouch();
|
| + EXPECT_EQ(Button::STATE_HOVERED, button()->state());
|
| +
|
| + generator.ReleaseTouch();
|
| + EXPECT_EQ(Button::STATE_PRESSED, menu_button_listener.last_source_state());
|
| +}
|
| +
|
| +// Tests that a move event that exits the button returns it to the normal state,
|
| +// and that the button did not activate the listener.
|
| +TEST_F(MenuButtonTest, TouchFeedbackDuringTapCancel) {
|
| + TestMenuButtonListener menu_button_listener;
|
| + CreateMenuButtonWithMenuButtonListener(&menu_button_listener);
|
| + ui::test::EventGenerator generator(GetContext(), widget()->GetNativeWindow());
|
| + generator.set_current_location(gfx::Point(10, 10));
|
| + generator.PressTouch();
|
| + EXPECT_EQ(Button::STATE_HOVERED, button()->state());
|
| +
|
| + generator.MoveTouch(gfx::Point(10, 30));
|
| + generator.ReleaseTouch();
|
| + EXPECT_EQ(Button::STATE_NORMAL, button()->state());
|
| + EXPECT_EQ(nullptr, menu_button_listener.last_source());
|
| +}
|
| +
|
| } // namespace views
|
|
|