Index: ui/views/controls/button/custom_button_unittest.cc |
diff --git a/ui/views/controls/button/custom_button_unittest.cc b/ui/views/controls/button/custom_button_unittest.cc |
index 61c2a85627b09ac2f9e773e1909cff4cd4349042..02fbd456692b730137b6a2edf79c1608868baa05 100644 |
--- a/ui/views/controls/button/custom_button_unittest.cc |
+++ b/ui/views/controls/button/custom_button_unittest.cc |
@@ -13,9 +13,9 @@ |
#include "ui/display/screen.h" |
#include "ui/events/event_utils.h" |
#include "ui/events/test/event_generator.h" |
-#include "ui/views/animation/ink_drop_delegate.h" |
#include "ui/views/animation/ink_drop_host.h" |
-#include "ui/views/animation/test/test_ink_drop_delegate.h" |
+#include "ui/views/animation/test/ink_drop_host_view_test_api.h" |
+#include "ui/views/animation/test/test_ink_drop.h" |
#include "ui/views/animation/test/test_ink_drop_host.h" |
#include "ui/views/context_menu_controller.h" |
#include "ui/views/controls/button/checkbox.h" |
@@ -35,7 +35,8 @@ |
namespace views { |
-using test::TestInkDropDelegate; |
+using test::InkDropHostViewTestApi; |
+using test::TestInkDrop; |
namespace { |
@@ -88,57 +89,6 @@ class TestCustomButton : public CustomButton, public ButtonListener { |
DISALLOW_COPY_AND_ASSIGN(TestCustomButton); |
}; |
-// An InkDropDelegate that keeps track of ink drop visibility. |
-class TestInkDropDelegateThatTracksVisibilty : public TestInkDropDelegate { |
- public: |
- TestInkDropDelegateThatTracksVisibilty(bool* ink_shown, bool* ink_hidden) |
- : ink_shown_(ink_shown), ink_hidden_(ink_hidden) {} |
- ~TestInkDropDelegateThatTracksVisibilty() override {} |
- |
- // InkDropDelegate: |
- void OnAction(InkDropState state) override { |
- TestInkDropDelegate::OnAction(state); |
- switch (GetTargetInkDropState()) { |
- case InkDropState::ACTION_PENDING: |
- case InkDropState::ALTERNATE_ACTION_PENDING: |
- case InkDropState::ACTIVATED: |
- *ink_shown_ = true; |
- break; |
- case InkDropState::HIDDEN: |
- *ink_hidden_ = true; |
- break; |
- case InkDropState::ACTION_TRIGGERED: |
- case InkDropState::ALTERNATE_ACTION_TRIGGERED: |
- case InkDropState::DEACTIVATED: |
- break; |
- } |
- } |
- |
- void SnapToActivated() override { *ink_shown_ = true; } |
- |
- void SetHovered(bool is_hovered) override {} |
- InkDrop* GetInkDrop() override { return nullptr; } |
- |
- private: |
- bool* ink_shown_; |
- bool* ink_hidden_; |
- |
- DISALLOW_COPY_AND_ASSIGN(TestInkDropDelegateThatTracksVisibilty); |
-}; |
- |
-// A test Button class that owns a TestInkDropDelegate. |
-class TestButtonWithInkDrop : public TestCustomButton { |
- public: |
- TestButtonWithInkDrop(std::unique_ptr<InkDropDelegate> ink_drop_delegate) |
- : TestCustomButton() { |
- set_ink_drop_delegate(std::move(ink_drop_delegate)); |
- } |
- ~TestButtonWithInkDrop() override {} |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(TestButtonWithInkDrop); |
-}; |
- |
} // namespace |
class CustomButtonTest : public ViewsTestBase { |
@@ -167,10 +117,10 @@ class CustomButtonTest : public ViewsTestBase { |
ViewsTestBase::TearDown(); |
} |
- void CreateButtonWithInkDrop( |
- std::unique_ptr<InkDropDelegate> ink_drop_delegate) { |
+ void CreateButtonWithInkDrop(std::unique_ptr<InkDrop> ink_drop) { |
delete button_; |
- button_ = new TestButtonWithInkDrop(std::move(ink_drop_delegate)); |
+ button_ = new TestCustomButton(); |
+ InkDropHostViewTestApi(button_).SetInkDrop(std::move(ink_drop)); |
widget_->SetContentsView(button_); |
} |
@@ -396,42 +346,36 @@ TEST_F(CustomButtonTest, AsCustomButton) { |
// may enter a different ink drop state. |
TEST_F(CustomButtonTest, ButtonClickTogglesInkDrop) { |
gfx::Point old_cursor = display::Screen::GetScreen()->GetCursorScreenPoint(); |
- bool ink_shown = false; |
- bool ink_hidden = false; |
- CreateButtonWithInkDrop(base::WrapUnique( |
- new TestInkDropDelegateThatTracksVisibilty(&ink_shown, &ink_hidden))); |
+ TestInkDrop* ink_drop = new TestInkDrop(); |
+ CreateButtonWithInkDrop(base::WrapUnique(ink_drop)); |
ui::test::EventGenerator generator(GetContext(), widget()->GetNativeWindow()); |
generator.set_current_location(gfx::Point(50, 50)); |
generator.PressLeftButton(); |
- EXPECT_TRUE(ink_shown); |
- EXPECT_FALSE(ink_hidden); |
+ EXPECT_EQ(InkDropState::ACTION_PENDING, ink_drop->GetTargetInkDropState()); |
generator.ReleaseLeftButton(); |
- EXPECT_FALSE(ink_hidden); |
+ EXPECT_EQ(InkDropState::ACTION_PENDING, ink_drop->GetTargetInkDropState()); |
} |
// Tests that pressing a button shows and releasing capture hides ink drop. |
// Releasing capture should also reset PRESSED button state to NORMAL. |
TEST_F(CustomButtonTest, CaptureLossHidesInkDrop) { |
gfx::Point old_cursor = display::Screen::GetScreen()->GetCursorScreenPoint(); |
- bool ink_shown = false; |
- bool ink_hidden = false; |
- CreateButtonWithInkDrop(base::WrapUnique( |
- new TestInkDropDelegateThatTracksVisibilty(&ink_shown, &ink_hidden))); |
+ TestInkDrop* ink_drop = new TestInkDrop(); |
+ CreateButtonWithInkDrop(base::WrapUnique(ink_drop)); |
ui::test::EventGenerator generator(GetContext(), widget()->GetNativeWindow()); |
generator.set_current_location(gfx::Point(50, 50)); |
generator.PressLeftButton(); |
- EXPECT_TRUE(ink_shown); |
- EXPECT_FALSE(ink_hidden); |
+ EXPECT_EQ(InkDropState::ACTION_PENDING, ink_drop->GetTargetInkDropState()); |
EXPECT_EQ(Button::ButtonState::STATE_PRESSED, button()->state()); |
SetDraggedView(button()); |
widget()->SetCapture(button()); |
widget()->ReleaseCapture(); |
SetDraggedView(nullptr); |
- EXPECT_TRUE(ink_hidden); |
+ EXPECT_EQ(InkDropState::HIDDEN, ink_drop->GetTargetInkDropState()); |
EXPECT_EQ(ui::MaterialDesignController::IsModeMaterial() |
? Button::ButtonState::STATE_NORMAL |
: Button::ButtonState::STATE_PRESSED, |
@@ -439,54 +383,52 @@ TEST_F(CustomButtonTest, CaptureLossHidesInkDrop) { |
} |
TEST_F(CustomButtonTest, HideInkDropWhenShowingContextMenu) { |
- TestInkDropDelegate* ink_drop_delegate = new TestInkDropDelegate(); |
- CreateButtonWithInkDrop(base::WrapUnique(ink_drop_delegate)); |
+ TestInkDrop* ink_drop = new TestInkDrop(); |
+ CreateButtonWithInkDrop(base::WrapUnique(ink_drop)); |
TestContextMenuController context_menu_controller; |
button()->set_context_menu_controller(&context_menu_controller); |
button()->set_hide_ink_drop_when_showing_context_menu(true); |
- ink_drop_delegate->SetHovered(true); |
- ink_drop_delegate->OnAction(InkDropState::ACTION_PENDING); |
+ ink_drop->SetHovered(true); |
+ ink_drop->AnimateToState(InkDropState::ACTION_PENDING); |
button()->ShowContextMenu(gfx::Point(), ui::MENU_SOURCE_MOUSE); |
- EXPECT_FALSE(ink_drop_delegate->is_hovered()); |
- EXPECT_EQ(InkDropState::HIDDEN, ink_drop_delegate->GetTargetInkDropState()); |
+ EXPECT_FALSE(ink_drop->is_hovered()); |
+ EXPECT_EQ(InkDropState::HIDDEN, ink_drop->GetTargetInkDropState()); |
} |
TEST_F(CustomButtonTest, DontHideInkDropWhenShowingContextMenu) { |
- TestInkDropDelegate* ink_drop_delegate = new TestInkDropDelegate(); |
- CreateButtonWithInkDrop(base::WrapUnique(ink_drop_delegate)); |
+ TestInkDrop* ink_drop = new TestInkDrop(); |
+ CreateButtonWithInkDrop(base::WrapUnique(ink_drop)); |
TestContextMenuController context_menu_controller; |
button()->set_context_menu_controller(&context_menu_controller); |
button()->set_hide_ink_drop_when_showing_context_menu(false); |
- ink_drop_delegate->SetHovered(true); |
- ink_drop_delegate->OnAction(InkDropState::ACTION_PENDING); |
+ ink_drop->SetHovered(true); |
+ ink_drop->AnimateToState(InkDropState::ACTION_PENDING); |
button()->ShowContextMenu(gfx::Point(), ui::MENU_SOURCE_MOUSE); |
- EXPECT_TRUE(ink_drop_delegate->is_hovered()); |
- EXPECT_EQ(InkDropState::ACTION_PENDING, |
- ink_drop_delegate->GetTargetInkDropState()); |
+ EXPECT_TRUE(ink_drop->is_hovered()); |
+ EXPECT_EQ(InkDropState::ACTION_PENDING, ink_drop->GetTargetInkDropState()); |
} |
TEST_F(CustomButtonTest, HideInkDropOnBlur) { |
gfx::Point center(10, 10); |
- TestInkDropDelegate* ink_drop_delegate = new TestInkDropDelegate(); |
- CreateButtonWithInkDrop(base::WrapUnique(ink_drop_delegate)); |
+ TestInkDrop* ink_drop = new TestInkDrop(); |
+ CreateButtonWithInkDrop(base::WrapUnique(ink_drop)); |
button()->OnFocus(); |
button()->OnMousePressed(ui::MouseEvent( |
ui::ET_MOUSE_PRESSED, center, center, ui::EventTimeForNow(), |
ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); |
- EXPECT_EQ(InkDropState::ACTION_PENDING, |
- ink_drop_delegate->GetTargetInkDropState()); |
+ EXPECT_EQ(InkDropState::ACTION_PENDING, ink_drop->GetTargetInkDropState()); |
button()->OnBlur(); |
- EXPECT_EQ(InkDropState::HIDDEN, ink_drop_delegate->GetTargetInkDropState()); |
+ EXPECT_EQ(InkDropState::HIDDEN, ink_drop->GetTargetInkDropState()); |
button()->OnMouseReleased(ui::MouseEvent( |
ui::ET_MOUSE_PRESSED, center, center, ui::EventTimeForNow(), |
@@ -495,52 +437,49 @@ TEST_F(CustomButtonTest, HideInkDropOnBlur) { |
} |
TEST_F(CustomButtonTest, InkDropAfterTryingToShowContextMenu) { |
- TestInkDropDelegate* ink_drop_delegate = new TestInkDropDelegate(); |
- CreateButtonWithInkDrop(base::WrapUnique(ink_drop_delegate)); |
+ TestInkDrop* ink_drop = new TestInkDrop(); |
+ CreateButtonWithInkDrop(base::WrapUnique(ink_drop)); |
button()->set_context_menu_controller(nullptr); |
- ink_drop_delegate->SetHovered(true); |
- ink_drop_delegate->OnAction(InkDropState::ACTION_PENDING); |
+ ink_drop->SetHovered(true); |
+ ink_drop->AnimateToState(InkDropState::ACTION_PENDING); |
button()->ShowContextMenu(gfx::Point(), ui::MENU_SOURCE_MOUSE); |
- EXPECT_TRUE(ink_drop_delegate->is_hovered()); |
- EXPECT_EQ(InkDropState::ACTION_PENDING, |
- ink_drop_delegate->GetTargetInkDropState()); |
+ EXPECT_TRUE(ink_drop->is_hovered()); |
+ EXPECT_EQ(InkDropState::ACTION_PENDING, ink_drop->GetTargetInkDropState()); |
} |
TEST_F(CustomButtonTest, InkDropShowHideOnMouseDragged) { |
gfx::Point center(10, 10); |
gfx::Point oob(-1, -1); |
- TestInkDropDelegate* ink_drop_delegate = new TestInkDropDelegate(); |
- CreateButtonWithInkDrop(base::WrapUnique(ink_drop_delegate)); |
+ TestInkDrop* ink_drop = new TestInkDrop(); |
+ CreateButtonWithInkDrop(base::WrapUnique(ink_drop)); |
button()->OnMousePressed(ui::MouseEvent( |
ui::ET_MOUSE_PRESSED, center, center, ui::EventTimeForNow(), |
ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); |
- EXPECT_EQ(InkDropState::ACTION_PENDING, |
- ink_drop_delegate->GetTargetInkDropState()); |
+ EXPECT_EQ(InkDropState::ACTION_PENDING, ink_drop->GetTargetInkDropState()); |
button()->OnMouseDragged( |
ui::MouseEvent(ui::ET_MOUSE_PRESSED, oob, oob, ui::EventTimeForNow(), |
ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); |
- EXPECT_EQ(InkDropState::HIDDEN, ink_drop_delegate->GetTargetInkDropState()); |
+ EXPECT_EQ(InkDropState::HIDDEN, ink_drop->GetTargetInkDropState()); |
button()->OnMouseDragged(ui::MouseEvent( |
ui::ET_MOUSE_PRESSED, center, center, ui::EventTimeForNow(), |
ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); |
- EXPECT_EQ(InkDropState::ACTION_PENDING, |
- ink_drop_delegate->GetTargetInkDropState()); |
+ EXPECT_EQ(InkDropState::ACTION_PENDING, ink_drop->GetTargetInkDropState()); |
button()->OnMouseDragged( |
ui::MouseEvent(ui::ET_MOUSE_PRESSED, oob, oob, ui::EventTimeForNow(), |
ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); |
- EXPECT_EQ(InkDropState::HIDDEN, ink_drop_delegate->GetTargetInkDropState()); |
+ EXPECT_EQ(InkDropState::HIDDEN, ink_drop->GetTargetInkDropState()); |
button()->OnMouseReleased( |
ui::MouseEvent(ui::ET_MOUSE_PRESSED, oob, oob, ui::EventTimeForNow(), |
@@ -553,33 +492,32 @@ TEST_F(CustomButtonTest, InkDropStaysHiddenWhileDragging) { |
gfx::Point center(10, 10); |
gfx::Point oob(-1, -1); |
- TestInkDropDelegate* ink_drop_delegate = new TestInkDropDelegate(); |
- CreateButtonWithInkDrop(base::WrapUnique(ink_drop_delegate)); |
+ TestInkDrop* ink_drop = new TestInkDrop(); |
+ CreateButtonWithInkDrop(base::WrapUnique(ink_drop)); |
button()->OnMousePressed(ui::MouseEvent( |
ui::ET_MOUSE_PRESSED, center, center, ui::EventTimeForNow(), |
ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); |
- EXPECT_EQ(InkDropState::ACTION_PENDING, |
- ink_drop_delegate->GetTargetInkDropState()); |
+ EXPECT_EQ(InkDropState::ACTION_PENDING, ink_drop->GetTargetInkDropState()); |
SetDraggedView(button()); |
widget()->SetCapture(button()); |
widget()->ReleaseCapture(); |
- EXPECT_EQ(InkDropState::HIDDEN, ink_drop_delegate->GetTargetInkDropState()); |
+ EXPECT_EQ(InkDropState::HIDDEN, ink_drop->GetTargetInkDropState()); |
button()->OnMouseDragged( |
ui::MouseEvent(ui::ET_MOUSE_PRESSED, oob, oob, ui::EventTimeForNow(), |
ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); |
- EXPECT_EQ(InkDropState::HIDDEN, ink_drop_delegate->GetTargetInkDropState()); |
+ EXPECT_EQ(InkDropState::HIDDEN, ink_drop->GetTargetInkDropState()); |
button()->OnMouseDragged(ui::MouseEvent( |
ui::ET_MOUSE_PRESSED, center, center, ui::EventTimeForNow(), |
ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); |
- EXPECT_EQ(InkDropState::HIDDEN, ink_drop_delegate->GetTargetInkDropState()); |
+ EXPECT_EQ(InkDropState::HIDDEN, ink_drop->GetTargetInkDropState()); |
SetDraggedView(nullptr); |
} |