Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Side by Side Diff: cc/input/scrollbar_animation_controller_unittest.cc

Issue 2838053002: Remove resize fade delay plumbing. (Closed)
Patch Set: rebase Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/input/scrollbar_animation_controller.cc ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 : host_impl_(&task_runner_provider_, &task_graph_runner_), 64 : host_impl_(&task_runner_provider_, &task_graph_runner_),
65 client_(&host_impl_) {} 65 client_(&host_impl_) {}
66 66
67 void ExpectScrollbarsOpacity(float opacity) { 67 void ExpectScrollbarsOpacity(float opacity) {
68 EXPECT_FLOAT_EQ(opacity, v_scrollbar_layer_->Opacity()); 68 EXPECT_FLOAT_EQ(opacity, v_scrollbar_layer_->Opacity());
69 EXPECT_FLOAT_EQ(opacity, h_scrollbar_layer_->Opacity()); 69 EXPECT_FLOAT_EQ(opacity, h_scrollbar_layer_->Opacity());
70 } 70 }
71 71
72 protected: 72 protected:
73 const base::TimeDelta kFadeDelay = base::TimeDelta::FromSeconds(4); 73 const base::TimeDelta kFadeDelay = base::TimeDelta::FromSeconds(4);
74 const base::TimeDelta kResizeFadeOutDelay = base::TimeDelta::FromSeconds(5);
75 const base::TimeDelta kFadeDuration = base::TimeDelta::FromSeconds(3); 74 const base::TimeDelta kFadeDuration = base::TimeDelta::FromSeconds(3);
76 const base::TimeDelta kThinningDuration = base::TimeDelta::FromSeconds(2); 75 const base::TimeDelta kThinningDuration = base::TimeDelta::FromSeconds(2);
77 76
78 void SetUp() override { 77 void SetUp() override {
79 std::unique_ptr<LayerImpl> scroll_layer = 78 std::unique_ptr<LayerImpl> scroll_layer =
80 LayerImpl::Create(host_impl_.active_tree(), 1); 79 LayerImpl::Create(host_impl_.active_tree(), 1);
81 std::unique_ptr<LayerImpl> clip = 80 std::unique_ptr<LayerImpl> clip =
82 LayerImpl::Create(host_impl_.active_tree(), 2); 81 LayerImpl::Create(host_impl_.active_tree(), 2);
83 clip_layer_ = clip.get(); 82 clip_layer_ = clip.get();
84 scroll_layer->SetElementId( 83 scroll_layer->SetElementId(
(...skipping 24 matching lines...) Expand all
109 v_scrollbar_layer_->SetScrollElementId(scroll_layer_ptr->element_id()); 108 v_scrollbar_layer_->SetScrollElementId(scroll_layer_ptr->element_id());
110 h_scrollbar_layer_->SetScrollElementId(scroll_layer_ptr->element_id()); 109 h_scrollbar_layer_->SetScrollElementId(scroll_layer_ptr->element_id());
111 v_scrollbar_layer_->test_properties()->opacity_can_animate = true; 110 v_scrollbar_layer_->test_properties()->opacity_can_animate = true;
112 h_scrollbar_layer_->test_properties()->opacity_can_animate = true; 111 h_scrollbar_layer_->test_properties()->opacity_can_animate = true;
113 clip_layer_->SetBounds(gfx::Size(100, 100)); 112 clip_layer_->SetBounds(gfx::Size(100, 100));
114 scroll_layer_ptr->SetBounds(gfx::Size(200, 200)); 113 scroll_layer_ptr->SetBounds(gfx::Size(200, 200));
115 host_impl_.active_tree()->BuildLayerListAndPropertyTreesForTesting(); 114 host_impl_.active_tree()->BuildLayerListAndPropertyTreesForTesting();
116 115
117 scrollbar_controller_ = ScrollbarAnimationController:: 116 scrollbar_controller_ = ScrollbarAnimationController::
118 CreateScrollbarAnimationControllerAuraOverlay( 117 CreateScrollbarAnimationControllerAuraOverlay(
119 scroll_layer_ptr->element_id(), &client_, kFadeDelay, 118 scroll_layer_ptr->element_id(), &client_, kFadeDelay, kFadeDuration,
120 kResizeFadeOutDelay, kFadeDuration, kThinningDuration); 119 kThinningDuration);
121 } 120 }
122 121
123 FakeImplTaskRunnerProvider task_runner_provider_; 122 FakeImplTaskRunnerProvider task_runner_provider_;
124 TestTaskGraphRunner task_graph_runner_; 123 TestTaskGraphRunner task_graph_runner_;
125 FakeLayerTreeHostImpl host_impl_; 124 FakeLayerTreeHostImpl host_impl_;
126 std::unique_ptr<ScrollbarAnimationController> scrollbar_controller_; 125 std::unique_ptr<ScrollbarAnimationController> scrollbar_controller_;
127 LayerImpl* clip_layer_; 126 LayerImpl* clip_layer_;
128 SolidColorScrollbarLayerImpl* v_scrollbar_layer_; 127 SolidColorScrollbarLayerImpl* v_scrollbar_layer_;
129 SolidColorScrollbarLayerImpl* h_scrollbar_layer_; 128 SolidColorScrollbarLayerImpl* h_scrollbar_layer_;
130 NiceMock<MockScrollbarAnimationControllerClient> client_; 129 NiceMock<MockScrollbarAnimationControllerClient> client_;
(...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after
688 // If we got a ScrollBegin, we shouldn't schedule the fade out animation until 687 // If we got a ScrollBegin, we shouldn't schedule the fade out animation until
689 // we get a corresponding ScrollEnd. 688 // we get a corresponding ScrollEnd.
690 scrollbar_controller_->DidScrollBegin(); 689 scrollbar_controller_->DidScrollBegin();
691 scrollbar_controller_->DidScrollUpdate(); 690 scrollbar_controller_->DidScrollUpdate();
692 EXPECT_TRUE(client_.start_fade().is_null()); 691 EXPECT_TRUE(client_.start_fade().is_null());
693 scrollbar_controller_->DidScrollEnd(); 692 scrollbar_controller_->DidScrollEnd();
694 EXPECT_FALSE(client_.start_fade().is_null()); 693 EXPECT_FALSE(client_.start_fade().is_null());
695 EXPECT_EQ(kFadeDelay, client_.delay()); 694 EXPECT_EQ(kFadeDelay, client_.delay());
696 } 695 }
697 696
698 // Make sure that if the scroll update is as a result of a resize, we use the
699 // resize delay time instead of the default one.
700 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, ResizeFadeDuration) {
701 ASSERT_TRUE(client_.delay().is_zero());
702
703 scrollbar_controller_->DidResize();
704 EXPECT_FALSE(client_.start_fade().is_null());
705 EXPECT_EQ(kResizeFadeOutDelay, client_.delay());
706
707 client_.delay() = base::TimeDelta();
708
709 // We should use the gesture delay rather than the resize delay if we're in a
710 // gesture scroll, even if it is resizing.
711 scrollbar_controller_->DidScrollBegin();
712 scrollbar_controller_->DidResize();
713 scrollbar_controller_->DidScrollEnd();
714
715 EXPECT_FALSE(client_.start_fade().is_null());
716 EXPECT_EQ(kFadeDelay, client_.delay());
717 }
718
719 // Tests that the fade effect is animated. 697 // Tests that the fade effect is animated.
720 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, FadeAnimated) { 698 TEST_F(ScrollbarAnimationControllerAuraOverlayTest, FadeAnimated) {
721 base::TimeTicks time; 699 base::TimeTicks time;
722 time += base::TimeDelta::FromSeconds(1); 700 time += base::TimeDelta::FromSeconds(1);
723 701
724 // Scroll to make the scrollbars visible. 702 // Scroll to make the scrollbars visible.
725 scrollbar_controller_->DidScrollBegin(); 703 scrollbar_controller_->DidScrollBegin();
726 scrollbar_controller_->DidScrollUpdate(); 704 scrollbar_controller_->DidScrollUpdate();
727 scrollbar_controller_->DidScrollEnd(); 705 scrollbar_controller_->DidScrollEnd();
728 706
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after
1181 host_impl_.active_tree()->SetRootLayerForTesting(std::move(clip)); 1159 host_impl_.active_tree()->SetRootLayerForTesting(std::move(clip));
1182 1160
1183 scrollbar_layer_->SetScrollElementId(scroll_layer_ptr->element_id()); 1161 scrollbar_layer_->SetScrollElementId(scroll_layer_ptr->element_id());
1184 clip_layer_->SetBounds(gfx::Size(100, 100)); 1162 clip_layer_->SetBounds(gfx::Size(100, 100));
1185 scroll_layer_ptr->SetBounds(gfx::Size(200, 200)); 1163 scroll_layer_ptr->SetBounds(gfx::Size(200, 200));
1186 host_impl_.active_tree()->BuildLayerListAndPropertyTreesForTesting(); 1164 host_impl_.active_tree()->BuildLayerListAndPropertyTreesForTesting();
1187 1165
1188 scrollbar_controller_ = 1166 scrollbar_controller_ =
1189 ScrollbarAnimationController::CreateScrollbarAnimationControllerAndroid( 1167 ScrollbarAnimationController::CreateScrollbarAnimationControllerAndroid(
1190 scroll_layer_ptr->element_id(), this, 1168 scroll_layer_ptr->element_id(), this,
1191 base::TimeDelta::FromSeconds(2), base::TimeDelta::FromSeconds(5), 1169 base::TimeDelta::FromSeconds(2), base::TimeDelta::FromSeconds(3));
1192 base::TimeDelta::FromSeconds(3));
1193 } 1170 }
1194 1171
1195 virtual ScrollbarOrientation orientation() const { return HORIZONTAL; } 1172 virtual ScrollbarOrientation orientation() const { return HORIZONTAL; }
1196 1173
1197 FakeImplTaskRunnerProvider task_runner_provider_; 1174 FakeImplTaskRunnerProvider task_runner_provider_;
1198 TestTaskGraphRunner task_graph_runner_; 1175 TestTaskGraphRunner task_graph_runner_;
1199 FakeLayerTreeHostImpl host_impl_; 1176 FakeLayerTreeHostImpl host_impl_;
1200 std::unique_ptr<ScrollbarAnimationController> scrollbar_controller_; 1177 std::unique_ptr<ScrollbarAnimationController> scrollbar_controller_;
1201 LayerImpl* clip_layer_; 1178 LayerImpl* clip_layer_;
1202 SolidColorScrollbarLayerImpl* scrollbar_layer_; 1179 SolidColorScrollbarLayerImpl* scrollbar_layer_;
1203 1180
1204 base::Closure start_fade_; 1181 base::Closure start_fade_;
1205 base::TimeDelta delay_; 1182 base::TimeDelta delay_;
1206 bool did_request_redraw_; 1183 bool did_request_redraw_;
1207 bool did_request_animate_; 1184 bool did_request_animate_;
1208 }; 1185 };
1209 1186
1210 class VerticalScrollbarAnimationControllerAndroidTest 1187 class VerticalScrollbarAnimationControllerAndroidTest
1211 : public ScrollbarAnimationControllerAndroidTest { 1188 : public ScrollbarAnimationControllerAndroidTest {
1212 protected: 1189 protected:
1213 ScrollbarOrientation orientation() const override { return VERTICAL; } 1190 ScrollbarOrientation orientation() const override { return VERTICAL; }
1214 }; 1191 };
1215 1192
1216 TEST_F(ScrollbarAnimationControllerAndroidTest, DelayAnimationOnResize) {
1217 scrollbar_layer_->SetOverlayScrollbarLayerOpacityAnimated(0.f);
1218 // We should use the gesture delay rather than the resize delay if we're in a
1219 // gesture scroll, even if it is resizing.
1220 scrollbar_controller_->DidScrollBegin();
1221 scrollbar_controller_->DidResize();
1222 scrollbar_controller_->DidScrollEnd();
1223 // Normal Animation delay of 2 seconds.
1224 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->Opacity());
1225 EXPECT_EQ(delay_, base::TimeDelta::FromSeconds(2));
1226
1227 scrollbar_layer_->SetOverlayScrollbarLayerOpacityAnimated(0.f);
1228 scrollbar_controller_->DidResize();
1229 // Delay animation on resize to 5 seconds.
1230 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->Opacity());
1231 EXPECT_EQ(delay_, base::TimeDelta::FromSeconds(5));
1232 }
1233
1234 TEST_F(ScrollbarAnimationControllerAndroidTest, HiddenInBegin) { 1193 TEST_F(ScrollbarAnimationControllerAndroidTest, HiddenInBegin) {
1235 scrollbar_layer_->SetOverlayScrollbarLayerOpacityAnimated(0.f); 1194 scrollbar_layer_->SetOverlayScrollbarLayerOpacityAnimated(0.f);
1236 scrollbar_controller_->Animate(base::TimeTicks()); 1195 scrollbar_controller_->Animate(base::TimeTicks());
1237 EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->Opacity()); 1196 EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->Opacity());
1238 } 1197 }
1239 1198
1240 TEST_F(ScrollbarAnimationControllerAndroidTest, 1199 TEST_F(ScrollbarAnimationControllerAndroidTest,
1241 HiddenAfterNonScrollingGesture) { 1200 HiddenAfterNonScrollingGesture) {
1242 scrollbar_layer_->SetOverlayScrollbarLayerOpacityAnimated(0.f); 1201 scrollbar_layer_->SetOverlayScrollbarLayerOpacityAnimated(0.f);
1243 scrollbar_controller_->DidScrollBegin(); 1202 scrollbar_controller_->DidScrollBegin();
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
1616 EXPECT_FLOAT_EQ(1, scrollbar_layer_->Opacity()); 1575 EXPECT_FLOAT_EQ(1, scrollbar_layer_->Opacity());
1617 1576
1618 time += base::TimeDelta::FromSeconds(1); 1577 time += base::TimeDelta::FromSeconds(1);
1619 scrollbar_controller_->DidScrollEnd(); 1578 scrollbar_controller_->DidScrollEnd();
1620 EXPECT_FALSE(did_request_animate_); 1579 EXPECT_FALSE(did_request_animate_);
1621 EXPECT_FLOAT_EQ(1, scrollbar_layer_->Opacity()); 1580 EXPECT_FLOAT_EQ(1, scrollbar_layer_->Opacity());
1622 } 1581 }
1623 1582
1624 } // namespace 1583 } // namespace
1625 } // namespace cc 1584 } // namespace cc
OLDNEW
« no previous file with comments | « cc/input/scrollbar_animation_controller.cc ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698