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

Side by Side Diff: cc/animation/scrollbar_animation_controller_linear_fade_unittest.cc

Issue 608223002: [Android]Increase Scrollbar fade delay on Resize. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebased Created 6 years, 2 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/animation/scrollbar_animation_controller_linear_fade.h" 5 #include "cc/animation/scrollbar_animation_controller_linear_fade.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_proxy.h" 8 #include "cc/test/fake_impl_proxy.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/test_shared_bitmap_manager.h" 10 #include "cc/test/test_shared_bitmap_manager.h"
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 12
13 namespace cc { 13 namespace cc {
14 namespace { 14 namespace {
15 15
16 class ScrollbarAnimationControllerLinearFadeTest 16 class ScrollbarAnimationControllerLinearFadeTest
17 : public testing::Test, 17 : public testing::Test,
18 public ScrollbarAnimationControllerClient { 18 public ScrollbarAnimationControllerClient {
19 public: 19 public:
20 ScrollbarAnimationControllerLinearFadeTest() 20 ScrollbarAnimationControllerLinearFadeTest()
21 : host_impl_(&proxy_, &shared_bitmap_manager_), needs_frame_count_(0) {} 21 : host_impl_(&proxy_, &shared_bitmap_manager_), needs_frame_count_(0) {}
22 22
23 virtual void PostDelayedScrollbarFade(const base::Closure& start_fade, 23 virtual void PostDelayedScrollbarFade(const base::Closure& start_fade,
24 base::TimeDelta delay) override { 24 base::TimeDelta delay) override {
25 start_fade_ = start_fade; 25 start_fade_ = start_fade;
26 delay_ = delay;
26 } 27 }
27 virtual void SetNeedsScrollbarAnimationFrame() override { 28 virtual void SetNeedsScrollbarAnimationFrame() override {
28 needs_frame_count_++; 29 needs_frame_count_++;
29 } 30 }
30 31
31 protected: 32 protected:
32 virtual void SetUp() { 33 virtual void SetUp() {
33 const int kThumbThickness = 10; 34 const int kThumbThickness = 10;
34 const int kTrackStart = 0; 35 const int kTrackStart = 0;
35 const bool kIsLeftSideVerticalScrollbar = false; 36 const bool kIsLeftSideVerticalScrollbar = false;
(...skipping 16 matching lines...) Expand all
52 53
53 scrollbar_layer_->SetScrollLayerAndClipLayerByIds(scroll_layer_ptr->id(), 54 scrollbar_layer_->SetScrollLayerAndClipLayerByIds(scroll_layer_ptr->id(),
54 clip_layer_->id()); 55 clip_layer_->id());
55 clip_layer_->SetBounds(gfx::Size(100, 100)); 56 clip_layer_->SetBounds(gfx::Size(100, 100));
56 scroll_layer_ptr->SetBounds(gfx::Size(50, 50)); 57 scroll_layer_ptr->SetBounds(gfx::Size(50, 50));
57 58
58 scrollbar_controller_ = ScrollbarAnimationControllerLinearFade::Create( 59 scrollbar_controller_ = ScrollbarAnimationControllerLinearFade::Create(
59 scroll_layer_ptr, 60 scroll_layer_ptr,
60 this, 61 this,
61 base::TimeDelta::FromSeconds(2), 62 base::TimeDelta::FromSeconds(2),
63 base::TimeDelta::FromSeconds(5),
62 base::TimeDelta::FromSeconds(3)); 64 base::TimeDelta::FromSeconds(3));
63 } 65 }
64 66
65 FakeImplProxy proxy_; 67 FakeImplProxy proxy_;
66 TestSharedBitmapManager shared_bitmap_manager_; 68 TestSharedBitmapManager shared_bitmap_manager_;
67 FakeLayerTreeHostImpl host_impl_; 69 FakeLayerTreeHostImpl host_impl_;
68 scoped_ptr<ScrollbarAnimationControllerLinearFade> scrollbar_controller_; 70 scoped_ptr<ScrollbarAnimationControllerLinearFade> scrollbar_controller_;
69 scoped_ptr<LayerImpl> clip_layer_; 71 scoped_ptr<LayerImpl> clip_layer_;
70 scoped_ptr<SolidColorScrollbarLayerImpl> scrollbar_layer_; 72 scoped_ptr<SolidColorScrollbarLayerImpl> scrollbar_layer_;
71 73
72 base::Closure start_fade_; 74 base::Closure start_fade_;
75 base::TimeDelta delay_;
73 int needs_frame_count_; 76 int needs_frame_count_;
74 }; 77 };
75 78
79 TEST_F(ScrollbarAnimationControllerLinearFadeTest, DelayAnimationOnResize) {
80 scrollbar_layer_->SetOpacity(0.0f);
81 scrollbar_controller_->DidScrollBegin();
82 scrollbar_controller_->DidScrollUpdate(true);
83 scrollbar_controller_->DidScrollEnd();
84 // Normal Animation delay of 2 seconds.
85 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity());
86 EXPECT_EQ(delay_, base::TimeDelta::FromSeconds(2));
87
88 scrollbar_layer_->SetOpacity(0.0f);
89 scrollbar_controller_->DidScrollUpdate(true);
90 // Delay animation on resize to 5 seconds.
91 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity());
92 EXPECT_EQ(delay_, base::TimeDelta::FromSeconds(5));
93 }
94
76 TEST_F(ScrollbarAnimationControllerLinearFadeTest, HiddenInBegin) { 95 TEST_F(ScrollbarAnimationControllerLinearFadeTest, HiddenInBegin) {
77 scrollbar_layer_->SetOpacity(0.0f); 96 scrollbar_layer_->SetOpacity(0.0f);
78 scrollbar_controller_->Animate(base::TimeTicks()); 97 scrollbar_controller_->Animate(base::TimeTicks());
79 EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->opacity()); 98 EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->opacity());
80 EXPECT_EQ(0, needs_frame_count_); 99 EXPECT_EQ(0, needs_frame_count_);
81 } 100 }
82 101
83 TEST_F(ScrollbarAnimationControllerLinearFadeTest, 102 TEST_F(ScrollbarAnimationControllerLinearFadeTest,
84 HiddenAfterNonScrollingGesture) { 103 HiddenAfterNonScrollingGesture) {
85 scrollbar_layer_->SetOpacity(0.0f); 104 scrollbar_layer_->SetOpacity(0.0f);
(...skipping 12 matching lines...) Expand all
98 EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->opacity()); 117 EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->opacity());
99 118
100 EXPECT_EQ(0, needs_frame_count_); 119 EXPECT_EQ(0, needs_frame_count_);
101 } 120 }
102 121
103 TEST_F(ScrollbarAnimationControllerLinearFadeTest, AwakenByScrollingGesture) { 122 TEST_F(ScrollbarAnimationControllerLinearFadeTest, AwakenByScrollingGesture) {
104 base::TimeTicks time; 123 base::TimeTicks time;
105 time += base::TimeDelta::FromSeconds(1); 124 time += base::TimeDelta::FromSeconds(1);
106 scrollbar_controller_->DidScrollBegin(); 125 scrollbar_controller_->DidScrollBegin();
107 126
108 scrollbar_controller_->DidScrollUpdate(); 127 scrollbar_controller_->DidScrollUpdate(false);
109 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); 128 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity());
110 129
111 EXPECT_TRUE(start_fade_.Equals(base::Closure())); 130 EXPECT_TRUE(start_fade_.Equals(base::Closure()));
112 131
113 time += base::TimeDelta::FromSeconds(100); 132 time += base::TimeDelta::FromSeconds(100);
114 scrollbar_controller_->Animate(time); 133 scrollbar_controller_->Animate(time);
115 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); 134 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity());
116 scrollbar_controller_->DidScrollEnd(); 135 scrollbar_controller_->DidScrollEnd();
117 start_fade_.Run(); 136 start_fade_.Run();
118 137
119 time += base::TimeDelta::FromSeconds(2); 138 time += base::TimeDelta::FromSeconds(2);
120 scrollbar_controller_->Animate(time); 139 scrollbar_controller_->Animate(time);
121 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); 140 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity());
122 141
123 time += base::TimeDelta::FromSeconds(1); 142 time += base::TimeDelta::FromSeconds(1);
124 scrollbar_controller_->Animate(time); 143 scrollbar_controller_->Animate(time);
125 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); 144 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity());
126 145
127 time += base::TimeDelta::FromSeconds(1); 146 time += base::TimeDelta::FromSeconds(1);
128 scrollbar_controller_->Animate(time); 147 scrollbar_controller_->Animate(time);
129 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity()); 148 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity());
130 149
131 time += base::TimeDelta::FromSeconds(1); 150 time += base::TimeDelta::FromSeconds(1);
132 151
133 scrollbar_controller_->DidScrollBegin(); 152 scrollbar_controller_->DidScrollBegin();
134 scrollbar_controller_->DidScrollUpdate(); 153 scrollbar_controller_->DidScrollUpdate(false);
135 scrollbar_controller_->DidScrollEnd(); 154 scrollbar_controller_->DidScrollEnd();
136 start_fade_.Run(); 155 start_fade_.Run();
137 156
138 time += base::TimeDelta::FromSeconds(2); 157 time += base::TimeDelta::FromSeconds(2);
139 scrollbar_controller_->Animate(time); 158 scrollbar_controller_->Animate(time);
140 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); 159 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity());
141 160
142 time += base::TimeDelta::FromSeconds(1); 161 time += base::TimeDelta::FromSeconds(1);
143 scrollbar_controller_->Animate(time); 162 scrollbar_controller_->Animate(time);
144 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); 163 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity());
145 164
146 time += base::TimeDelta::FromSeconds(1); 165 time += base::TimeDelta::FromSeconds(1);
147 scrollbar_controller_->Animate(time); 166 scrollbar_controller_->Animate(time);
148 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity()); 167 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity());
149 168
150 time += base::TimeDelta::FromSeconds(1); 169 time += base::TimeDelta::FromSeconds(1);
151 scrollbar_controller_->Animate(time); 170 scrollbar_controller_->Animate(time);
152 EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->opacity()); 171 EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->opacity());
153 172
154 EXPECT_EQ(8, needs_frame_count_); 173 EXPECT_EQ(8, needs_frame_count_);
155 } 174 }
156 175
157 TEST_F(ScrollbarAnimationControllerLinearFadeTest, AwakenByProgrammaticScroll) { 176 TEST_F(ScrollbarAnimationControllerLinearFadeTest, AwakenByProgrammaticScroll) {
158 base::TimeTicks time; 177 base::TimeTicks time;
159 time += base::TimeDelta::FromSeconds(1); 178 time += base::TimeDelta::FromSeconds(1);
160 scrollbar_controller_->DidScrollUpdate(); 179 scrollbar_controller_->DidScrollUpdate(false);
161 start_fade_.Run(); 180 start_fade_.Run();
162 scrollbar_controller_->Animate(time); 181 scrollbar_controller_->Animate(time);
163 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); 182 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity());
164 183
165 time += base::TimeDelta::FromSeconds(1); 184 time += base::TimeDelta::FromSeconds(1);
166 scrollbar_controller_->Animate(time); 185 scrollbar_controller_->Animate(time);
167 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); 186 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity());
168 scrollbar_controller_->DidScrollUpdate(); 187 scrollbar_controller_->DidScrollUpdate(false);
169 start_fade_.Run(); 188 start_fade_.Run();
170 189
171 time += base::TimeDelta::FromSeconds(1); 190 time += base::TimeDelta::FromSeconds(1);
172 scrollbar_controller_->Animate(time); 191 scrollbar_controller_->Animate(time);
173 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); 192 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity());
174 193
175 time += base::TimeDelta::FromSeconds(1); 194 time += base::TimeDelta::FromSeconds(1);
176 scrollbar_controller_->Animate(time); 195 scrollbar_controller_->Animate(time);
177 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); 196 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity());
178 197
179 time += base::TimeDelta::FromSeconds(1); 198 time += base::TimeDelta::FromSeconds(1);
180 scrollbar_controller_->Animate(time); 199 scrollbar_controller_->Animate(time);
181 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity()); 200 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity());
182 201
183 time += base::TimeDelta::FromSeconds(1); 202 time += base::TimeDelta::FromSeconds(1);
184 scrollbar_controller_->DidScrollUpdate(); 203 scrollbar_controller_->DidScrollUpdate(false);
185 start_fade_.Run(); 204 start_fade_.Run();
186 time += base::TimeDelta::FromSeconds(1); 205 time += base::TimeDelta::FromSeconds(1);
187 scrollbar_controller_->Animate(time); 206 scrollbar_controller_->Animate(time);
188 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); 207 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity());
189 208
190 time += base::TimeDelta::FromSeconds(1); 209 time += base::TimeDelta::FromSeconds(1);
191 scrollbar_controller_->Animate(time); 210 scrollbar_controller_->Animate(time);
192 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); 211 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity());
193 212
194 time += base::TimeDelta::FromSeconds(1); 213 time += base::TimeDelta::FromSeconds(1);
195 scrollbar_controller_->Animate(time); 214 scrollbar_controller_->Animate(time);
196 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity()); 215 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity());
197 216
198 time += base::TimeDelta::FromSeconds(1); 217 time += base::TimeDelta::FromSeconds(1);
199 scrollbar_controller_->Animate(time); 218 scrollbar_controller_->Animate(time);
200 EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->opacity()); 219 EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->opacity());
201 220
202 EXPECT_EQ(11, needs_frame_count_); 221 EXPECT_EQ(11, needs_frame_count_);
203 } 222 }
204 223
205 TEST_F(ScrollbarAnimationControllerLinearFadeTest, 224 TEST_F(ScrollbarAnimationControllerLinearFadeTest,
206 AnimationPreservedByNonScrollingGesture) { 225 AnimationPreservedByNonScrollingGesture) {
207 base::TimeTicks time; 226 base::TimeTicks time;
208 time += base::TimeDelta::FromSeconds(1); 227 time += base::TimeDelta::FromSeconds(1);
209 scrollbar_controller_->DidScrollUpdate(); 228 scrollbar_controller_->DidScrollUpdate(false);
210 start_fade_.Run(); 229 start_fade_.Run();
211 scrollbar_controller_->Animate(time); 230 scrollbar_controller_->Animate(time);
212 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); 231 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity());
213 232
214 time += base::TimeDelta::FromSeconds(1); 233 time += base::TimeDelta::FromSeconds(1);
215 scrollbar_controller_->Animate(time); 234 scrollbar_controller_->Animate(time);
216 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); 235 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity());
217 236
218 scrollbar_controller_->DidScrollBegin(); 237 scrollbar_controller_->DidScrollBegin();
219 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); 238 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity());
(...skipping 11 matching lines...) Expand all
231 250
232 scrollbar_controller_->Animate(time); 251 scrollbar_controller_->Animate(time);
233 252
234 EXPECT_EQ(4, needs_frame_count_); 253 EXPECT_EQ(4, needs_frame_count_);
235 } 254 }
236 255
237 TEST_F(ScrollbarAnimationControllerLinearFadeTest, 256 TEST_F(ScrollbarAnimationControllerLinearFadeTest,
238 AnimationOverriddenByScrollingGesture) { 257 AnimationOverriddenByScrollingGesture) {
239 base::TimeTicks time; 258 base::TimeTicks time;
240 time += base::TimeDelta::FromSeconds(1); 259 time += base::TimeDelta::FromSeconds(1);
241 scrollbar_controller_->DidScrollUpdate(); 260 scrollbar_controller_->DidScrollUpdate(false);
242 start_fade_.Run(); 261 start_fade_.Run();
243 scrollbar_controller_->Animate(time); 262 scrollbar_controller_->Animate(time);
244 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); 263 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity());
245 264
246 time += base::TimeDelta::FromSeconds(1); 265 time += base::TimeDelta::FromSeconds(1);
247 scrollbar_controller_->Animate(time); 266 scrollbar_controller_->Animate(time);
248 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); 267 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity());
249 268
250 scrollbar_controller_->DidScrollBegin(); 269 scrollbar_controller_->DidScrollBegin();
251 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); 270 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity());
252 271
253 time += base::TimeDelta::FromSeconds(1); 272 time += base::TimeDelta::FromSeconds(1);
254 scrollbar_controller_->Animate(time); 273 scrollbar_controller_->Animate(time);
255 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity()); 274 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity());
256 275
257 time += base::TimeDelta::FromSeconds(1); 276 time += base::TimeDelta::FromSeconds(1);
258 scrollbar_controller_->DidScrollUpdate(); 277 scrollbar_controller_->DidScrollUpdate(false);
259 EXPECT_FLOAT_EQ(1, scrollbar_layer_->opacity()); 278 EXPECT_FLOAT_EQ(1, scrollbar_layer_->opacity());
260 279
261 time += base::TimeDelta::FromSeconds(1); 280 time += base::TimeDelta::FromSeconds(1);
262 scrollbar_controller_->DidScrollEnd(); 281 scrollbar_controller_->DidScrollEnd();
263 EXPECT_FLOAT_EQ(1, scrollbar_layer_->opacity()); 282 EXPECT_FLOAT_EQ(1, scrollbar_layer_->opacity());
264 } 283 }
265 284
266 } // namespace 285 } // namespace
267 } // namespace cc 286 } // namespace cc
OLDNEW
« no previous file with comments | « cc/animation/scrollbar_animation_controller_linear_fade.cc ('k') | cc/animation/scrollbar_animation_controller_thinning.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698