Chromium Code Reviews| 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 e1cb8957e9702ab994ca3bb60787981d99125b0c..573dcc19236d33df4cef619234c7a3a924683357 100644 |
| --- a/cc/input/scrollbar_animation_controller_unittest.cc |
| +++ b/cc/input/scrollbar_animation_controller_unittest.cc |
| @@ -717,13 +717,28 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, TestCantCaptureWhenFaded) { |
| h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| EXPECT_TRUE(client_.start_fade().is_null()); |
| - // Similarly, releasing the scrollbar should have no effect. |
| + // Similarly, releasing the scrollbar should have no effect but trigger a fade |
| + // in. |
| scrollbar_controller_->DidMouseUp(); |
| ExpectScrollbarsOpacity(0); |
| EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| - EXPECT_TRUE(client_.start_fade().is_null()); |
| + |
| + // An fade in animation should have been enqueued. |
| + EXPECT_FALSE(client_.start_fade().is_null()); |
| + EXPECT_FALSE(client_.start_fade().IsCancelled()); |
| + EXPECT_EQ(kFadeDelay, client_.delay()); |
| + |
| + // Play the delay animation. |
| + client_.start_fade().Run(); |
| + EXPECT_TRUE(client_.start_fade().IsCancelled()); |
| + |
| + scrollbar_controller_->Animate(time); |
| + time += kFadeDuration; |
| + scrollbar_controller_->Animate(time); |
| + |
| + EXPECT_FALSE(scrollbar_controller_->ScrollbarsHidden()); |
| } |
| // Initiate a scroll when the pointer is already near the scrollbar. It should |
| @@ -1093,7 +1108,7 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, BasicMouseHoverFadeIn) { |
| base::TimeTicks time; |
| time += base::TimeDelta::FromSeconds(1); |
| - // Move mouse hover the fade in scrollbar region of scrollbar. |
| + // Move mouse over the fade in scrollbar region of scrollbar. |
| scrollbar_controller_->DidMouseMove( |
| NearVerticalScrollbarBegin(-kMouseMoveDistanceToTriggerFadeIn + 1, 0)); |
| @@ -1127,7 +1142,7 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, |
| base::TimeTicks time; |
| time += base::TimeDelta::FromSeconds(1); |
| - // Move mouse hover the fade in scrollbar region of scrollbar. |
| + // Move mouse over the fade in scrollbar region of scrollbar. |
| scrollbar_controller_->DidMouseMove( |
| NearVerticalScrollbarBegin(-kMouseMoveDistanceToTriggerFadeIn + 1, 0)); |
| @@ -1152,7 +1167,7 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, |
| base::TimeTicks time; |
| time += base::TimeDelta::FromSeconds(1); |
| - // Move mouse hover the fade in scrollbar region of scrollbar. |
| + // Move mouse over the fade in scrollbar region of scrollbar. |
| scrollbar_controller_->DidMouseMove( |
| NearVerticalScrollbarBegin(-kMouseMoveDistanceToTriggerFadeIn + 1, 0)); |
| @@ -1176,7 +1191,7 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, |
| base::TimeTicks time; |
| time += base::TimeDelta::FromSeconds(1); |
| - // Move mouse hover the fade in scrollbar region of scrollbar. |
| + // Move mouse over the fade in scrollbar region of scrollbar. |
| scrollbar_controller_->DidMouseMove( |
| NearVerticalScrollbarBegin(-kMouseMoveDistanceToTriggerFadeIn + 1, 0)); |
| @@ -1190,10 +1205,59 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, |
| EXPECT_TRUE(client_.start_fade().is_null() || |
| client_.start_fade().IsCancelled()); |
| - // Move mouse hover the fade in scrollbar region of scrollbar. |
| + // Move mouse over the fade in scrollbar region of scrollbar. |
| + scrollbar_controller_->DidMouseMove( |
| + NearVerticalScrollbarBegin(-kMouseMoveDistanceToTriggerFadeIn + 1, 0)); |
| + |
| + // An fade in animation should have been enqueued. |
| + EXPECT_FALSE(client_.start_fade().is_null()); |
| + EXPECT_FALSE(client_.start_fade().IsCancelled()); |
| + EXPECT_EQ(kFadeDelay, client_.delay()); |
| + |
| + // Play the delay animation. |
| + client_.start_fade().Run(); |
| + EXPECT_TRUE(client_.start_fade().IsCancelled()); |
| + |
| + scrollbar_controller_->Animate(time); |
| + time += kFadeDuration; |
| + scrollbar_controller_->Animate(time); |
| + |
| + EXPECT_FALSE(scrollbar_controller_->ScrollbarsHidden()); |
| +} |
| + |
| +// Make sure mouse down will cancel hover fade in timer, then mouse move with |
| +// press will not trigger hover fade in, mouse release near will trigger new |
| +// hover fade in. |
| +TEST_F(ScrollbarAnimationControllerAuraOverlayTest, |
| + MouseHoverThenMouseDownShouldCancelFadeInThenReleaseNearShouldFadeIn) { |
| + base::TimeTicks time; |
| + time += base::TimeDelta::FromSeconds(1); |
| + |
| + // Move mouse over the fade in scrollbar region of scrollbar. |
| + scrollbar_controller_->DidMouseMove( |
| + NearVerticalScrollbarBegin(-kMouseMoveDistanceToTriggerFadeIn + 1, 0)); |
| + |
| + // An fade in animation should have been enqueued. |
| + EXPECT_FALSE(client_.start_fade().is_null()); |
| + EXPECT_FALSE(client_.start_fade().IsCancelled()); |
| + EXPECT_EQ(kFadeDelay, client_.delay()); |
| + |
| + // Mouse down,delay fade in should be canceled. |
| + scrollbar_controller_->DidMouseDown(); |
| + EXPECT_TRUE(client_.start_fade().is_null() || |
| + client_.start_fade().IsCancelled()); |
| + |
| + // Move mouse hover the fade in scrollbar region of scrollbar with press. |
| scrollbar_controller_->DidMouseMove( |
| NearVerticalScrollbarBegin(-kMouseMoveDistanceToTriggerFadeIn + 1, 0)); |
| + // Should not have delay fade animation. |
| + EXPECT_TRUE(client_.start_fade().is_null() || |
| + client_.start_fade().IsCancelled()); |
| + |
| + // Mouse up. |
| + scrollbar_controller_->DidMouseUp(); |
| + |
| // An fade in animation should have been enqueued. |
| EXPECT_FALSE(client_.start_fade().is_null()); |
| EXPECT_FALSE(client_.start_fade().IsCancelled()); |
| @@ -1210,6 +1274,45 @@ TEST_F(ScrollbarAnimationControllerAuraOverlayTest, |
| EXPECT_FALSE(scrollbar_controller_->ScrollbarsHidden()); |
| } |
| +// Make sure mouse down will cancel hover fade in timer, then mouse move with |
| +// press will not trigger hover fade in, mouse release far will not trigger new |
| +// hover fade in. |
| +TEST_F(ScrollbarAnimationControllerAuraOverlayTest, |
| + MouseReleaseFarShouldNotFadeIn) { |
| + base::TimeTicks time; |
| + time += base::TimeDelta::FromSeconds(1); |
| + |
| + // Move mouse over the fade in scrollbar region of scrollbar. |
|
bokan
2017/06/08 20:19:54
Nit: "fade in scrollbar region of scrollbar" shoul
|
| + scrollbar_controller_->DidMouseMove( |
| + NearVerticalScrollbarBegin(-kMouseMoveDistanceToTriggerFadeIn + 1, 0)); |
| + |
| + // An fade in animation should have been enqueued. |
| + EXPECT_FALSE(client_.start_fade().is_null()); |
| + EXPECT_FALSE(client_.start_fade().IsCancelled()); |
| + EXPECT_EQ(kFadeDelay, client_.delay()); |
| + |
| + // Mouse down,delay fade in should be canceled. |
| + scrollbar_controller_->DidMouseDown(); |
| + EXPECT_TRUE(client_.start_fade().is_null() || |
| + client_.start_fade().IsCancelled()); |
| + |
| + // Move mouse far from hover the fade in scrollbar region of scrollbar with |
| + // press. |
| + scrollbar_controller_->DidMouseMove( |
| + NearVerticalScrollbarBegin(-kMouseMoveDistanceToTriggerFadeIn, 0)); |
| + |
| + // Should not have delay fade animation. |
| + EXPECT_TRUE(client_.start_fade().is_null() || |
| + client_.start_fade().IsCancelled()); |
| + |
| + // Mouse up. |
| + scrollbar_controller_->DidMouseUp(); |
| + |
| + // Should not have delay fade animation. |
| + EXPECT_TRUE(client_.start_fade().is_null() || |
| + client_.start_fade().IsCancelled()); |
| +} |
| + |
| class ScrollbarAnimationControllerAndroidTest |
| : public testing::Test, |
| public ScrollbarAnimationControllerClient { |