Chromium Code Reviews| Index: cc/input/scrollbar_animation_controller_thinning_unittest.cc |
| diff --git a/cc/input/scrollbar_animation_controller_thinning_unittest.cc b/cc/input/scrollbar_animation_controller_thinning_unittest.cc |
| index e1a1aa3cd53a5b79aafd9cd8c544d86f539232cf..a04c13ec59cc4bb54ded6c63d6c3ba6f82f7b84f 100644 |
| --- a/cc/input/scrollbar_animation_controller_thinning_unittest.cc |
| +++ b/cc/input/scrollbar_animation_controller_thinning_unittest.cc |
| @@ -386,5 +386,143 @@ TEST_F(ScrollbarAnimationControllerThinningTest, MouseNearThenOver) { |
| EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->thumb_thickness_scale_factor()); |
| } |
| +// First move the pointer on the scrollbar, then press it, then away and move |
|
bokan
2016/09/23 00:39:12
what do you mean by "move down"?
|
| +// down. Confirm that the bar gets thick and dark. Then mouse up. Confirm that |
| +// the bar gets thickness and light. |
|
bokan
2016/09/23 00:39:12
Nit: thickness->thin
|
| +TEST_F(ScrollbarAnimationControllerThinningTest, |
| + MouseCaptureAndReleaseOutOfBar) { |
| + base::TimeTicks time; |
| + |
| + // Move in |
| + scrollbar_controller_->DidMouseMoveNear(0); |
| + |
| + time += base::TimeDelta::FromSeconds(1); |
| + scrollbar_controller_->Animate(time); |
| + EXPECT_FLOAT_EQ(0.7f, scrollbar_layer_->Opacity()); |
| + EXPECT_FLOAT_EQ(0.4f, scrollbar_layer_->thumb_thickness_scale_factor()); |
| + |
| + // Should animate to thickened and darkened. |
| + time += base::TimeDelta::FromSeconds(1); |
| + scrollbar_controller_->Animate(time); |
| + EXPECT_FLOAT_EQ(0.8f, scrollbar_layer_->Opacity()); |
| + EXPECT_FLOAT_EQ(0.6f, scrollbar_layer_->thumb_thickness_scale_factor()); |
| + |
| + time += base::TimeDelta::FromSeconds(1); |
|
bokan
2016/09/23 00:39:12
We're overfitting here. Changing the animation cur
chaopeng
2016/09/23 00:54:57
I have tried jump 5 seconds but cannot get the exp
bokan
2016/09/23 18:06:31
Ah, got it, the duration is set specifically for t
|
| + scrollbar_controller_->Animate(time); |
| + EXPECT_FLOAT_EQ(0.9f, scrollbar_layer_->Opacity()); |
| + EXPECT_FLOAT_EQ(0.8f, scrollbar_layer_->thumb_thickness_scale_factor()); |
| + |
| + time += base::TimeDelta::FromSeconds(1); |
| + scrollbar_controller_->Animate(time); |
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->Opacity()); |
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->thumb_thickness_scale_factor()); |
| + |
| + // Capture |
| + scrollbar_controller_->DidCaptureScrollbarBegin(); |
| + time += base::TimeDelta::FromSeconds(1); |
| + scrollbar_controller_->Animate(time); |
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->Opacity()); |
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->thumb_thickness_scale_factor()); |
| + |
| + // move away from bar. |
| + scrollbar_controller_->DidMouseMoveNear(26); |
| + |
| + // test for 10 seconds, stay thick and dark |
| + for (int i = 0; i < 10; ++i) { |
| + time += base::TimeDelta::FromSeconds(1); |
| + scrollbar_controller_->Animate(time); |
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->Opacity()); |
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->thumb_thickness_scale_factor()); |
| + } |
| + |
| + // release |
| + scrollbar_controller_->DidCaptureScrollbarEnd(); |
| + |
| + // get thickness and light |
| + time += base::TimeDelta::FromSeconds(1); |
| + scrollbar_controller_->Animate(time); |
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->Opacity()); |
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->thumb_thickness_scale_factor()); |
| + |
| + time += base::TimeDelta::FromSeconds(1); |
| + scrollbar_controller_->Animate(time); |
| + EXPECT_FLOAT_EQ(0.9f, scrollbar_layer_->Opacity()); |
| + EXPECT_FLOAT_EQ(0.8f, scrollbar_layer_->thumb_thickness_scale_factor()); |
| + |
| + time += base::TimeDelta::FromSeconds(1); |
| + scrollbar_controller_->Animate(time); |
| + EXPECT_FLOAT_EQ(0.8f, scrollbar_layer_->Opacity()); |
| + EXPECT_FLOAT_EQ(0.6f, scrollbar_layer_->thumb_thickness_scale_factor()); |
| + |
| + time += base::TimeDelta::FromSeconds(1); |
| + scrollbar_controller_->Animate(time); |
| + EXPECT_FLOAT_EQ(0.7f, scrollbar_layer_->Opacity()); |
| + EXPECT_FLOAT_EQ(0.4f, scrollbar_layer_->thumb_thickness_scale_factor()); |
| +} |
| + |
| +// First move the pointer on the scrollbar, then press it, then away and move |
| +// down. Confirm that the bar gets thick and dark. Then move point on the |
| +// scrollbar and mouse up. Confirm that the bar gets thick and dark. |
| +TEST_F(ScrollbarAnimationControllerThinningTest, MouseCaptureAndReleaseOnBar) { |
| + base::TimeTicks time; |
| + |
| + // Move in |
| + scrollbar_controller_->DidMouseMoveNear(0); |
| + |
| + time += base::TimeDelta::FromSeconds(1); |
| + scrollbar_controller_->Animate(time); |
| + EXPECT_FLOAT_EQ(0.7f, scrollbar_layer_->Opacity()); |
| + EXPECT_FLOAT_EQ(0.4f, scrollbar_layer_->thumb_thickness_scale_factor()); |
| + |
| + // Should animate to thickened and darkened. |
| + time += base::TimeDelta::FromSeconds(1); |
| + scrollbar_controller_->Animate(time); |
| + EXPECT_FLOAT_EQ(0.8f, scrollbar_layer_->Opacity()); |
| + EXPECT_FLOAT_EQ(0.6f, scrollbar_layer_->thumb_thickness_scale_factor()); |
| + |
| + time += base::TimeDelta::FromSeconds(1); |
| + scrollbar_controller_->Animate(time); |
| + EXPECT_FLOAT_EQ(0.9f, scrollbar_layer_->Opacity()); |
| + EXPECT_FLOAT_EQ(0.8f, scrollbar_layer_->thumb_thickness_scale_factor()); |
| + |
| + time += base::TimeDelta::FromSeconds(1); |
| + scrollbar_controller_->Animate(time); |
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->Opacity()); |
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->thumb_thickness_scale_factor()); |
| + |
| + // Capture |
| + scrollbar_controller_->DidCaptureScrollbarBegin(); |
| + time += base::TimeDelta::FromSeconds(1); |
| + scrollbar_controller_->Animate(time); |
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->Opacity()); |
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->thumb_thickness_scale_factor()); |
| + |
| + // move away from bar. |
| + scrollbar_controller_->DidMouseMoveNear(26); |
| + |
| + // test for 10 seconds, stay thick and dark |
| + for (int i = 0; i < 10; ++i) { |
| + time += base::TimeDelta::FromSeconds(1); |
| + scrollbar_controller_->Animate(time); |
|
bokan
2016/09/23 00:39:12
I'd add some DidMouseMoveNear calls here to make s
|
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->Opacity()); |
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->thumb_thickness_scale_factor()); |
| + } |
| + |
| + // move to the bar. |
| + scrollbar_controller_->DidMouseMoveNear(0); |
| + |
| + // release |
| + scrollbar_controller_->DidCaptureScrollbarEnd(); |
| + |
| + // stay thick and dark |
| + // test for 10 seconds, stay thick and dark |
| + for (int i = 0; i < 10; ++i) { |
| + time += base::TimeDelta::FromSeconds(1); |
| + scrollbar_controller_->Animate(time); |
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->Opacity()); |
| + EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->thumb_thickness_scale_factor()); |
| + } |
| +} |
| + |
| } // namespace |
| } // namespace cc |