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