Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/input/scrollbar_animation_controller.h" | 5 #include "cc/input/scrollbar_animation_controller.h" |
| 6 | 6 |
| 7 #include "cc/layers/solid_color_scrollbar_layer_impl.h" | 7 #include "cc/layers/solid_color_scrollbar_layer_impl.h" |
| 8 #include "cc/test/fake_impl_task_runner_provider.h" | 8 #include "cc/test/fake_impl_task_runner_provider.h" |
| 9 #include "cc/test/fake_layer_tree_host_impl.h" | 9 #include "cc/test/fake_layer_tree_host_impl.h" |
| 10 #include "cc/test/geometry_test_utils.h" | 10 #include "cc/test/geometry_test_utils.h" |
| 11 #include "cc/test/test_task_graph_runner.h" | 11 #include "cc/test/test_task_graph_runner.h" |
| 12 #include "cc/trees/layer_tree_impl.h" | 12 #include "cc/trees/layer_tree_impl.h" |
| 13 #include "testing/gmock/include/gmock/gmock.h" | 13 #include "testing/gmock/include/gmock/gmock.h" |
| 14 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
| 15 | 15 |
| 16 using testing::AtLeast; | 16 using testing::AtLeast; |
| 17 using testing::Mock; | 17 using testing::Mock; |
| 18 using testing::NiceMock; | 18 using testing::NiceMock; |
| 19 using testing::_; | 19 using testing::_; |
| 20 | 20 |
| 21 namespace cc { | 21 namespace cc { |
| 22 namespace { | 22 namespace { |
| 23 | 23 |
| 24 const float kIdleThicknessScale = | 24 const float kIdleThicknessScale = |
| 25 SingleScrollbarAnimationControllerThinning::kIdleThicknessScale; | 25 SingleScrollbarAnimationControllerThinning::kIdleThicknessScale; |
| 26 const float kDefaultMouseMoveDistanceToTriggerAnimation = | |
| 27 SingleScrollbarAnimationControllerThinning:: | |
| 28 kDefaultMouseMoveDistanceToTriggerAnimation; | |
| 29 const float kMouseMoveDistanceToTriggerFadeIn = | 26 const float kMouseMoveDistanceToTriggerFadeIn = |
| 30 ScrollbarAnimationController::kMouseMoveDistanceToTriggerFadeIn; | 27 ScrollbarAnimationController::kMouseMoveDistanceToTriggerFadeIn; |
| 28 const float kMouseMoveDistanceToTriggerExpand = | |
| 29 SingleScrollbarAnimationControllerThinning:: | |
| 30 kMouseMoveDistanceToTriggerExpand; | |
| 31 const int kThumbThickness = 10; | 31 const int kThumbThickness = 10; |
| 32 | 32 |
| 33 class MockScrollbarAnimationControllerClient | 33 class MockScrollbarAnimationControllerClient |
| 34 : public ScrollbarAnimationControllerClient { | 34 : public ScrollbarAnimationControllerClient { |
| 35 public: | 35 public: |
| 36 explicit MockScrollbarAnimationControllerClient(LayerTreeHostImpl* host_impl) | 36 explicit MockScrollbarAnimationControllerClient(LayerTreeHostImpl* host_impl) |
| 37 : host_impl_(host_impl) {} | 37 : host_impl_(host_impl) {} |
| 38 virtual ~MockScrollbarAnimationControllerClient() {} | 38 virtual ~MockScrollbarAnimationControllerClient() {} |
| 39 | 39 |
| 40 void PostDelayedScrollbarAnimationTask(const base::Closure& start_fade, | 40 void PostDelayedScrollbarAnimationTask(const base::Closure& start_fade, |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 80 LayerImpl::Create(host_impl_.active_tree(), 1); | 80 LayerImpl::Create(host_impl_.active_tree(), 1); |
| 81 std::unique_ptr<LayerImpl> clip = | 81 std::unique_ptr<LayerImpl> clip = |
| 82 LayerImpl::Create(host_impl_.active_tree(), 2); | 82 LayerImpl::Create(host_impl_.active_tree(), 2); |
| 83 clip_layer_ = clip.get(); | 83 clip_layer_ = clip.get(); |
| 84 scroll_layer->SetElementId( | 84 scroll_layer->SetElementId( |
| 85 LayerIdToElementIdForTesting(scroll_layer->id())); | 85 LayerIdToElementIdForTesting(scroll_layer->id())); |
| 86 scroll_layer->SetScrollClipLayer(clip_layer_->id()); | 86 scroll_layer->SetScrollClipLayer(clip_layer_->id()); |
| 87 LayerImpl* scroll_layer_ptr = scroll_layer.get(); | 87 LayerImpl* scroll_layer_ptr = scroll_layer.get(); |
| 88 | 88 |
| 89 const int kTrackStart = 0; | 89 const int kTrackStart = 0; |
| 90 const int kTrackLength = 100; | |
| 90 const bool kIsLeftSideVerticalScrollbar = false; | 91 const bool kIsLeftSideVerticalScrollbar = false; |
| 91 const bool kIsOverlayScrollbar = true; | 92 const bool kIsOverlayScrollbar = true; |
| 92 | 93 |
| 93 std::unique_ptr<SolidColorScrollbarLayerImpl> h_scrollbar = | 94 std::unique_ptr<SolidColorScrollbarLayerImpl> h_scrollbar = |
| 94 SolidColorScrollbarLayerImpl::Create( | 95 SolidColorScrollbarLayerImpl::Create( |
| 95 host_impl_.active_tree(), 3, HORIZONTAL, kThumbThickness, | 96 host_impl_.active_tree(), 3, HORIZONTAL, kThumbThickness, |
| 96 kTrackStart, kIsLeftSideVerticalScrollbar, kIsOverlayScrollbar); | 97 kTrackStart, kIsLeftSideVerticalScrollbar, kIsOverlayScrollbar); |
| 97 std::unique_ptr<SolidColorScrollbarLayerImpl> v_scrollbar = | 98 std::unique_ptr<SolidColorScrollbarLayerImpl> v_scrollbar = |
| 98 SolidColorScrollbarLayerImpl::Create( | 99 SolidColorScrollbarLayerImpl::Create( |
| 99 host_impl_.active_tree(), 4, VERTICAL, kThumbThickness, kTrackStart, | 100 host_impl_.active_tree(), 4, VERTICAL, kThumbThickness, kTrackStart, |
| 100 kIsLeftSideVerticalScrollbar, kIsOverlayScrollbar); | 101 kIsLeftSideVerticalScrollbar, kIsOverlayScrollbar); |
| 101 v_scrollbar_layer_ = v_scrollbar.get(); | 102 v_scrollbar_layer_ = v_scrollbar.get(); |
| 102 h_scrollbar_layer_ = h_scrollbar.get(); | 103 h_scrollbar_layer_ = h_scrollbar.get(); |
| 103 | 104 |
| 104 scroll_layer->test_properties()->AddChild(std::move(v_scrollbar)); | 105 scroll_layer->test_properties()->AddChild(std::move(v_scrollbar)); |
| 105 scroll_layer->test_properties()->AddChild(std::move(h_scrollbar)); | 106 scroll_layer->test_properties()->AddChild(std::move(h_scrollbar)); |
| 106 clip_layer_->test_properties()->AddChild(std::move(scroll_layer)); | 107 clip_layer_->test_properties()->AddChild(std::move(scroll_layer)); |
| 107 host_impl_.active_tree()->SetRootLayerForTesting(std::move(clip)); | 108 host_impl_.active_tree()->SetRootLayerForTesting(std::move(clip)); |
| 108 | 109 |
| 110 v_scrollbar_layer_->SetBounds(gfx::Size(kThumbThickness, kTrackLength)); | |
| 111 v_scrollbar_layer_->SetPosition(gfx::PointF(90, 0)); | |
| 109 v_scrollbar_layer_->SetScrollElementId(scroll_layer_ptr->element_id()); | 112 v_scrollbar_layer_->SetScrollElementId(scroll_layer_ptr->element_id()); |
| 113 v_scrollbar_layer_->test_properties()->opacity_can_animate = true; | |
| 114 | |
| 115 h_scrollbar_layer_->SetBounds(gfx::Size(kTrackLength, kThumbThickness)); | |
| 116 h_scrollbar_layer_->SetPosition(gfx::PointF(0, 90)); | |
| 110 h_scrollbar_layer_->SetScrollElementId(scroll_layer_ptr->element_id()); | 117 h_scrollbar_layer_->SetScrollElementId(scroll_layer_ptr->element_id()); |
| 111 v_scrollbar_layer_->test_properties()->opacity_can_animate = true; | |
| 112 h_scrollbar_layer_->test_properties()->opacity_can_animate = true; | 118 h_scrollbar_layer_->test_properties()->opacity_can_animate = true; |
| 119 | |
| 113 clip_layer_->SetBounds(gfx::Size(100, 100)); | 120 clip_layer_->SetBounds(gfx::Size(100, 100)); |
| 114 scroll_layer_ptr->SetBounds(gfx::Size(200, 200)); | 121 scroll_layer_ptr->SetBounds(gfx::Size(200, 200)); |
| 115 host_impl_.active_tree()->BuildLayerListAndPropertyTreesForTesting(); | 122 host_impl_.active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
| 116 | 123 |
| 117 scrollbar_controller_ = ScrollbarAnimationController:: | 124 scrollbar_controller_ = ScrollbarAnimationController:: |
| 118 CreateScrollbarAnimationControllerAuraOverlay( | 125 CreateScrollbarAnimationControllerAuraOverlay( |
| 119 scroll_layer_ptr->element_id(), &client_, kFadeDelay, | 126 scroll_layer_ptr->element_id(), &client_, kFadeDelay, |
| 120 kResizeFadeOutDelay, kFadeDuration, kThinningDuration); | 127 kResizeFadeOutDelay, kFadeDuration, kThinningDuration); |
| 128 | |
| 129 v_scrollbar_layer_->SetCurrentPos(0); | |
| 130 h_scrollbar_layer_->SetCurrentPos(0); | |
| 131 } | |
| 132 | |
| 133 gfx::PointF NearVerticalScrollbarBegin(float offset_x, float offset_y) { | |
|
bokan
2017/04/28 18:08:11
Please add a short description comment above these
| |
| 134 gfx::PointF p(90, 0); | |
| 135 p.Offset(offset_x, offset_y); | |
| 136 return p; | |
| 137 } | |
| 138 | |
| 139 gfx::PointF NearVerticalScrollbarEnd(float offset_x, float offset_y) { | |
| 140 gfx::PointF p(90, 90); | |
| 141 p.Offset(offset_x, offset_y); | |
| 142 return p; | |
| 143 } | |
| 144 | |
| 145 gfx::PointF NearHorizontalScrollbarBegin(float offset_x, float offset_y) { | |
| 146 gfx::PointF p(0, 90); | |
| 147 p.Offset(offset_x, offset_y); | |
| 148 return p; | |
| 121 } | 149 } |
| 122 | 150 |
| 123 FakeImplTaskRunnerProvider task_runner_provider_; | 151 FakeImplTaskRunnerProvider task_runner_provider_; |
| 124 TestTaskGraphRunner task_graph_runner_; | 152 TestTaskGraphRunner task_graph_runner_; |
| 125 FakeLayerTreeHostImpl host_impl_; | 153 FakeLayerTreeHostImpl host_impl_; |
| 126 std::unique_ptr<ScrollbarAnimationController> scrollbar_controller_; | 154 std::unique_ptr<ScrollbarAnimationController> scrollbar_controller_; |
| 127 LayerImpl* clip_layer_; | 155 LayerImpl* clip_layer_; |
| 128 SolidColorScrollbarLayerImpl* v_scrollbar_layer_; | 156 SolidColorScrollbarLayerImpl* v_scrollbar_layer_; |
| 129 SolidColorScrollbarLayerImpl* h_scrollbar_layer_; | 157 SolidColorScrollbarLayerImpl* h_scrollbar_layer_; |
| 130 NiceMock<MockScrollbarAnimationControllerClient> client_; | 158 NiceMock<MockScrollbarAnimationControllerClient> client_; |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 252 | 280 |
| 253 // Scrollbar should fade out over kFadeDuration. | 281 // Scrollbar should fade out over kFadeDuration. |
| 254 scrollbar_controller_->Animate(time); | 282 scrollbar_controller_->Animate(time); |
| 255 time += kFadeDuration; | 283 time += kFadeDuration; |
| 256 scrollbar_controller_->Animate(time); | 284 scrollbar_controller_->Animate(time); |
| 257 | 285 |
| 258 ExpectScrollbarsOpacity(0); | 286 ExpectScrollbarsOpacity(0); |
| 259 EXPECT_TRUE(scrollbar_controller_->ScrollbarsHidden()); | 287 EXPECT_TRUE(scrollbar_controller_->ScrollbarsHidden()); |
| 260 } | 288 } |
| 261 | 289 |
| 262 // Scroll content. Move the mouse near the scrollbar and confirm it becomes | 290 // Scroll content. Move the mouse near the scrollbar track but not near thumb |
| 263 // thick. Ensure it remains visible as long as the mouse is near the scrollbar. | 291 // and confirm it keeps thick. Move the mouse near the scrollbar thumb and |
|
bokan
2017/04/28 18:08:11
I think you meant "confirm it stays thin" on this
| |
| 292 // confirm it becomes thick. | |
| 293 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, | |
| 294 MoveNearTrackThenNearThumb) { | |
| 295 base::TimeTicks time; | |
| 296 time += base::TimeDelta::FromSeconds(1); | |
| 297 | |
| 298 scrollbar_controller_->DidScrollBegin(); | |
| 299 scrollbar_controller_->DidScrollUpdate(); | |
| 300 scrollbar_controller_->DidScrollEnd(); | |
| 301 | |
| 302 // An fade out animation should have been enqueued. | |
| 303 EXPECT_EQ(kFadeDelay, client_.delay()); | |
| 304 EXPECT_FALSE(client_.start_fade().is_null()); | |
| 305 EXPECT_FALSE(client_.start_fade().IsCancelled()); | |
| 306 | |
| 307 // Now move the mouse near the vertical scrollbar track. This should cancel | |
| 308 // the currently queued fading animation and start animating thickness. | |
|
bokan
2017/04/28 18:08:11
We don't start animating thickness until you move
| |
| 309 scrollbar_controller_->DidMouseMove(NearVerticalScrollbarEnd(-1, 0)); | |
| 310 ExpectScrollbarsOpacity(1); | |
| 311 EXPECT_FLOAT_EQ(kIdleThicknessScale, | |
| 312 v_scrollbar_layer_->thumb_thickness_scale_factor()); | |
| 313 EXPECT_FLOAT_EQ(kIdleThicknessScale, | |
| 314 h_scrollbar_layer_->thumb_thickness_scale_factor()); | |
| 315 EXPECT_TRUE(client_.start_fade().IsCancelled()); | |
| 316 | |
| 317 scrollbar_controller_->Animate(time); | |
| 318 time += kThinningDuration; | |
| 319 scrollbar_controller_->Animate(time); | |
| 320 | |
| 321 EXPECT_FLOAT_EQ(kIdleThicknessScale, | |
| 322 v_scrollbar_layer_->thumb_thickness_scale_factor()); | |
| 323 EXPECT_FLOAT_EQ(kIdleThicknessScale, | |
| 324 h_scrollbar_layer_->thumb_thickness_scale_factor()); | |
| 325 | |
| 326 scrollbar_controller_->DidMouseMove(NearVerticalScrollbarBegin(-1, 0)); | |
| 327 scrollbar_controller_->Animate(time); | |
| 328 time += kThinningDuration; | |
| 329 scrollbar_controller_->Animate(time); | |
| 330 | |
| 331 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); | |
| 332 EXPECT_FLOAT_EQ(kIdleThicknessScale, | |
| 333 h_scrollbar_layer_->thumb_thickness_scale_factor()); | |
| 334 | |
| 335 scrollbar_controller_->DidMouseMove(NearVerticalScrollbarEnd(-1, 0)); | |
| 336 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); | |
| 337 EXPECT_FLOAT_EQ(kIdleThicknessScale, | |
| 338 h_scrollbar_layer_->thumb_thickness_scale_factor()); | |
| 339 EXPECT_TRUE(client_.start_fade().IsCancelled()); | |
| 340 | |
| 341 scrollbar_controller_->Animate(time); | |
| 342 time += kThinningDuration; | |
| 343 scrollbar_controller_->Animate(time); | |
| 344 | |
| 345 EXPECT_FLOAT_EQ(kIdleThicknessScale, | |
| 346 v_scrollbar_layer_->thumb_thickness_scale_factor()); | |
| 347 EXPECT_FLOAT_EQ(kIdleThicknessScale, | |
| 348 h_scrollbar_layer_->thumb_thickness_scale_factor()); | |
| 349 } | |
| 350 | |
| 351 // Scroll content. Move the mouse near the scrollbar thumb and confirm it | |
| 352 // becomes thick. Ensure it remains visible as long as the mouse is near the | |
| 353 // scrollbar. | |
| 264 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, MoveNearAndDontFadeOut) { | 354 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, MoveNearAndDontFadeOut) { |
| 265 base::TimeTicks time; | 355 base::TimeTicks time; |
| 266 time += base::TimeDelta::FromSeconds(1); | 356 time += base::TimeDelta::FromSeconds(1); |
| 267 | 357 |
| 268 scrollbar_controller_->DidScrollBegin(); | 358 scrollbar_controller_->DidScrollBegin(); |
| 269 scrollbar_controller_->DidScrollUpdate(); | 359 scrollbar_controller_->DidScrollUpdate(); |
| 270 scrollbar_controller_->DidScrollEnd(); | 360 scrollbar_controller_->DidScrollEnd(); |
| 271 | 361 |
| 272 // An fade out animation should have been enqueued. | 362 // An fade out animation should have been enqueued. |
| 273 EXPECT_EQ(kFadeDelay, client_.delay()); | 363 EXPECT_EQ(kFadeDelay, client_.delay()); |
| 274 EXPECT_FALSE(client_.start_fade().is_null()); | 364 EXPECT_FALSE(client_.start_fade().is_null()); |
| 275 EXPECT_FALSE(client_.start_fade().IsCancelled()); | 365 EXPECT_FALSE(client_.start_fade().IsCancelled()); |
| 276 | 366 |
| 277 // Now move the mouse near the scrollbar. This should cancel the currently | 367 // Now move the mouse near the vertical scrollbar thumb. This should cancel |
| 278 // queued fading animation and start animating thickness. | 368 // the currently queued fading animation and start animating thickness. |
| 279 scrollbar_controller_->DidMouseMoveNear(VERTICAL, 1); | 369 scrollbar_controller_->DidMouseMove(NearVerticalScrollbarBegin(-1, 0)); |
| 280 ExpectScrollbarsOpacity(1); | 370 ExpectScrollbarsOpacity(1); |
| 281 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 371 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 282 v_scrollbar_layer_->thumb_thickness_scale_factor()); | 372 v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 283 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 373 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 284 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 374 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 285 EXPECT_TRUE(client_.start_fade().IsCancelled()); | 375 EXPECT_TRUE(client_.start_fade().IsCancelled()); |
| 286 | 376 |
| 287 // Vertical scrollbar should become thick. | 377 // Vertical scrollbar should become thick. |
| 288 scrollbar_controller_->Animate(time); | 378 scrollbar_controller_->Animate(time); |
| 289 time += kThinningDuration; | 379 time += kThinningDuration; |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 308 | 398 |
| 309 scrollbar_controller_->DidScrollBegin(); | 399 scrollbar_controller_->DidScrollBegin(); |
| 310 scrollbar_controller_->DidScrollUpdate(); | 400 scrollbar_controller_->DidScrollUpdate(); |
| 311 scrollbar_controller_->DidScrollEnd(); | 401 scrollbar_controller_->DidScrollEnd(); |
| 312 | 402 |
| 313 // An fade out animation should have been enqueued. | 403 // An fade out animation should have been enqueued. |
| 314 EXPECT_EQ(kFadeDelay, client_.delay()); | 404 EXPECT_EQ(kFadeDelay, client_.delay()); |
| 315 EXPECT_FALSE(client_.start_fade().is_null()); | 405 EXPECT_FALSE(client_.start_fade().is_null()); |
| 316 EXPECT_FALSE(client_.start_fade().IsCancelled()); | 406 EXPECT_FALSE(client_.start_fade().IsCancelled()); |
| 317 | 407 |
| 318 // Now move the mouse over the scrollbar. This should cancel the currently | 408 // Now move the mouse over the vertical scrollbar thumb. This should cancel |
| 319 // queued fading animation and start animating thickness. | 409 // the currently queued fading animation and start animating thickness. |
| 320 scrollbar_controller_->DidMouseMoveNear(VERTICAL, 0); | 410 scrollbar_controller_->DidMouseMove(NearVerticalScrollbarBegin(0, 0)); |
| 321 ExpectScrollbarsOpacity(1); | 411 ExpectScrollbarsOpacity(1); |
| 322 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 412 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 323 v_scrollbar_layer_->thumb_thickness_scale_factor()); | 413 v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 324 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 414 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 325 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 415 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 326 EXPECT_TRUE(client_.start_fade().IsCancelled()); | 416 EXPECT_TRUE(client_.start_fade().IsCancelled()); |
| 327 | 417 |
| 328 // Vertical scrollbar should become thick. | 418 // Vertical scrollbar should become thick. |
| 329 scrollbar_controller_->Animate(time); | 419 scrollbar_controller_->Animate(time); |
| 330 time += kThinningDuration; | 420 time += kThinningDuration; |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 349 time += base::TimeDelta::FromSeconds(1); | 439 time += base::TimeDelta::FromSeconds(1); |
| 350 | 440 |
| 351 scrollbar_controller_->DidScrollBegin(); | 441 scrollbar_controller_->DidScrollBegin(); |
| 352 scrollbar_controller_->DidScrollUpdate(); | 442 scrollbar_controller_->DidScrollUpdate(); |
| 353 scrollbar_controller_->DidScrollEnd(); | 443 scrollbar_controller_->DidScrollEnd(); |
| 354 | 444 |
| 355 // An fade out animation should have been enqueued. | 445 // An fade out animation should have been enqueued. |
| 356 EXPECT_EQ(kFadeDelay, client_.delay()); | 446 EXPECT_EQ(kFadeDelay, client_.delay()); |
| 357 EXPECT_FALSE(client_.start_fade().is_null()); | 447 EXPECT_FALSE(client_.start_fade().is_null()); |
| 358 | 448 |
| 359 // Now move the mouse over the scrollbar and capture it. It should become | 449 // Now move the mouse over the vertical scrollbar thumb and capture it. It |
| 360 // thick without need for an animation. | 450 // should become thick without need for an animation. |
| 361 scrollbar_controller_->DidMouseMoveNear(VERTICAL, 0); | 451 scrollbar_controller_->DidMouseMove(NearVerticalScrollbarBegin(0, 0)); |
| 362 scrollbar_controller_->DidMouseDown(); | 452 scrollbar_controller_->DidMouseDown(); |
| 363 ExpectScrollbarsOpacity(1); | 453 ExpectScrollbarsOpacity(1); |
| 364 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); | 454 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 365 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 455 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 366 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 456 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 367 | 457 |
| 368 // The fade out animation should have been cleared or cancelled. | 458 // The fade out animation should have been cleared or cancelled. |
| 369 EXPECT_TRUE(client_.start_fade().is_null() || | 459 EXPECT_TRUE(client_.start_fade().is_null() || |
| 370 client_.start_fade().IsCancelled()); | 460 client_.start_fade().IsCancelled()); |
| 371 } | 461 } |
| 372 | 462 |
| 373 // Make sure a scrollbar captured then move mouse away doesn't try to fade out. | 463 // Make sure a scrollbar captured then move mouse away doesn't try to fade out. |
| 374 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, | 464 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, |
| 375 DontFadeWhileCapturedThenAway) { | 465 DontFadeWhileCapturedThenAway) { |
| 376 base::TimeTicks time; | 466 base::TimeTicks time; |
| 377 time += base::TimeDelta::FromSeconds(1); | 467 time += base::TimeDelta::FromSeconds(1); |
| 378 | 468 |
| 379 scrollbar_controller_->DidScrollBegin(); | 469 scrollbar_controller_->DidScrollBegin(); |
| 380 scrollbar_controller_->DidScrollUpdate(); | 470 scrollbar_controller_->DidScrollUpdate(); |
| 381 scrollbar_controller_->DidScrollEnd(); | 471 scrollbar_controller_->DidScrollEnd(); |
| 382 | 472 |
| 383 // An fade out animation should have been enqueued. | 473 // An fade out animation should have been enqueued. |
| 384 EXPECT_EQ(kFadeDelay, client_.delay()); | 474 EXPECT_EQ(kFadeDelay, client_.delay()); |
| 385 EXPECT_FALSE(client_.start_fade().is_null()); | 475 EXPECT_FALSE(client_.start_fade().is_null()); |
| 386 | 476 |
| 387 // Now move the mouse over the scrollbar and capture it. It should become | 477 // Now move the mouse over the vertical scrollbar and capture it. It should |
| 388 // thick without need for an animation. | 478 // become thick without need for an animation. |
| 389 scrollbar_controller_->DidMouseMoveNear(VERTICAL, 0); | 479 scrollbar_controller_->DidMouseMove(NearVerticalScrollbarBegin(0, 0)); |
| 390 scrollbar_controller_->DidMouseDown(); | 480 scrollbar_controller_->DidMouseDown(); |
| 391 ExpectScrollbarsOpacity(1); | 481 ExpectScrollbarsOpacity(1); |
| 392 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); | 482 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 393 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 483 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 394 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 484 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 395 | 485 |
| 396 // The fade out animation should have been cleared or cancelled. | 486 // The fade out animation should have been cleared or cancelled. |
| 397 EXPECT_TRUE(client_.start_fade().is_null() || | 487 EXPECT_TRUE(client_.start_fade().is_null() || |
| 398 client_.start_fade().IsCancelled()); | 488 client_.start_fade().IsCancelled()); |
| 399 | 489 |
| 400 // Then move mouse away, The fade out animation should have been cleared or | 490 // Then move mouse away, The fade out animation should have been cleared or |
| 401 // cancelled. | 491 // cancelled. |
| 402 scrollbar_controller_->DidMouseMoveNear( | 492 scrollbar_controller_->DidMouseMove( |
| 403 VERTICAL, kDefaultMouseMoveDistanceToTriggerAnimation); | 493 NearVerticalScrollbarBegin(-kMouseMoveDistanceToTriggerExpand, 0)); |
| 404 | 494 |
| 405 EXPECT_TRUE(client_.start_fade().is_null() || | 495 EXPECT_TRUE(client_.start_fade().is_null() || |
| 406 client_.start_fade().IsCancelled()); | 496 client_.start_fade().IsCancelled()); |
| 407 } | 497 } |
| 408 | 498 |
| 409 // Make sure a scrollbar captured after a thickening animation doesn't try to | 499 // Make sure a scrollbar captured after a thickening animation doesn't try to |
| 410 // fade out. | 500 // fade out. |
| 411 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, DontFadeWhileCaptured) { | 501 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, DontFadeWhileCaptured) { |
| 412 base::TimeTicks time; | 502 base::TimeTicks time; |
| 413 time += base::TimeDelta::FromSeconds(1); | 503 time += base::TimeDelta::FromSeconds(1); |
| 414 | 504 |
| 415 scrollbar_controller_->DidScrollBegin(); | 505 scrollbar_controller_->DidScrollBegin(); |
| 416 scrollbar_controller_->DidScrollUpdate(); | 506 scrollbar_controller_->DidScrollUpdate(); |
| 417 scrollbar_controller_->DidScrollEnd(); | 507 scrollbar_controller_->DidScrollEnd(); |
| 418 | 508 |
| 419 // An fade out animation should have been enqueued. | 509 // An fade out animation should have been enqueued. |
| 420 EXPECT_EQ(kFadeDelay, client_.delay()); | 510 EXPECT_EQ(kFadeDelay, client_.delay()); |
| 421 EXPECT_FALSE(client_.start_fade().is_null()); | 511 EXPECT_FALSE(client_.start_fade().is_null()); |
| 422 EXPECT_FALSE(client_.start_fade().IsCancelled()); | 512 EXPECT_FALSE(client_.start_fade().IsCancelled()); |
| 423 | 513 |
| 424 // Now move the mouse over the scrollbar and animate it until it's thick. | 514 // Now move the mouse over the vertical scrollbar thumb and animate it until |
| 425 scrollbar_controller_->DidMouseMoveNear(VERTICAL, 0); | 515 // it's thick. |
| 516 scrollbar_controller_->DidMouseMove(NearVerticalScrollbarBegin(0, 0)); | |
| 426 scrollbar_controller_->Animate(time); | 517 scrollbar_controller_->Animate(time); |
| 427 time += kThinningDuration; | 518 time += kThinningDuration; |
| 428 scrollbar_controller_->Animate(time); | 519 scrollbar_controller_->Animate(time); |
| 429 ExpectScrollbarsOpacity(1); | 520 ExpectScrollbarsOpacity(1); |
| 430 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); | 521 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 431 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 522 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 432 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 523 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 433 | 524 |
| 434 // Since the mouse is over the scrollbar, it should either clear or cancel the | 525 // Since the mouse is over the scrollbar, it should either clear or cancel the |
| 435 // queued fade. | 526 // queued fade. |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 451 | 542 |
| 452 scrollbar_controller_->DidScrollBegin(); | 543 scrollbar_controller_->DidScrollBegin(); |
| 453 scrollbar_controller_->DidScrollUpdate(); | 544 scrollbar_controller_->DidScrollUpdate(); |
| 454 scrollbar_controller_->DidScrollEnd(); | 545 scrollbar_controller_->DidScrollEnd(); |
| 455 | 546 |
| 456 // An fade out animation should have been enqueued. | 547 // An fade out animation should have been enqueued. |
| 457 EXPECT_EQ(kFadeDelay, client_.delay()); | 548 EXPECT_EQ(kFadeDelay, client_.delay()); |
| 458 EXPECT_FALSE(client_.start_fade().is_null()); | 549 EXPECT_FALSE(client_.start_fade().is_null()); |
| 459 EXPECT_FALSE(client_.start_fade().IsCancelled()); | 550 EXPECT_FALSE(client_.start_fade().IsCancelled()); |
| 460 | 551 |
| 461 // Now move the mouse over the scrollbar and capture it. | 552 // Now move the mouse over the vertical scrollbar thumb and capture it. |
| 462 scrollbar_controller_->DidMouseMoveNear(VERTICAL, 0); | 553 scrollbar_controller_->DidMouseMove(NearVerticalScrollbarBegin(0, 0)); |
| 463 scrollbar_controller_->DidMouseDown(); | 554 scrollbar_controller_->DidMouseDown(); |
| 464 ExpectScrollbarsOpacity(1); | 555 ExpectScrollbarsOpacity(1); |
| 465 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); | 556 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 466 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 557 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 467 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 558 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 468 | 559 |
| 469 // Since the mouse is still near the scrollbar, the queued fade should be | 560 // Since the mouse is still near the scrollbar, the queued fade should be |
| 470 // either null or cancelled. | 561 // either null or cancelled. |
| 471 EXPECT_TRUE(client_.start_fade().is_null() || | 562 EXPECT_TRUE(client_.start_fade().is_null() || |
| 472 client_.start_fade().IsCancelled()); | 563 client_.start_fade().IsCancelled()); |
| 473 | 564 |
| 474 // Now move the mouse away from the scrollbar and release it. | 565 // Now move the mouse away from the scrollbar and release it. |
| 475 scrollbar_controller_->DidMouseMoveNear( | 566 scrollbar_controller_->DidMouseMove( |
| 476 VERTICAL, kDefaultMouseMoveDistanceToTriggerAnimation); | 567 NearVerticalScrollbarBegin(-kMouseMoveDistanceToTriggerFadeIn, 0)); |
| 477 scrollbar_controller_->DidMouseUp(); | 568 scrollbar_controller_->DidMouseUp(); |
| 478 | 569 |
| 479 scrollbar_controller_->Animate(time); | 570 scrollbar_controller_->Animate(time); |
| 480 ExpectScrollbarsOpacity(1); | 571 ExpectScrollbarsOpacity(1); |
| 481 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); | 572 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 482 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 573 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 483 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 574 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 484 time += kThinningDuration; | 575 time += kThinningDuration; |
| 485 scrollbar_controller_->Animate(time); | 576 scrollbar_controller_->Animate(time); |
| 486 ExpectScrollbarsOpacity(1); | 577 ExpectScrollbarsOpacity(1); |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 502 | 593 |
| 503 scrollbar_controller_->DidScrollBegin(); | 594 scrollbar_controller_->DidScrollBegin(); |
| 504 scrollbar_controller_->DidScrollUpdate(); | 595 scrollbar_controller_->DidScrollUpdate(); |
| 505 scrollbar_controller_->DidScrollEnd(); | 596 scrollbar_controller_->DidScrollEnd(); |
| 506 | 597 |
| 507 // An fade out animation should have been enqueued. | 598 // An fade out animation should have been enqueued. |
| 508 EXPECT_EQ(kFadeDelay, client_.delay()); | 599 EXPECT_EQ(kFadeDelay, client_.delay()); |
| 509 EXPECT_FALSE(client_.start_fade().is_null()); | 600 EXPECT_FALSE(client_.start_fade().is_null()); |
| 510 EXPECT_FALSE(client_.start_fade().IsCancelled()); | 601 EXPECT_FALSE(client_.start_fade().IsCancelled()); |
| 511 | 602 |
| 512 // Now move the mouse over the scrollbar and capture it. | 603 // Now move the mouse over the vertical scrollbar thumb and capture it. |
| 513 scrollbar_controller_->DidMouseMoveNear(VERTICAL, 0); | 604 scrollbar_controller_->DidMouseMove(NearVerticalScrollbarBegin(0, 0)); |
| 514 scrollbar_controller_->DidMouseDown(); | 605 scrollbar_controller_->DidMouseDown(); |
| 515 ExpectScrollbarsOpacity(1); | 606 ExpectScrollbarsOpacity(1); |
| 516 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); | 607 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 517 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 608 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 518 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 609 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 519 | 610 |
| 520 // Since the mouse is over the scrollbar, the queued fade must be either | 611 // Since the mouse is over the scrollbar, the queued fade must be either |
| 521 // null or cancelled. | 612 // null or cancelled. |
| 522 EXPECT_TRUE(client_.start_fade().is_null() || | 613 EXPECT_TRUE(client_.start_fade().is_null() || |
| 523 client_.start_fade().IsCancelled()); | 614 client_.start_fade().IsCancelled()); |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 549 client_.start_fade().Run(); | 640 client_.start_fade().Run(); |
| 550 | 641 |
| 551 scrollbar_controller_->Animate(time); | 642 scrollbar_controller_->Animate(time); |
| 552 ExpectScrollbarsOpacity(1); | 643 ExpectScrollbarsOpacity(1); |
| 553 | 644 |
| 554 // Proceed half way through the fade out animation. | 645 // Proceed half way through the fade out animation. |
| 555 time += kFadeDuration / 2; | 646 time += kFadeDuration / 2; |
| 556 scrollbar_controller_->Animate(time); | 647 scrollbar_controller_->Animate(time); |
| 557 ExpectScrollbarsOpacity(.5f); | 648 ExpectScrollbarsOpacity(.5f); |
| 558 | 649 |
| 559 // Now move the mouse near the scrollbar. It should reset opacity to 1 | 650 // Now move the mouse near the vertical scrollbar thumb. It should reset |
| 560 // instantly and start animating to thick. | 651 // opacity to 1 instantly and start animating to thick. |
| 561 scrollbar_controller_->DidMouseMoveNear(VERTICAL, 1); | 652 scrollbar_controller_->DidMouseMove(NearVerticalScrollbarBegin(0, 0)); |
| 562 ExpectScrollbarsOpacity(1); | 653 ExpectScrollbarsOpacity(1); |
| 563 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 654 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 564 v_scrollbar_layer_->thumb_thickness_scale_factor()); | 655 v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 565 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 656 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 566 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 657 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 567 | 658 |
| 568 scrollbar_controller_->Animate(time); | 659 scrollbar_controller_->Animate(time); |
| 569 time += kThinningDuration; | 660 time += kThinningDuration; |
| 570 scrollbar_controller_->Animate(time); | 661 scrollbar_controller_->Animate(time); |
| 571 ExpectScrollbarsOpacity(1); | 662 ExpectScrollbarsOpacity(1); |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 588 EXPECT_FALSE(client_.start_fade().IsCancelled()); | 679 EXPECT_FALSE(client_.start_fade().IsCancelled()); |
| 589 client_.start_fade().Run(); | 680 client_.start_fade().Run(); |
| 590 scrollbar_controller_->Animate(time); | 681 scrollbar_controller_->Animate(time); |
| 591 ExpectScrollbarsOpacity(1); | 682 ExpectScrollbarsOpacity(1); |
| 592 | 683 |
| 593 // Fade the scrollbar out completely. | 684 // Fade the scrollbar out completely. |
| 594 time += kFadeDuration; | 685 time += kFadeDuration; |
| 595 scrollbar_controller_->Animate(time); | 686 scrollbar_controller_->Animate(time); |
| 596 ExpectScrollbarsOpacity(0); | 687 ExpectScrollbarsOpacity(0); |
| 597 | 688 |
| 598 // Move mouse over the scrollbar. It shouldn't thicken the scrollbar since | 689 // Move mouse over the vertical scrollbar thumb. It shouldn't thicken the |
| 599 // it's completely faded out. | 690 // scrollbar since it's completely faded out. |
| 600 scrollbar_controller_->DidMouseMoveNear(VERTICAL, 0); | 691 scrollbar_controller_->DidMouseMove(NearVerticalScrollbarBegin(0, 0)); |
| 601 scrollbar_controller_->Animate(time); | 692 scrollbar_controller_->Animate(time); |
| 602 time += kThinningDuration; | 693 time += kThinningDuration; |
| 603 scrollbar_controller_->Animate(time); | 694 scrollbar_controller_->Animate(time); |
| 604 ExpectScrollbarsOpacity(0); | 695 ExpectScrollbarsOpacity(0); |
| 605 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); | 696 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 606 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 697 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 607 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 698 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 608 | 699 |
| 609 client_.start_fade().Reset(); | 700 client_.start_fade().Reset(); |
| 610 | 701 |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 625 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 716 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 626 EXPECT_TRUE(client_.start_fade().is_null()); | 717 EXPECT_TRUE(client_.start_fade().is_null()); |
| 627 } | 718 } |
| 628 | 719 |
| 629 // Initiate a scroll when the pointer is already near the scrollbar. It should | 720 // Initiate a scroll when the pointer is already near the scrollbar. It should |
| 630 // appear thick and remain thick. | 721 // appear thick and remain thick. |
| 631 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, ScrollWithMouseNear) { | 722 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, ScrollWithMouseNear) { |
| 632 base::TimeTicks time; | 723 base::TimeTicks time; |
| 633 time += base::TimeDelta::FromSeconds(1); | 724 time += base::TimeDelta::FromSeconds(1); |
| 634 | 725 |
| 635 scrollbar_controller_->DidMouseMoveNear(VERTICAL, 1); | 726 scrollbar_controller_->DidMouseMove(NearVerticalScrollbarBegin(-1, 0)); |
| 636 scrollbar_controller_->Animate(time); | 727 scrollbar_controller_->Animate(time); |
| 637 time += kThinningDuration; | 728 time += kThinningDuration; |
| 638 | 729 |
| 639 // Since the scrollbar isn't visible yet (because we haven't scrolled), we | 730 // Since the scrollbar isn't visible yet (because we haven't scrolled), we |
| 640 // shouldn't have applied the thickening. | 731 // shouldn't have applied the thickening. |
| 641 scrollbar_controller_->Animate(time); | 732 scrollbar_controller_->Animate(time); |
| 642 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); | 733 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 643 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 734 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 644 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 735 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 645 | 736 |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 799 // moved away. | 890 // moved away. |
| 800 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, MouseNearEach) { | 891 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, MouseNearEach) { |
| 801 base::TimeTicks time; | 892 base::TimeTicks time; |
| 802 time += base::TimeDelta::FromSeconds(1); | 893 time += base::TimeDelta::FromSeconds(1); |
| 803 | 894 |
| 804 // Scroll to make the scrollbars visible. | 895 // Scroll to make the scrollbars visible. |
| 805 scrollbar_controller_->DidScrollBegin(); | 896 scrollbar_controller_->DidScrollBegin(); |
| 806 scrollbar_controller_->DidScrollUpdate(); | 897 scrollbar_controller_->DidScrollUpdate(); |
| 807 scrollbar_controller_->DidScrollEnd(); | 898 scrollbar_controller_->DidScrollEnd(); |
| 808 | 899 |
| 809 // Near vertical scrollbar | 900 // Near vertical scrollbar. |
| 810 scrollbar_controller_->DidMouseMoveNear(VERTICAL, 1); | 901 scrollbar_controller_->DidMouseMove(NearVerticalScrollbarBegin(-1, 0)); |
| 811 scrollbar_controller_->Animate(time); | 902 scrollbar_controller_->Animate(time); |
| 812 ExpectScrollbarsOpacity(1); | 903 ExpectScrollbarsOpacity(1); |
| 813 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 904 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 814 v_scrollbar_layer_->thumb_thickness_scale_factor()); | 905 v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 815 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 906 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 816 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 907 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 817 | 908 |
| 818 // Should animate to thickened. | 909 // Should animate to thickened. |
| 819 time += kThinningDuration; | 910 time += kThinningDuration; |
| 820 scrollbar_controller_->Animate(time); | 911 scrollbar_controller_->Animate(time); |
| 821 ExpectScrollbarsOpacity(1); | 912 ExpectScrollbarsOpacity(1); |
| 822 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); | 913 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 823 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 914 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 824 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 915 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 825 | 916 |
| 826 // Subsequent moves within the nearness threshold should not change anything. | 917 // Subsequent moves within the nearness threshold should not change anything. |
| 827 scrollbar_controller_->DidMouseMoveNear(VERTICAL, 2); | 918 scrollbar_controller_->DidMouseMove(NearVerticalScrollbarBegin(-2, 0)); |
| 828 scrollbar_controller_->Animate(time); | 919 scrollbar_controller_->Animate(time); |
| 829 time += base::TimeDelta::FromSeconds(10); | 920 time += base::TimeDelta::FromSeconds(10); |
| 830 scrollbar_controller_->Animate(time); | 921 scrollbar_controller_->Animate(time); |
| 831 ExpectScrollbarsOpacity(1); | 922 ExpectScrollbarsOpacity(1); |
| 832 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); | 923 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 833 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 924 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 834 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 925 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 835 | 926 |
| 836 // Now move away from bar. | 927 // Now move away from bar. |
| 837 scrollbar_controller_->DidMouseMoveNear( | 928 scrollbar_controller_->DidMouseMove( |
| 838 VERTICAL, kDefaultMouseMoveDistanceToTriggerAnimation); | 929 NearVerticalScrollbarBegin(-kMouseMoveDistanceToTriggerExpand, 0)); |
| 839 scrollbar_controller_->Animate(time); | 930 scrollbar_controller_->Animate(time); |
| 840 time += kThinningDuration; | 931 time += kThinningDuration; |
| 841 scrollbar_controller_->Animate(time); | 932 scrollbar_controller_->Animate(time); |
| 842 ExpectScrollbarsOpacity(1); | 933 ExpectScrollbarsOpacity(1); |
| 843 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 934 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 844 v_scrollbar_layer_->thumb_thickness_scale_factor()); | 935 v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 845 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 936 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 846 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 937 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 847 | 938 |
| 848 // Near horizontal scrollbar | 939 // Near horizontal scrollbar |
| 849 scrollbar_controller_->DidMouseMoveNear(HORIZONTAL, 2); | 940 scrollbar_controller_->DidMouseMove(NearHorizontalScrollbarBegin(0, -1)); |
| 850 scrollbar_controller_->Animate(time); | 941 scrollbar_controller_->Animate(time); |
| 851 ExpectScrollbarsOpacity(1); | 942 ExpectScrollbarsOpacity(1); |
| 852 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 943 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 853 v_scrollbar_layer_->thumb_thickness_scale_factor()); | 944 v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 854 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 945 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 855 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 946 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 856 | 947 |
| 857 // Should animate to thickened. | 948 // Should animate to thickened. |
| 858 time += kThinningDuration; | 949 time += kThinningDuration; |
| 859 scrollbar_controller_->Animate(time); | 950 scrollbar_controller_->Animate(time); |
| 860 ExpectScrollbarsOpacity(1); | 951 ExpectScrollbarsOpacity(1); |
| 861 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 952 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 862 v_scrollbar_layer_->thumb_thickness_scale_factor()); | 953 v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 863 EXPECT_FLOAT_EQ(1, h_scrollbar_layer_->thumb_thickness_scale_factor()); | 954 EXPECT_FLOAT_EQ(1, h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 864 | 955 |
| 865 // Subsequent moves within the nearness threshold should not change anything. | 956 // Subsequent moves within the nearness threshold should not change anything. |
| 866 scrollbar_controller_->DidMouseMoveNear(HORIZONTAL, 1); | 957 scrollbar_controller_->DidMouseMove(NearHorizontalScrollbarBegin(0, -2)); |
| 867 scrollbar_controller_->Animate(time); | 958 scrollbar_controller_->Animate(time); |
| 868 time += base::TimeDelta::FromSeconds(10); | 959 time += base::TimeDelta::FromSeconds(10); |
| 869 scrollbar_controller_->Animate(time); | 960 scrollbar_controller_->Animate(time); |
| 870 ExpectScrollbarsOpacity(1); | 961 ExpectScrollbarsOpacity(1); |
| 871 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 962 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 872 v_scrollbar_layer_->thumb_thickness_scale_factor()); | 963 v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 873 EXPECT_FLOAT_EQ(1, h_scrollbar_layer_->thumb_thickness_scale_factor()); | 964 EXPECT_FLOAT_EQ(1, h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 874 | 965 |
| 875 // Now move away from bar. | 966 // Now move away from bar. |
| 876 scrollbar_controller_->DidMouseMoveNear( | 967 scrollbar_controller_->DidMouseMove( |
| 877 HORIZONTAL, kDefaultMouseMoveDistanceToTriggerAnimation); | 968 NearHorizontalScrollbarBegin(0, -kMouseMoveDistanceToTriggerExpand)); |
| 878 scrollbar_controller_->Animate(time); | 969 scrollbar_controller_->Animate(time); |
| 879 time += kThinningDuration; | 970 time += kThinningDuration; |
| 880 scrollbar_controller_->Animate(time); | 971 scrollbar_controller_->Animate(time); |
| 881 ExpectScrollbarsOpacity(1); | 972 ExpectScrollbarsOpacity(1); |
| 882 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 973 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 883 v_scrollbar_layer_->thumb_thickness_scale_factor()); | 974 v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 884 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 975 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 885 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 976 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 886 | 977 |
| 887 // An fade out animation should have been enqueued. | 978 // An fade out animation should have been enqueued. |
| 888 EXPECT_FALSE(client_.start_fade().is_null()); | 979 EXPECT_FALSE(client_.start_fade().is_null()); |
| 889 EXPECT_EQ(kFadeDelay, client_.delay()); | 980 EXPECT_EQ(kFadeDelay, client_.delay()); |
| 890 } | 981 } |
| 891 | 982 |
| 892 // Move mouse near both scrollbars at the same time. | 983 // Move mouse near both scrollbars at the same time. |
| 893 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, MouseNearBoth) { | 984 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, MouseNearBoth) { |
| 894 base::TimeTicks time; | 985 base::TimeTicks time; |
| 895 time += base::TimeDelta::FromSeconds(1); | 986 time += base::TimeDelta::FromSeconds(1); |
| 896 | 987 |
| 897 // Scroll to make the scrollbars visible. | 988 // Scroll to make the scrollbars visible. |
| 898 scrollbar_controller_->DidScrollBegin(); | 989 scrollbar_controller_->DidScrollBegin(); |
| 899 scrollbar_controller_->DidScrollUpdate(); | 990 scrollbar_controller_->DidScrollUpdate(); |
| 900 scrollbar_controller_->DidScrollEnd(); | 991 scrollbar_controller_->DidScrollEnd(); |
| 901 | 992 |
| 993 // Move scrollbar thumb to the end of track. | |
| 994 v_scrollbar_layer_->SetCurrentPos(100); | |
| 995 h_scrollbar_layer_->SetCurrentPos(100); | |
| 996 | |
| 902 // Near both Scrollbar | 997 // Near both Scrollbar |
| 903 scrollbar_controller_->DidMouseMoveNear(VERTICAL, 1); | 998 scrollbar_controller_->DidMouseMove(NearVerticalScrollbarEnd(-1, -1)); |
| 904 scrollbar_controller_->DidMouseMoveNear(HORIZONTAL, 1); | |
| 905 scrollbar_controller_->Animate(time); | 999 scrollbar_controller_->Animate(time); |
| 906 ExpectScrollbarsOpacity(1); | 1000 ExpectScrollbarsOpacity(1); |
| 907 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 1001 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 908 v_scrollbar_layer_->thumb_thickness_scale_factor()); | 1002 v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 909 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 1003 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 910 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 1004 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 911 | 1005 |
| 912 // Should animate to thickened. | 1006 // Should animate to thickened. |
| 913 time += kThinningDuration; | 1007 time += kThinningDuration; |
| 914 scrollbar_controller_->Animate(time); | 1008 scrollbar_controller_->Animate(time); |
| 915 ExpectScrollbarsOpacity(1); | 1009 ExpectScrollbarsOpacity(1); |
| 916 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); | 1010 EXPECT_FLOAT_EQ(1, v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 917 EXPECT_FLOAT_EQ(1, h_scrollbar_layer_->thumb_thickness_scale_factor()); | 1011 EXPECT_FLOAT_EQ(1, h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 918 } | 1012 } |
| 919 | 1013 |
| 920 // Move mouse from one to the other scrollbar before animation is finished, then | 1014 // Move mouse from one to the other scrollbar before animation is finished, then |
| 921 // away before animation finished. | 1015 // away before animation finished. |
| 922 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, | 1016 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, |
| 923 MouseNearOtherBeforeAnimationFinished) { | 1017 MouseNearOtherBeforeAnimationFinished) { |
| 924 base::TimeTicks time; | 1018 base::TimeTicks time; |
| 925 time += base::TimeDelta::FromSeconds(1); | 1019 time += base::TimeDelta::FromSeconds(1); |
| 926 | 1020 |
| 927 // Scroll to make the scrollbars visible. | 1021 // Scroll to make the scrollbars visible. |
| 928 scrollbar_controller_->DidScrollBegin(); | 1022 scrollbar_controller_->DidScrollBegin(); |
| 929 scrollbar_controller_->DidScrollUpdate(); | 1023 scrollbar_controller_->DidScrollUpdate(); |
| 930 scrollbar_controller_->DidScrollEnd(); | 1024 scrollbar_controller_->DidScrollEnd(); |
| 931 | 1025 |
| 932 // Near vertical scrollbar. | 1026 // Near vertical scrollbar. |
| 933 scrollbar_controller_->DidMouseMoveNear(VERTICAL, 1); | 1027 scrollbar_controller_->DidMouseMove(NearVerticalScrollbarBegin(-1, 0)); |
| 934 scrollbar_controller_->Animate(time); | 1028 scrollbar_controller_->Animate(time); |
| 935 ExpectScrollbarsOpacity(1); | 1029 ExpectScrollbarsOpacity(1); |
| 936 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 1030 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 937 v_scrollbar_layer_->thumb_thickness_scale_factor()); | 1031 v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 938 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 1032 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 939 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 1033 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 940 | 1034 |
| 941 // Vertical scrollbar animate to half thickened. | 1035 // Vertical scrollbar animate to half thickened. |
| 942 time += kThinningDuration / 2; | 1036 time += kThinningDuration / 2; |
| 943 scrollbar_controller_->Animate(time); | 1037 scrollbar_controller_->Animate(time); |
| 944 ExpectScrollbarsOpacity(1); | 1038 ExpectScrollbarsOpacity(1); |
| 945 EXPECT_FLOAT_EQ(kIdleThicknessScale + (1.0f - kIdleThicknessScale) / 2, | 1039 EXPECT_FLOAT_EQ(kIdleThicknessScale + (1.0f - kIdleThicknessScale) / 2, |
| 946 v_scrollbar_layer_->thumb_thickness_scale_factor()); | 1040 v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 947 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 1041 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 948 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 1042 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 949 | 1043 |
| 950 // Away vertical scrollbar and near horizontal scrollbar. | 1044 // Away vertical scrollbar and near horizontal scrollbar. |
| 951 scrollbar_controller_->DidMouseMoveNear( | 1045 scrollbar_controller_->DidMouseMove(gfx::PointF(0, 0)); |
| 952 VERTICAL, kDefaultMouseMoveDistanceToTriggerAnimation); | 1046 scrollbar_controller_->DidMouseMove(NearHorizontalScrollbarBegin(0, -1)); |
| 953 scrollbar_controller_->DidMouseMoveNear(HORIZONTAL, 1); | |
| 954 scrollbar_controller_->Animate(time); | 1047 scrollbar_controller_->Animate(time); |
| 955 | 1048 |
| 956 // Vertical scrollbar animate to thin. horizontal scrollbar animate to | 1049 // Vertical scrollbar animate to thin. horizontal scrollbar animate to |
| 957 // thickened. | 1050 // thickened. |
| 958 time += kThinningDuration; | 1051 time += kThinningDuration; |
| 959 scrollbar_controller_->Animate(time); | 1052 scrollbar_controller_->Animate(time); |
| 960 ExpectScrollbarsOpacity(1); | 1053 ExpectScrollbarsOpacity(1); |
| 961 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 1054 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 962 v_scrollbar_layer_->thumb_thickness_scale_factor()); | 1055 v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 963 EXPECT_FLOAT_EQ(1, h_scrollbar_layer_->thumb_thickness_scale_factor()); | 1056 EXPECT_FLOAT_EQ(1, h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 964 | 1057 |
| 965 // Away horizontal scrollbar. | 1058 // Away horizontal scrollbar. |
| 966 scrollbar_controller_->DidMouseMoveNear( | 1059 scrollbar_controller_->DidMouseMove(gfx::PointF(0, 0)); |
| 967 HORIZONTAL, kDefaultMouseMoveDistanceToTriggerAnimation); | |
| 968 scrollbar_controller_->Animate(time); | 1060 scrollbar_controller_->Animate(time); |
| 969 | 1061 |
| 970 // Horizontal scrollbar animate to thin. | 1062 // Horizontal scrollbar animate to thin. |
| 971 time += kThinningDuration; | 1063 time += kThinningDuration; |
| 972 scrollbar_controller_->Animate(time); | 1064 scrollbar_controller_->Animate(time); |
| 973 ExpectScrollbarsOpacity(1); | 1065 ExpectScrollbarsOpacity(1); |
| 974 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 1066 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 975 v_scrollbar_layer_->thumb_thickness_scale_factor()); | 1067 v_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 976 EXPECT_FLOAT_EQ(kIdleThicknessScale, | 1068 EXPECT_FLOAT_EQ(kIdleThicknessScale, |
| 977 h_scrollbar_layer_->thumb_thickness_scale_factor()); | 1069 h_scrollbar_layer_->thumb_thickness_scale_factor()); |
| 978 | 1070 |
| 979 // An fade out animation should have been enqueued. | 1071 // An fade out animation should have been enqueued. |
| 980 EXPECT_FALSE(client_.start_fade().is_null()); | 1072 EXPECT_FALSE(client_.start_fade().is_null()); |
| 981 EXPECT_EQ(kFadeDelay, client_.delay()); | 1073 EXPECT_EQ(kFadeDelay, client_.delay()); |
| 982 } | 1074 } |
| 983 | 1075 |
| 984 // Ensure we have a delay fadeout animation after mouse leave without a mouse | 1076 // Ensure we have a delay fadeout animation after mouse leave without a mouse |
| 985 // move. | 1077 // move. |
| 986 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, MouseLeaveFadeOut) { | 1078 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, MouseLeaveFadeOut) { |
| 987 base::TimeTicks time; | 1079 base::TimeTicks time; |
| 988 time += base::TimeDelta::FromSeconds(1); | 1080 time += base::TimeDelta::FromSeconds(1); |
| 989 | 1081 |
| 990 // Move mouse near scrollbar. | 1082 // Move mouse near scrollbar. |
| 991 scrollbar_controller_->DidMouseMoveNear(VERTICAL, 1); | 1083 scrollbar_controller_->DidMouseMove(NearVerticalScrollbarBegin(-1, 0)); |
| 992 | 1084 |
| 993 // Scroll to make the scrollbars visible. | 1085 // Scroll to make the scrollbars visible. |
| 994 scrollbar_controller_->DidScrollBegin(); | 1086 scrollbar_controller_->DidScrollBegin(); |
| 995 scrollbar_controller_->DidScrollUpdate(); | 1087 scrollbar_controller_->DidScrollUpdate(); |
| 996 scrollbar_controller_->DidScrollEnd(); | 1088 scrollbar_controller_->DidScrollEnd(); |
| 997 | 1089 |
| 998 // Should not have delay fadeout animation. | 1090 // Should not have delay fadeout animation. |
| 999 EXPECT_TRUE(client_.start_fade().is_null() || | 1091 EXPECT_TRUE(client_.start_fade().is_null() || |
| 1000 client_.start_fade().IsCancelled()); | 1092 client_.start_fade().IsCancelled()); |
| 1001 | 1093 |
| 1002 // Mouse leave. | 1094 // Mouse leave. |
| 1003 scrollbar_controller_->DidMouseLeave(); | 1095 scrollbar_controller_->DidMouseLeave(); |
| 1004 | 1096 |
| 1005 // An fade out animation should have been enqueued. | 1097 // An fade out animation should have been enqueued. |
| 1006 EXPECT_FALSE(client_.start_fade().is_null()); | 1098 EXPECT_FALSE(client_.start_fade().is_null()); |
| 1007 EXPECT_EQ(kFadeDelay, client_.delay()); | 1099 EXPECT_EQ(kFadeDelay, client_.delay()); |
| 1008 } | 1100 } |
| 1009 | 1101 |
| 1010 // Scrollbars should schedule a delay fade in when mouse hover the show | 1102 // Scrollbars should schedule a delay fade in when mouse hover the show |
| 1011 // scrollbar region of a hidden scrollbar. | 1103 // scrollbar region of a hidden scrollbar. |
| 1012 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, BasicMouseHoverFadeIn) { | 1104 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, BasicMouseHoverFadeIn) { |
| 1013 base::TimeTicks time; | 1105 base::TimeTicks time; |
| 1014 time += base::TimeDelta::FromSeconds(1); | 1106 time += base::TimeDelta::FromSeconds(1); |
| 1015 | 1107 |
| 1016 // Move mouse hover the fade in scrollbar region of scrollbar. | 1108 // Move mouse hover the fade in scrollbar region of scrollbar. |
| 1017 scrollbar_controller_->DidMouseMoveNear( | 1109 scrollbar_controller_->DidMouseMove( |
| 1018 VERTICAL, kMouseMoveDistanceToTriggerFadeIn - 1); | 1110 NearVerticalScrollbarBegin(-kMouseMoveDistanceToTriggerFadeIn + 1, 0)); |
| 1019 | 1111 |
| 1020 // An fade in animation should have been enqueued. | 1112 // An fade in animation should have been enqueued. |
| 1021 EXPECT_FALSE(client_.start_fade().is_null()); | 1113 EXPECT_FALSE(client_.start_fade().is_null()); |
| 1022 EXPECT_FALSE(client_.start_fade().IsCancelled()); | 1114 EXPECT_FALSE(client_.start_fade().IsCancelled()); |
| 1023 EXPECT_EQ(kFadeDelay, client_.delay()); | 1115 EXPECT_EQ(kFadeDelay, client_.delay()); |
| 1024 | 1116 |
| 1025 // Play the delay animation. | 1117 // Play the delay animation. |
| 1026 client_.start_fade().Run(); | 1118 client_.start_fade().Run(); |
| 1027 EXPECT_TRUE(client_.start_fade().IsCancelled()); | 1119 EXPECT_TRUE(client_.start_fade().IsCancelled()); |
| 1028 | 1120 |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 1041 } | 1133 } |
| 1042 | 1134 |
| 1043 // Scrollbars should not schedule a new delay fade in when the mouse hovers | 1135 // Scrollbars should not schedule a new delay fade in when the mouse hovers |
| 1044 // inside a scrollbar already scheduled a delay fade in. | 1136 // inside a scrollbar already scheduled a delay fade in. |
| 1045 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, | 1137 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, |
| 1046 MouseHoverScrollbarAndMoveInside) { | 1138 MouseHoverScrollbarAndMoveInside) { |
| 1047 base::TimeTicks time; | 1139 base::TimeTicks time; |
| 1048 time += base::TimeDelta::FromSeconds(1); | 1140 time += base::TimeDelta::FromSeconds(1); |
| 1049 | 1141 |
| 1050 // Move mouse hover the fade in scrollbar region of scrollbar. | 1142 // Move mouse hover the fade in scrollbar region of scrollbar. |
| 1051 scrollbar_controller_->DidMouseMoveNear( | 1143 scrollbar_controller_->DidMouseMove( |
| 1052 VERTICAL, kMouseMoveDistanceToTriggerFadeIn - 1); | 1144 NearVerticalScrollbarBegin(-kMouseMoveDistanceToTriggerFadeIn + 1, 0)); |
| 1053 | 1145 |
| 1054 // An fade in animation should have been enqueued. | 1146 // An fade in animation should have been enqueued. |
| 1055 EXPECT_FALSE(client_.start_fade().is_null()); | 1147 EXPECT_FALSE(client_.start_fade().is_null()); |
| 1056 EXPECT_FALSE(client_.start_fade().IsCancelled()); | 1148 EXPECT_FALSE(client_.start_fade().IsCancelled()); |
| 1057 EXPECT_EQ(kFadeDelay, client_.delay()); | 1149 EXPECT_EQ(kFadeDelay, client_.delay()); |
| 1058 | 1150 |
| 1059 base::Closure& fade = client_.start_fade(); | 1151 base::Closure& fade = client_.start_fade(); |
| 1060 // Move mouse still hover the fade in scrollbar region of scrollbar should not | 1152 // Move mouse still hover the fade in scrollbar region of scrollbar should not |
| 1061 // post a new fade in. | 1153 // post a new fade in. |
| 1062 scrollbar_controller_->DidMouseMoveNear( | 1154 scrollbar_controller_->DidMouseMove( |
| 1063 VERTICAL, kMouseMoveDistanceToTriggerFadeIn - 2); | 1155 NearVerticalScrollbarBegin(-kMouseMoveDistanceToTriggerFadeIn + 2, 0)); |
| 1064 | 1156 |
| 1065 EXPECT_TRUE(fade.Equals(client_.start_fade())); | 1157 EXPECT_TRUE(fade.Equals(client_.start_fade())); |
| 1066 } | 1158 } |
| 1067 | 1159 |
| 1068 // Scrollbars should cancel delay fade in when mouse hover hidden scrollbar then | 1160 // Scrollbars should cancel delay fade in when mouse hover hidden scrollbar then |
| 1069 // move far away. | 1161 // move far away. |
| 1070 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, | 1162 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, |
| 1071 MouseHoverThenOutShouldCancelFadeIn) { | 1163 MouseHoverThenOutShouldCancelFadeIn) { |
| 1072 base::TimeTicks time; | 1164 base::TimeTicks time; |
| 1073 time += base::TimeDelta::FromSeconds(1); | 1165 time += base::TimeDelta::FromSeconds(1); |
| 1074 | 1166 |
| 1075 // Move mouse hover the fade in scrollbar region of scrollbar. | 1167 // Move mouse hover the fade in scrollbar region of scrollbar. |
| 1076 scrollbar_controller_->DidMouseMoveNear( | 1168 scrollbar_controller_->DidMouseMove( |
| 1077 VERTICAL, kMouseMoveDistanceToTriggerFadeIn - 1); | 1169 NearVerticalScrollbarBegin(-kMouseMoveDistanceToTriggerFadeIn + 1, 0)); |
| 1078 | 1170 |
| 1079 // An fade in animation should have been enqueued. | 1171 // An fade in animation should have been enqueued. |
| 1080 EXPECT_FALSE(client_.start_fade().is_null()); | 1172 EXPECT_FALSE(client_.start_fade().is_null()); |
| 1081 EXPECT_FALSE(client_.start_fade().IsCancelled()); | 1173 EXPECT_FALSE(client_.start_fade().IsCancelled()); |
| 1082 EXPECT_EQ(kFadeDelay, client_.delay()); | 1174 EXPECT_EQ(kFadeDelay, client_.delay()); |
| 1083 | 1175 |
| 1084 // Move mouse far away,delay fade in should be canceled. | 1176 // Move mouse far away,delay fade in should be canceled. |
| 1085 scrollbar_controller_->DidMouseMoveNear(VERTICAL, | 1177 scrollbar_controller_->DidMouseMove( |
| 1086 kMouseMoveDistanceToTriggerFadeIn); | 1178 NearVerticalScrollbarBegin(-kMouseMoveDistanceToTriggerFadeIn, 0)); |
| 1179 | |
| 1087 EXPECT_TRUE(client_.start_fade().is_null() || | 1180 EXPECT_TRUE(client_.start_fade().is_null() || |
| 1088 client_.start_fade().IsCancelled()); | 1181 client_.start_fade().IsCancelled()); |
| 1089 } | 1182 } |
| 1090 | 1183 |
| 1091 // Scrollbars should cancel delay fade in when mouse hover hidden scrollbar then | 1184 // Scrollbars should cancel delay fade in when mouse hover hidden scrollbar then |
| 1092 // move out of window. | 1185 // move out of window. |
| 1093 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, | 1186 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, |
| 1094 MouseHoverThenLeaveShouldCancelShowThenEnterShouldFadeIn) { | 1187 MouseHoverThenLeaveShouldCancelShowThenEnterShouldFadeIn) { |
| 1095 base::TimeTicks time; | 1188 base::TimeTicks time; |
| 1096 time += base::TimeDelta::FromSeconds(1); | 1189 time += base::TimeDelta::FromSeconds(1); |
| 1097 | 1190 |
| 1098 // Move mouse hover the fade in scrollbar region of scrollbar. | 1191 // Move mouse hover the fade in scrollbar region of scrollbar. |
| 1099 scrollbar_controller_->DidMouseMoveNear( | 1192 scrollbar_controller_->DidMouseMove( |
| 1100 VERTICAL, kMouseMoveDistanceToTriggerFadeIn - 1); | 1193 NearVerticalScrollbarBegin(-kMouseMoveDistanceToTriggerFadeIn + 1, 0)); |
| 1101 | 1194 |
| 1102 // An fade in animation should have been enqueued. | 1195 // An fade in animation should have been enqueued. |
| 1103 EXPECT_FALSE(client_.start_fade().is_null()); | 1196 EXPECT_FALSE(client_.start_fade().is_null()); |
| 1104 EXPECT_FALSE(client_.start_fade().IsCancelled()); | 1197 EXPECT_FALSE(client_.start_fade().IsCancelled()); |
| 1105 EXPECT_EQ(kFadeDelay, client_.delay()); | 1198 EXPECT_EQ(kFadeDelay, client_.delay()); |
| 1106 | 1199 |
| 1107 // Move mouse out of window,delay fade in should be canceled. | 1200 // Move mouse out of window,delay fade in should be canceled. |
| 1108 scrollbar_controller_->DidMouseLeave(); | 1201 scrollbar_controller_->DidMouseLeave(); |
| 1109 EXPECT_TRUE(client_.start_fade().is_null() || | 1202 EXPECT_TRUE(client_.start_fade().is_null() || |
| 1110 client_.start_fade().IsCancelled()); | 1203 client_.start_fade().IsCancelled()); |
| 1111 | 1204 |
| 1112 // Move mouse hover the fade in scrollbar region of scrollbar. | 1205 // Move mouse hover the fade in scrollbar region of scrollbar. |
| 1113 scrollbar_controller_->DidMouseMoveNear( | 1206 scrollbar_controller_->DidMouseMove( |
| 1114 VERTICAL, kMouseMoveDistanceToTriggerFadeIn - 1); | 1207 NearVerticalScrollbarBegin(-kMouseMoveDistanceToTriggerFadeIn + 1, 0)); |
| 1115 | 1208 |
| 1116 // An fade in animation should have been enqueued. | 1209 // An fade in animation should have been enqueued. |
| 1117 EXPECT_FALSE(client_.start_fade().is_null()); | 1210 EXPECT_FALSE(client_.start_fade().is_null()); |
| 1118 EXPECT_FALSE(client_.start_fade().IsCancelled()); | 1211 EXPECT_FALSE(client_.start_fade().IsCancelled()); |
| 1119 EXPECT_EQ(kFadeDelay, client_.delay()); | 1212 EXPECT_EQ(kFadeDelay, client_.delay()); |
| 1120 | 1213 |
| 1121 // Play the delay animation. | 1214 // Play the delay animation. |
| 1122 client_.start_fade().Run(); | 1215 client_.start_fade().Run(); |
| 1123 EXPECT_TRUE(client_.start_fade().IsCancelled()); | 1216 EXPECT_TRUE(client_.start_fade().IsCancelled()); |
| 1124 | 1217 |
| (...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1616 EXPECT_FLOAT_EQ(1, scrollbar_layer_->Opacity()); | 1709 EXPECT_FLOAT_EQ(1, scrollbar_layer_->Opacity()); |
| 1617 | 1710 |
| 1618 time += base::TimeDelta::FromSeconds(1); | 1711 time += base::TimeDelta::FromSeconds(1); |
| 1619 scrollbar_controller_->DidScrollEnd(); | 1712 scrollbar_controller_->DidScrollEnd(); |
| 1620 EXPECT_FALSE(did_request_animate_); | 1713 EXPECT_FALSE(did_request_animate_); |
| 1621 EXPECT_FLOAT_EQ(1, scrollbar_layer_->Opacity()); | 1714 EXPECT_FLOAT_EQ(1, scrollbar_layer_->Opacity()); |
| 1622 } | 1715 } |
| 1623 | 1716 |
| 1624 } // namespace | 1717 } // namespace |
| 1625 } // namespace cc | 1718 } // namespace cc |
| OLD | NEW |