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