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

Unified Diff: cc/input/scrollbar_animation_controller_unittest.cc

Issue 2716453005: Aura Overlay Scrollbars appear when mouse hovers over scroller edge (Closed)
Patch Set: rebase Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: cc/input/scrollbar_animation_controller_unittest.cc
diff --git a/cc/input/scrollbar_animation_controller_unittest.cc b/cc/input/scrollbar_animation_controller_unittest.cc
index 9e8487d0f2e104c66d17436aef868060420c7113..4ece3c5c448b64d5178414883b3b2b6f85a3bf0e 100644
--- a/cc/input/scrollbar_animation_controller_unittest.cc
+++ b/cc/input/scrollbar_animation_controller_unittest.cc
@@ -67,10 +67,10 @@ class ScrollbarAnimationControllerAuraOverlayTest : public testing::Test {
}
protected:
- const base::TimeDelta kDelayBeforeStarting = base::TimeDelta::FromSeconds(2);
- const base::TimeDelta kResizeDelayBeforeStarting =
- base::TimeDelta::FromSeconds(5);
- const base::TimeDelta kFadeDuration = base::TimeDelta::FromSeconds(3);
+ const base::TimeDelta kFadeInDelay = base::TimeDelta::FromSeconds(4);
+ const base::TimeDelta kFadeOutDelay = base::TimeDelta::FromSeconds(2);
+ const base::TimeDelta kResizeFadeOutDelay = base::TimeDelta::FromSeconds(5);
+ const base::TimeDelta kFadeOutDuration = base::TimeDelta::FromSeconds(3);
const base::TimeDelta kThinningDuration = base::TimeDelta::FromSeconds(2);
void SetUp() override {
@@ -113,8 +113,8 @@ class ScrollbarAnimationControllerAuraOverlayTest : public testing::Test {
scrollbar_controller_ = ScrollbarAnimationController::
CreateScrollbarAnimationControllerAuraOverlay(
- scroll_layer_ptr->id(), &client_, kDelayBeforeStarting,
- kResizeDelayBeforeStarting, kFadeDuration, kThinningDuration);
+ scroll_layer_ptr->id(), &client_, kFadeInDelay, kFadeOutDelay,
+ kResizeFadeOutDelay, kFadeOutDuration, kThinningDuration);
}
FakeImplTaskRunnerProvider task_runner_provider_;
@@ -213,14 +213,14 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, BasicAppearAndFadeOut) {
ExpectScrollbarsOpacity(1);
EXPECT_FALSE(scrollbar_controller_->ScrollbarsHidden());
- // An animation should have been enqueued.
- EXPECT_EQ(kDelayBeforeStarting, client_.delay());
+ // An fade out animation should have been enqueued.
+ EXPECT_EQ(kFadeOutDelay, client_.delay());
EXPECT_FALSE(client_.start_fade().is_null());
client_.start_fade().Run();
- // Scrollbar should fade out over kFadeDuration.
+ // Scrollbar should fade out over kFadeOutDuration.
scrollbar_controller_->Animate(time);
- time += kFadeDuration;
+ time += kFadeOutDuration;
scrollbar_controller_->Animate(time);
ExpectScrollbarsOpacity(0);
@@ -237,8 +237,8 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, MoveNearAndDontFadeOut) {
scrollbar_controller_->DidScrollUpdate(false);
scrollbar_controller_->DidScrollEnd();
- // An animation should have been enqueued.
- EXPECT_EQ(kDelayBeforeStarting, client_.delay());
+ // An fade out animation should have been enqueued.
+ EXPECT_EQ(kFadeOutDelay, client_.delay());
EXPECT_FALSE(client_.start_fade().is_null());
EXPECT_FALSE(client_.start_fade().IsCancelled());
@@ -262,8 +262,8 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, MoveNearAndDontFadeOut) {
h_scrollbar_layer_->thumb_thickness_scale_factor());
// Mouse is still near the Scrollbar. Once the thickness animation is
- // complete, the queued delayed fade animation should be either cancelled or
- // null.
+ // complete, the queued delayed fade out animation should be either cancelled
+ // or null.
EXPECT_TRUE(client_.start_fade().is_null() ||
client_.start_fade().IsCancelled());
}
@@ -278,8 +278,8 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, MoveOverAndDontFadeOut) {
scrollbar_controller_->DidScrollUpdate(false);
scrollbar_controller_->DidScrollEnd();
- // An animation should have been enqueued.
- EXPECT_EQ(kDelayBeforeStarting, client_.delay());
+ // An fade out animation should have been enqueued.
+ EXPECT_EQ(kFadeOutDelay, client_.delay());
EXPECT_FALSE(client_.start_fade().is_null());
EXPECT_FALSE(client_.start_fade().IsCancelled());
@@ -303,8 +303,8 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, MoveOverAndDontFadeOut) {
h_scrollbar_layer_->thumb_thickness_scale_factor());
// Mouse is still over the Scrollbar. Once the thickness animation is
- // complete, the queued delayed fade animation should be either cancelled or
- // null.
+ // complete, the queued delayed fade out animation should be either cancelled
+ // or null.
EXPECT_TRUE(client_.start_fade().is_null() ||
client_.start_fade().IsCancelled());
}
@@ -320,8 +320,8 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
scrollbar_controller_->DidScrollUpdate(false);
scrollbar_controller_->DidScrollEnd();
- // An animation should have been enqueued.
- EXPECT_EQ(kDelayBeforeStarting, client_.delay());
+ // An fade out animation should have been enqueued.
+ EXPECT_EQ(kFadeOutDelay, client_.delay());
EXPECT_FALSE(client_.start_fade().is_null());
// Now move the mouse over the scrollbar and capture it. It should become
@@ -333,7 +333,7 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
EXPECT_FLOAT_EQ(kIdleThicknessScale,
h_scrollbar_layer_->thumb_thickness_scale_factor());
- // The fade animation should have been cleared or cancelled.
+ // The fade out animation should have been cleared or cancelled.
EXPECT_TRUE(client_.start_fade().is_null() ||
client_.start_fade().IsCancelled());
}
@@ -348,8 +348,8 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
scrollbar_controller_->DidScrollUpdate(false);
scrollbar_controller_->DidScrollEnd();
- // An animation should have been enqueued.
- EXPECT_EQ(kDelayBeforeStarting, client_.delay());
+ // An fade out animation should have been enqueued.
+ EXPECT_EQ(kFadeOutDelay, client_.delay());
EXPECT_FALSE(client_.start_fade().is_null());
// Now move the mouse over the scrollbar and capture it. It should become
@@ -361,11 +361,11 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
EXPECT_FLOAT_EQ(kIdleThicknessScale,
h_scrollbar_layer_->thumb_thickness_scale_factor());
- // The fade animation should have been cleared or cancelled.
+ // The fade out animation should have been cleared or cancelled.
EXPECT_TRUE(client_.start_fade().is_null() ||
client_.start_fade().IsCancelled());
- // Then move mouse away, The fade animation should have been cleared or
+ // Then move mouse away, The fade out animation should have been cleared or
// cancelled.
scrollbar_controller_->DidMouseMoveNear(
VERTICAL, kDefaultMouseMoveDistanceToTriggerAnimation);
@@ -384,8 +384,8 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, DontFadeWhileCaptured) {
scrollbar_controller_->DidScrollUpdate(false);
scrollbar_controller_->DidScrollEnd();
- // An animation should have been enqueued.
- EXPECT_EQ(kDelayBeforeStarting, client_.delay());
+ // An fade out animation should have been enqueued.
+ EXPECT_EQ(kFadeOutDelay, client_.delay());
EXPECT_FALSE(client_.start_fade().is_null());
EXPECT_FALSE(client_.start_fade().IsCancelled());
@@ -404,7 +404,7 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, DontFadeWhileCaptured) {
EXPECT_TRUE(client_.start_fade().is_null() ||
client_.start_fade().IsCancelled());
- // Make sure the queued fade animation is still null or cancelled after
+ // Make sure the queued fade out animation is still null or cancelled after
// capturing the scrollbar.
scrollbar_controller_->DidMouseDown();
EXPECT_TRUE(client_.start_fade().is_null() ||
@@ -421,8 +421,8 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, FadeAfterReleasedFar) {
scrollbar_controller_->DidScrollUpdate(false);
scrollbar_controller_->DidScrollEnd();
- // An animation should have been enqueued.
- EXPECT_EQ(kDelayBeforeStarting, client_.delay());
+ // An fade out animation should have been enqueued.
+ EXPECT_EQ(kFadeOutDelay, client_.delay());
EXPECT_FALSE(client_.start_fade().is_null());
EXPECT_FALSE(client_.start_fade().IsCancelled());
@@ -472,8 +472,8 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, DontFadeAfterReleasedNear) {
scrollbar_controller_->DidScrollUpdate(false);
scrollbar_controller_->DidScrollEnd();
- // An animation should have been enqueued.
- EXPECT_EQ(kDelayBeforeStarting, client_.delay());
+ // An fade out animation should have been enqueued.
+ EXPECT_EQ(kFadeOutDelay, client_.delay());
EXPECT_FALSE(client_.start_fade().is_null());
EXPECT_FALSE(client_.start_fade().IsCancelled());
@@ -511,8 +511,8 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
scrollbar_controller_->DidScrollUpdate(false);
scrollbar_controller_->DidScrollEnd();
- // A fade animation should have been enqueued. Start it.
- EXPECT_EQ(kDelayBeforeStarting, client_.delay());
+ // A fade out animation should have been enqueued. Start it.
+ EXPECT_EQ(kFadeOutDelay, client_.delay());
EXPECT_FALSE(client_.start_fade().is_null());
client_.start_fade().Run();
@@ -520,7 +520,7 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
ExpectScrollbarsOpacity(1);
// Proceed half way through the fade out animation.
- time += kFadeDuration / 2;
+ time += kFadeOutDuration / 2;
scrollbar_controller_->Animate(time);
ExpectScrollbarsOpacity(.5f);
@@ -551,7 +551,7 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, TestCantCaptureWhenFaded) {
scrollbar_controller_->DidScrollUpdate(false);
scrollbar_controller_->DidScrollEnd();
- EXPECT_EQ(kDelayBeforeStarting, client_.delay());
+ EXPECT_EQ(kFadeOutDelay, client_.delay());
EXPECT_FALSE(client_.start_fade().is_null());
EXPECT_FALSE(client_.start_fade().IsCancelled());
client_.start_fade().Run();
@@ -559,7 +559,7 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, TestCantCaptureWhenFaded) {
ExpectScrollbarsOpacity(1);
// Fade the scrollbar out completely.
- time += kFadeDuration;
+ time += kFadeOutDuration;
scrollbar_controller_->Animate(time);
ExpectScrollbarsOpacity(0);
@@ -630,7 +630,7 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, ScrollWithMouseNear) {
h_scrollbar_layer_->thumb_thickness_scale_factor());
// Scrollbar should still be thick and visible.
- time += kFadeDuration;
+ time += kFadeOutDuration;
scrollbar_controller_->Animate(time);
ExpectScrollbarsOpacity(1);
EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor());
@@ -638,29 +638,29 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, ScrollWithMouseNear) {
h_scrollbar_layer_->thumb_thickness_scale_factor());
}
-// Tests that main thread scroll updates immediatley queue a fade animation
+// Tests that main thread scroll updates immediatley queue a fade out animation
// without requiring a ScrollEnd.
TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
MainThreadScrollQueuesFade) {
ASSERT_TRUE(client_.start_fade().is_null());
// A ScrollUpdate without a ScrollBegin indicates a main thread scroll update
- // so we should schedule a fade animation without waiting for a ScrollEnd
+ // so we should schedule a fade out animation without waiting for a ScrollEnd
// (which will never come).
scrollbar_controller_->DidScrollUpdate(false);
EXPECT_FALSE(client_.start_fade().is_null());
- EXPECT_EQ(kDelayBeforeStarting, client_.delay());
+ EXPECT_EQ(kFadeOutDelay, client_.delay());
client_.start_fade().Reset();
- // If we got a ScrollBegin, we shouldn't schedule the fade animation until we
- // get a corresponding ScrollEnd.
+ // If we got a ScrollBegin, we shouldn't schedule the fade out animation until
+ // we get a corresponding ScrollEnd.
scrollbar_controller_->DidScrollBegin();
scrollbar_controller_->DidScrollUpdate(false);
EXPECT_TRUE(client_.start_fade().is_null());
scrollbar_controller_->DidScrollEnd();
EXPECT_FALSE(client_.start_fade().is_null());
- EXPECT_EQ(kDelayBeforeStarting, client_.delay());
+ EXPECT_EQ(kFadeOutDelay, client_.delay());
}
// Make sure that if the scroll update is as a result of a resize, we use the
@@ -670,7 +670,7 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, ResizeFadeDuration) {
scrollbar_controller_->DidScrollUpdate(true);
EXPECT_FALSE(client_.start_fade().is_null());
- EXPECT_EQ(kResizeDelayBeforeStarting, client_.delay());
+ EXPECT_EQ(kResizeFadeOutDelay, client_.delay());
client_.delay() = base::TimeDelta();
@@ -681,7 +681,7 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, ResizeFadeDuration) {
scrollbar_controller_->DidScrollEnd();
EXPECT_FALSE(client_.start_fade().is_null());
- EXPECT_EQ(kDelayBeforeStarting, client_.delay());
+ EXPECT_EQ(kFadeOutDelay, client_.delay());
}
// Tests that the fade effect is animated.
@@ -697,8 +697,8 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, FadeAnimated) {
// Appearance is instant.
ExpectScrollbarsOpacity(1);
- // An animation should have been enqueued.
- EXPECT_EQ(kDelayBeforeStarting, client_.delay());
+ // An fade out animation should have been enqueued.
+ EXPECT_EQ(kFadeOutDelay, client_.delay());
EXPECT_FALSE(client_.start_fade().is_null());
client_.start_fade().Run();
@@ -706,11 +706,11 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, FadeAnimated) {
scrollbar_controller_->Animate(time);
ExpectScrollbarsOpacity(1);
- time += kFadeDuration / 2;
+ time += kFadeOutDuration / 2;
scrollbar_controller_->Animate(time);
ExpectScrollbarsOpacity(.5f);
- time += kFadeDuration / 2;
+ time += kFadeOutDuration / 2;
scrollbar_controller_->Animate(time);
ExpectScrollbarsOpacity(0);
}
@@ -729,27 +729,27 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, NotifyChangedVisibility) {
scrollbar_controller_->DidScrollEnd();
- // Play out the fade animation. We shouldn't notify that the scrollbars are
- // hidden until the animation is completly over. We can (but don't have to)
- // notify during the animation that the scrollbars are still visible.
+ // Play out the fade out animation. We shouldn't notify that the scrollbars
+ // are hidden until the animation is completly over. We can (but don't have
+ // to) notify during the animation that the scrollbars are still visible.
EXPECT_CALL(client_, DidChangeScrollbarVisibility()).Times(0);
ASSERT_FALSE(client_.start_fade().is_null());
client_.start_fade().Run();
scrollbar_controller_->Animate(time);
- time += kFadeDuration / 4;
+ time += kFadeOutDuration / 4;
EXPECT_FALSE(scrollbar_controller_->ScrollbarsHidden());
scrollbar_controller_->Animate(time);
- time += kFadeDuration / 4;
+ time += kFadeOutDuration / 4;
EXPECT_FALSE(scrollbar_controller_->ScrollbarsHidden());
scrollbar_controller_->Animate(time);
- time += kFadeDuration / 4;
+ time += kFadeOutDuration / 4;
EXPECT_FALSE(scrollbar_controller_->ScrollbarsHidden());
scrollbar_controller_->Animate(time);
ExpectScrollbarsOpacity(.25f);
Mock::VerifyAndClearExpectations(&client_);
EXPECT_CALL(client_, DidChangeScrollbarVisibility()).Times(1);
- time += kFadeDuration / 4;
+ time += kFadeOutDuration / 4;
scrollbar_controller_->Animate(time);
EXPECT_TRUE(scrollbar_controller_->ScrollbarsHidden());
ExpectScrollbarsOpacity(0);
@@ -852,9 +852,9 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, MouseNearEach) {
EXPECT_FLOAT_EQ(kIdleThicknessScale,
h_scrollbar_layer_->thumb_thickness_scale_factor());
- // An animation should have been enqueued.
+ // An fade out animation should have been enqueued.
EXPECT_FALSE(client_.start_fade().is_null());
- EXPECT_EQ(kDelayBeforeStarting, client_.delay());
+ EXPECT_EQ(kFadeOutDelay, client_.delay());
}
// Move mouse near both scrollbars at the same time.
@@ -944,9 +944,9 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
EXPECT_FLOAT_EQ(kIdleThicknessScale,
h_scrollbar_layer_->thumb_thickness_scale_factor());
- // An animation should have been enqueued.
+ // An fade out animation should have been enqueued.
EXPECT_FALSE(client_.start_fade().is_null());
- EXPECT_EQ(kDelayBeforeStarting, client_.delay());
+ EXPECT_EQ(kFadeOutDelay, client_.delay());
}
// Ensure we have a delay fadeout animation after mouse leave without a mouse
@@ -970,9 +970,46 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, MouseLeaveFadeOut) {
// Mouse leave.
scrollbar_controller_->DidMouseLeave();
- // An animation should have been enqueued.
+ // An fade out animation should have been enqueued.
EXPECT_FALSE(client_.start_fade().is_null());
- EXPECT_EQ(kDelayBeforeStarting, client_.delay());
+ EXPECT_EQ(kFadeOutDelay, client_.delay());
+}
+
+// Scrollbars should schedule a delay fade in when mouse hover hidden scrollbar.
+TEST_F(ScrollbarAnimationControllerAuraOverlayTest, BasicMouseHoverFadeIn) {
+ base::TimeTicks time;
+ time += base::TimeDelta::FromSeconds(1);
+
+ // Move mouse over scrollbar.
+ scrollbar_controller_->DidMouseMoveNear(VERTICAL, 0);
+
+ // An fade in animation should have been enqueued.
+ EXPECT_FALSE(client_.start_fade().is_null());
+ EXPECT_EQ(kFadeInDelay, client_.delay());
+
+ // Play the delay animation.
+ client_.start_fade().Run();
+ EXPECT_FALSE(scrollbar_controller_->ScrollbarsHidden());
+}
+
+// Scrollbars should cancel delay fade in when mouse hover hidden scrollbar then
+// move out.
+TEST_F(ScrollbarAnimationControllerAuraOverlayTest,
bokan 2017/02/27 23:13:56 Please add another test that moving the mouse with
+ MouseHoverThenOutShouldCancelFadeIn) {
+ base::TimeTicks time;
+ time += base::TimeDelta::FromSeconds(1);
+
+ // Move mouse over scrollbar.
+ scrollbar_controller_->DidMouseMoveNear(VERTICAL, 0);
+
+ // An fade in animation should have been enqueued.
+ EXPECT_FALSE(client_.start_fade().is_null());
+ EXPECT_EQ(kFadeInDelay, client_.delay());
+
+ // Move mouse out of scrollbar,delay fade in should be canceled.
+ scrollbar_controller_->DidMouseMoveNear(VERTICAL, 1);
+ EXPECT_TRUE(client_.start_fade().is_null() ||
+ client_.start_fade().IsCancelled());
}
class ScrollbarAnimationControllerAndroidTest

Powered by Google App Engine
This is Rietveld 408576698