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 adb1a6d3d5fcf475fde5ee011bbbfcceba0b72c6..3e4ff0c5a572ed9a4e63226e7b8fc6a5d44f2610 100644 |
--- a/ui/views/controls/button/menu_button_unittest.cc |
+++ b/ui/views/controls/button/menu_button_unittest.cc |
@@ -340,6 +340,39 @@ TEST_F(MenuButtonTest, ActivateDropDownOnMouseClick) { |
EXPECT_EQ(Button::STATE_HOVERED, menu_button_listener.last_source_state()); |
} |
+// Tests that the ink drop center point is set from the mouse click point. |
+TEST_F(MenuButtonTest, InkDropCenterSetFromClick) { |
+ TestMenuButtonListener menu_button_listener; |
+ CreateMenuButtonWithMenuButtonListener(&menu_button_listener); |
+ |
+ auto click_point = gfx::Point(6, 8); |
+ generator()->MoveMouseTo(click_point); |
+ generator()->ClickLeftButton(); |
+ |
+ EXPECT_EQ(button(), menu_button_listener.last_source()); |
+ EXPECT_EQ( |
+ click_point, |
+ InkDropHostViewTestApi(button()).GetInkDropCenterBasedOnLastEvent()); |
+} |
+ |
+// Tests that the ink drop center point is set from the PressedLock constructor. |
+TEST_F(MenuButtonTest, InkDropCenterSetFromClickWithPressedLock) { |
+ TestMenuButtonListener menu_button_listener; |
+ CreateMenuButtonWithMenuButtonListener(&menu_button_listener); |
+ |
+ auto click_point = gfx::Point(11, 7); |
+ auto click_event = |
+ ui::MouseEvent(ui::EventType::ET_MOUSE_PRESSED, click_point, click_point, |
+ base::TimeTicks(), 0, 0); |
+ std::unique_ptr<MenuButton::PressedLock> pressed_lock( |
+ new MenuButton::PressedLock(button(), false, &click_event)); |
+ |
+ EXPECT_EQ(Button::STATE_PRESSED, button()->state()); |
+ EXPECT_EQ( |
+ click_point, |
+ InkDropHostViewTestApi(button()).GetInkDropCenterBasedOnLastEvent()); |
+} |
+ |
// Test that the MenuButton stays pressed while there are any PressedLocks. |
TEST_F(MenuButtonTest, ButtonStateForMenuButtonsWithPressedLocks) { |
// Similarly for aura-mus-client the location of the cursor is not updated by |