OLD | NEW |
---|---|
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 |
aelias_OOO_until_Jul13
2014/10/01 18:41:26
Please add a new test case for the new behavior in
MuVen
2014/10/02 08:42:47
Done.
| |
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 } | 26 } |
(...skipping 25 matching lines...) Expand all Loading... | |
52 | 52 |
53 scrollbar_layer_->SetScrollLayerAndClipLayerByIds(scroll_layer_ptr->id(), | 53 scrollbar_layer_->SetScrollLayerAndClipLayerByIds(scroll_layer_ptr->id(), |
54 clip_layer_->id()); | 54 clip_layer_->id()); |
55 clip_layer_->SetBounds(gfx::Size(100, 100)); | 55 clip_layer_->SetBounds(gfx::Size(100, 100)); |
56 scroll_layer_ptr->SetBounds(gfx::Size(50, 50)); | 56 scroll_layer_ptr->SetBounds(gfx::Size(50, 50)); |
57 | 57 |
58 scrollbar_controller_ = ScrollbarAnimationControllerLinearFade::Create( | 58 scrollbar_controller_ = ScrollbarAnimationControllerLinearFade::Create( |
59 scroll_layer_ptr, | 59 scroll_layer_ptr, |
60 this, | 60 this, |
61 base::TimeDelta::FromSeconds(2), | 61 base::TimeDelta::FromSeconds(2), |
62 base::TimeDelta::FromSeconds(5), | |
62 base::TimeDelta::FromSeconds(3)); | 63 base::TimeDelta::FromSeconds(3)); |
63 } | 64 } |
64 | 65 |
65 FakeImplProxy proxy_; | 66 FakeImplProxy proxy_; |
66 TestSharedBitmapManager shared_bitmap_manager_; | 67 TestSharedBitmapManager shared_bitmap_manager_; |
67 FakeLayerTreeHostImpl host_impl_; | 68 FakeLayerTreeHostImpl host_impl_; |
68 scoped_ptr<ScrollbarAnimationControllerLinearFade> scrollbar_controller_; | 69 scoped_ptr<ScrollbarAnimationControllerLinearFade> scrollbar_controller_; |
69 scoped_ptr<LayerImpl> clip_layer_; | 70 scoped_ptr<LayerImpl> clip_layer_; |
70 scoped_ptr<SolidColorScrollbarLayerImpl> scrollbar_layer_; | 71 scoped_ptr<SolidColorScrollbarLayerImpl> scrollbar_layer_; |
71 | 72 |
(...skipping 26 matching lines...) Expand all Loading... | |
98 EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->opacity()); | 99 EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->opacity()); |
99 | 100 |
100 EXPECT_EQ(0, needs_frame_count_); | 101 EXPECT_EQ(0, needs_frame_count_); |
101 } | 102 } |
102 | 103 |
103 TEST_F(ScrollbarAnimationControllerLinearFadeTest, AwakenByScrollingGesture) { | 104 TEST_F(ScrollbarAnimationControllerLinearFadeTest, AwakenByScrollingGesture) { |
104 base::TimeTicks time; | 105 base::TimeTicks time; |
105 time += base::TimeDelta::FromSeconds(1); | 106 time += base::TimeDelta::FromSeconds(1); |
106 scrollbar_controller_->DidScrollBegin(); | 107 scrollbar_controller_->DidScrollBegin(); |
107 | 108 |
108 scrollbar_controller_->DidScrollUpdate(); | 109 scrollbar_controller_->DidScrollUpdate(false); |
109 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); | 110 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); |
110 | 111 |
111 EXPECT_TRUE(start_fade_.Equals(base::Closure())); | 112 EXPECT_TRUE(start_fade_.Equals(base::Closure())); |
112 | 113 |
113 time += base::TimeDelta::FromSeconds(100); | 114 time += base::TimeDelta::FromSeconds(100); |
114 scrollbar_controller_->Animate(time); | 115 scrollbar_controller_->Animate(time); |
115 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); | 116 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); |
116 scrollbar_controller_->DidScrollEnd(); | 117 scrollbar_controller_->DidScrollEnd(); |
117 start_fade_.Run(); | 118 start_fade_.Run(); |
118 | 119 |
119 time += base::TimeDelta::FromSeconds(2); | 120 time += base::TimeDelta::FromSeconds(2); |
120 scrollbar_controller_->Animate(time); | 121 scrollbar_controller_->Animate(time); |
121 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); | 122 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); |
122 | 123 |
123 time += base::TimeDelta::FromSeconds(1); | 124 time += base::TimeDelta::FromSeconds(1); |
124 scrollbar_controller_->Animate(time); | 125 scrollbar_controller_->Animate(time); |
125 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); | 126 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); |
126 | 127 |
127 time += base::TimeDelta::FromSeconds(1); | 128 time += base::TimeDelta::FromSeconds(1); |
128 scrollbar_controller_->Animate(time); | 129 scrollbar_controller_->Animate(time); |
129 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity()); | 130 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity()); |
130 | 131 |
131 time += base::TimeDelta::FromSeconds(1); | 132 time += base::TimeDelta::FromSeconds(1); |
132 | 133 |
133 scrollbar_controller_->DidScrollBegin(); | 134 scrollbar_controller_->DidScrollBegin(); |
134 scrollbar_controller_->DidScrollUpdate(); | 135 scrollbar_controller_->DidScrollUpdate(false); |
135 scrollbar_controller_->DidScrollEnd(); | 136 scrollbar_controller_->DidScrollEnd(); |
136 start_fade_.Run(); | 137 start_fade_.Run(); |
137 | 138 |
138 time += base::TimeDelta::FromSeconds(2); | 139 time += base::TimeDelta::FromSeconds(2); |
139 scrollbar_controller_->Animate(time); | 140 scrollbar_controller_->Animate(time); |
140 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); | 141 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); |
141 | 142 |
142 time += base::TimeDelta::FromSeconds(1); | 143 time += base::TimeDelta::FromSeconds(1); |
143 scrollbar_controller_->Animate(time); | 144 scrollbar_controller_->Animate(time); |
144 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); | 145 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); |
145 | 146 |
146 time += base::TimeDelta::FromSeconds(1); | 147 time += base::TimeDelta::FromSeconds(1); |
147 scrollbar_controller_->Animate(time); | 148 scrollbar_controller_->Animate(time); |
148 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity()); | 149 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity()); |
149 | 150 |
150 time += base::TimeDelta::FromSeconds(1); | 151 time += base::TimeDelta::FromSeconds(1); |
151 scrollbar_controller_->Animate(time); | 152 scrollbar_controller_->Animate(time); |
152 EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->opacity()); | 153 EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->opacity()); |
153 | 154 |
154 EXPECT_EQ(8, needs_frame_count_); | 155 EXPECT_EQ(8, needs_frame_count_); |
155 } | 156 } |
156 | 157 |
157 TEST_F(ScrollbarAnimationControllerLinearFadeTest, AwakenByProgrammaticScroll) { | 158 TEST_F(ScrollbarAnimationControllerLinearFadeTest, AwakenByProgrammaticScroll) { |
158 base::TimeTicks time; | 159 base::TimeTicks time; |
159 time += base::TimeDelta::FromSeconds(1); | 160 time += base::TimeDelta::FromSeconds(1); |
160 scrollbar_controller_->DidScrollUpdate(); | 161 scrollbar_controller_->DidScrollUpdate(false); |
161 start_fade_.Run(); | 162 start_fade_.Run(); |
162 scrollbar_controller_->Animate(time); | 163 scrollbar_controller_->Animate(time); |
163 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); | 164 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); |
164 | 165 |
165 time += base::TimeDelta::FromSeconds(1); | 166 time += base::TimeDelta::FromSeconds(1); |
166 scrollbar_controller_->Animate(time); | 167 scrollbar_controller_->Animate(time); |
167 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); | 168 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); |
168 scrollbar_controller_->DidScrollUpdate(); | 169 scrollbar_controller_->DidScrollUpdate(false); |
169 start_fade_.Run(); | 170 start_fade_.Run(); |
170 | 171 |
171 time += base::TimeDelta::FromSeconds(1); | 172 time += base::TimeDelta::FromSeconds(1); |
172 scrollbar_controller_->Animate(time); | 173 scrollbar_controller_->Animate(time); |
173 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); | 174 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); |
174 | 175 |
175 time += base::TimeDelta::FromSeconds(1); | 176 time += base::TimeDelta::FromSeconds(1); |
176 scrollbar_controller_->Animate(time); | 177 scrollbar_controller_->Animate(time); |
177 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); | 178 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); |
178 | 179 |
179 time += base::TimeDelta::FromSeconds(1); | 180 time += base::TimeDelta::FromSeconds(1); |
180 scrollbar_controller_->Animate(time); | 181 scrollbar_controller_->Animate(time); |
181 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity()); | 182 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity()); |
182 | 183 |
183 time += base::TimeDelta::FromSeconds(1); | 184 time += base::TimeDelta::FromSeconds(1); |
184 scrollbar_controller_->DidScrollUpdate(); | 185 scrollbar_controller_->DidScrollUpdate(false); |
185 start_fade_.Run(); | 186 start_fade_.Run(); |
186 time += base::TimeDelta::FromSeconds(1); | 187 time += base::TimeDelta::FromSeconds(1); |
187 scrollbar_controller_->Animate(time); | 188 scrollbar_controller_->Animate(time); |
188 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); | 189 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); |
189 | 190 |
190 time += base::TimeDelta::FromSeconds(1); | 191 time += base::TimeDelta::FromSeconds(1); |
191 scrollbar_controller_->Animate(time); | 192 scrollbar_controller_->Animate(time); |
192 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); | 193 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); |
193 | 194 |
194 time += base::TimeDelta::FromSeconds(1); | 195 time += base::TimeDelta::FromSeconds(1); |
195 scrollbar_controller_->Animate(time); | 196 scrollbar_controller_->Animate(time); |
196 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity()); | 197 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity()); |
197 | 198 |
198 time += base::TimeDelta::FromSeconds(1); | 199 time += base::TimeDelta::FromSeconds(1); |
199 scrollbar_controller_->Animate(time); | 200 scrollbar_controller_->Animate(time); |
200 EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->opacity()); | 201 EXPECT_FLOAT_EQ(0.0f, scrollbar_layer_->opacity()); |
201 | 202 |
202 EXPECT_EQ(11, needs_frame_count_); | 203 EXPECT_EQ(11, needs_frame_count_); |
203 } | 204 } |
204 | 205 |
205 TEST_F(ScrollbarAnimationControllerLinearFadeTest, | 206 TEST_F(ScrollbarAnimationControllerLinearFadeTest, |
206 AnimationPreservedByNonScrollingGesture) { | 207 AnimationPreservedByNonScrollingGesture) { |
207 base::TimeTicks time; | 208 base::TimeTicks time; |
208 time += base::TimeDelta::FromSeconds(1); | 209 time += base::TimeDelta::FromSeconds(1); |
209 scrollbar_controller_->DidScrollUpdate(); | 210 scrollbar_controller_->DidScrollUpdate(false); |
210 start_fade_.Run(); | 211 start_fade_.Run(); |
211 scrollbar_controller_->Animate(time); | 212 scrollbar_controller_->Animate(time); |
212 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); | 213 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); |
213 | 214 |
214 time += base::TimeDelta::FromSeconds(1); | 215 time += base::TimeDelta::FromSeconds(1); |
215 scrollbar_controller_->Animate(time); | 216 scrollbar_controller_->Animate(time); |
216 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); | 217 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); |
217 | 218 |
218 scrollbar_controller_->DidScrollBegin(); | 219 scrollbar_controller_->DidScrollBegin(); |
219 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); | 220 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); |
(...skipping 11 matching lines...) Expand all Loading... | |
231 | 232 |
232 scrollbar_controller_->Animate(time); | 233 scrollbar_controller_->Animate(time); |
233 | 234 |
234 EXPECT_EQ(4, needs_frame_count_); | 235 EXPECT_EQ(4, needs_frame_count_); |
235 } | 236 } |
236 | 237 |
237 TEST_F(ScrollbarAnimationControllerLinearFadeTest, | 238 TEST_F(ScrollbarAnimationControllerLinearFadeTest, |
238 AnimationOverriddenByScrollingGesture) { | 239 AnimationOverriddenByScrollingGesture) { |
239 base::TimeTicks time; | 240 base::TimeTicks time; |
240 time += base::TimeDelta::FromSeconds(1); | 241 time += base::TimeDelta::FromSeconds(1); |
241 scrollbar_controller_->DidScrollUpdate(); | 242 scrollbar_controller_->DidScrollUpdate(false); |
242 start_fade_.Run(); | 243 start_fade_.Run(); |
243 scrollbar_controller_->Animate(time); | 244 scrollbar_controller_->Animate(time); |
244 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); | 245 EXPECT_FLOAT_EQ(1.0f, scrollbar_layer_->opacity()); |
245 | 246 |
246 time += base::TimeDelta::FromSeconds(1); | 247 time += base::TimeDelta::FromSeconds(1); |
247 scrollbar_controller_->Animate(time); | 248 scrollbar_controller_->Animate(time); |
248 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); | 249 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); |
249 | 250 |
250 scrollbar_controller_->DidScrollBegin(); | 251 scrollbar_controller_->DidScrollBegin(); |
251 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); | 252 EXPECT_FLOAT_EQ(2.0f / 3.0f, scrollbar_layer_->opacity()); |
252 | 253 |
253 time += base::TimeDelta::FromSeconds(1); | 254 time += base::TimeDelta::FromSeconds(1); |
254 scrollbar_controller_->Animate(time); | 255 scrollbar_controller_->Animate(time); |
255 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity()); | 256 EXPECT_FLOAT_EQ(1.0f / 3.0f, scrollbar_layer_->opacity()); |
256 | 257 |
257 time += base::TimeDelta::FromSeconds(1); | 258 time += base::TimeDelta::FromSeconds(1); |
258 scrollbar_controller_->DidScrollUpdate(); | 259 scrollbar_controller_->DidScrollUpdate(false); |
259 EXPECT_FLOAT_EQ(1, scrollbar_layer_->opacity()); | 260 EXPECT_FLOAT_EQ(1, scrollbar_layer_->opacity()); |
260 | 261 |
261 time += base::TimeDelta::FromSeconds(1); | 262 time += base::TimeDelta::FromSeconds(1); |
262 scrollbar_controller_->DidScrollEnd(); | 263 scrollbar_controller_->DidScrollEnd(); |
263 EXPECT_FLOAT_EQ(1, scrollbar_layer_->opacity()); | 264 EXPECT_FLOAT_EQ(1, scrollbar_layer_->opacity()); |
264 } | 265 } |
265 | 266 |
266 } // namespace | 267 } // namespace |
267 } // namespace cc | 268 } // namespace cc |
OLD | NEW |