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

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

Issue 1921583003: CC Animation: Let MutatorHostClient deals with elements instead of layers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@elementid
Patch Set: Rename methods in ElementAnimations Created 4 years, 8 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/animation/animation_player.cc ('k') | cc/animation/element_animations.h » ('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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/animation_player.h" 5 #include "cc/animation/animation_player.h"
6 6
7 #include "cc/animation/animation_delegate.h" 7 #include "cc/animation/animation_delegate.h"
8 #include "cc/animation/animation_host.h" 8 #include "cc/animation/animation_host.h"
9 #include "cc/animation/animation_id_provider.h" 9 #include "cc/animation/animation_id_provider.h"
10 #include "cc/animation/animation_timeline.h" 10 #include "cc/animation/animation_timeline.h"
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 86
87 // Removing player from timeline detaches layer. 87 // Removing player from timeline detaches layer.
88 timeline_->DetachPlayer(player_); 88 timeline_->DetachPlayer(player_);
89 EXPECT_FALSE(player_->animation_timeline()); 89 EXPECT_FALSE(player_->animation_timeline());
90 EXPECT_FALSE(GetPlayerForLayerId(element_id_)); 90 EXPECT_FALSE(GetPlayerForLayerId(element_id_));
91 EXPECT_FALSE(player_->element_animations()); 91 EXPECT_FALSE(player_->element_animations());
92 EXPECT_FALSE(player_->element_id()); 92 EXPECT_FALSE(player_->element_id());
93 } 93 }
94 94
95 TEST_F(AnimationPlayerTest, PropertiesMutate) { 95 TEST_F(AnimationPlayerTest, PropertiesMutate) {
96 client_.RegisterLayer(element_id_, LayerTreeType::ACTIVE); 96 client_.RegisterElement(element_id_, ElementListType::ACTIVE);
97 client_impl_.RegisterLayer(element_id_, LayerTreeType::PENDING); 97 client_impl_.RegisterElement(element_id_, ElementListType::PENDING);
98 client_impl_.RegisterLayer(element_id_, LayerTreeType::ACTIVE); 98 client_impl_.RegisterElement(element_id_, ElementListType::ACTIVE);
99 99
100 host_->AddAnimationTimeline(timeline_); 100 host_->AddAnimationTimeline(timeline_);
101 timeline_->AttachPlayer(player_); 101 timeline_->AttachPlayer(player_);
102 player_->AttachLayer(element_id_); 102 player_->AttachLayer(element_id_);
103 103
104 const float start_opacity = .7f; 104 const float start_opacity = .7f;
105 const float end_opacity = .3f; 105 const float end_opacity = .3f;
106 106
107 const float start_brightness = .6f; 107 const float start_brightness = .6f;
108 const float end_brightness = .4f; 108 const float end_brightness = .4f;
109 109
110 const int transform_x = 10; 110 const int transform_x = 10;
111 const int transform_y = 20; 111 const int transform_y = 20;
112 112
113 const double duration = 1.; 113 const double duration = 1.;
114 114
115 AddOpacityTransitionToPlayer(player_.get(), duration, start_opacity, 115 AddOpacityTransitionToPlayer(player_.get(), duration, start_opacity,
116 end_opacity, false); 116 end_opacity, false);
117 AddAnimatedTransformToPlayer(player_.get(), duration, transform_x, 117 AddAnimatedTransformToPlayer(player_.get(), duration, transform_x,
118 transform_y); 118 transform_y);
119 AddAnimatedFilterToPlayer(player_.get(), duration, start_brightness, 119 AddAnimatedFilterToPlayer(player_.get(), duration, start_brightness,
120 end_brightness); 120 end_brightness);
121 121
122 host_->PushPropertiesTo(host_impl_); 122 host_->PushPropertiesTo(host_impl_);
123 123
124 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, LayerTreeType::ACTIVE, 124 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, ElementListType::ACTIVE,
125 TargetProperty::OPACITY)); 125 TargetProperty::OPACITY));
126 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, LayerTreeType::ACTIVE, 126 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, ElementListType::ACTIVE,
127 TargetProperty::TRANSFORM)); 127 TargetProperty::TRANSFORM));
128 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, LayerTreeType::ACTIVE, 128 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, ElementListType::ACTIVE,
129 TargetProperty::FILTER)); 129 TargetProperty::FILTER));
130 130
131 EXPECT_FALSE(client_impl_.IsPropertyMutated( 131 EXPECT_FALSE(client_impl_.IsPropertyMutated(
132 element_id_, LayerTreeType::ACTIVE, TargetProperty::OPACITY)); 132 element_id_, ElementListType::ACTIVE, TargetProperty::OPACITY));
133 EXPECT_FALSE(client_impl_.IsPropertyMutated( 133 EXPECT_FALSE(client_impl_.IsPropertyMutated(
134 element_id_, LayerTreeType::ACTIVE, TargetProperty::TRANSFORM)); 134 element_id_, ElementListType::ACTIVE, TargetProperty::TRANSFORM));
135 EXPECT_FALSE(client_impl_.IsPropertyMutated( 135 EXPECT_FALSE(client_impl_.IsPropertyMutated(
136 element_id_, LayerTreeType::ACTIVE, TargetProperty::FILTER)); 136 element_id_, ElementListType::ACTIVE, TargetProperty::FILTER));
137 137
138 host_impl_->ActivateAnimations(); 138 host_impl_->ActivateAnimations();
139 139
140 base::TimeTicks time; 140 base::TimeTicks time;
141 time += base::TimeDelta::FromSecondsD(0.1); 141 time += base::TimeDelta::FromSecondsD(0.1);
142 AnimateLayersTransferEvents(time, 3u); 142 AnimateLayersTransferEvents(time, 3u);
143 143
144 time += base::TimeDelta::FromSecondsD(duration); 144 time += base::TimeDelta::FromSecondsD(duration);
145 AnimateLayersTransferEvents(time, 3u); 145 AnimateLayersTransferEvents(time, 3u);
146 146
147 client_.ExpectOpacityPropertyMutated(element_id_, LayerTreeType::ACTIVE, 147 client_.ExpectOpacityPropertyMutated(element_id_, ElementListType::ACTIVE,
148 end_opacity); 148 end_opacity);
149 client_.ExpectTransformPropertyMutated(element_id_, LayerTreeType::ACTIVE, 149 client_.ExpectTransformPropertyMutated(element_id_, ElementListType::ACTIVE,
150 transform_x, transform_y); 150 transform_x, transform_y);
151 client_.ExpectFilterPropertyMutated(element_id_, LayerTreeType::ACTIVE, 151 client_.ExpectFilterPropertyMutated(element_id_, ElementListType::ACTIVE,
152 end_brightness); 152 end_brightness);
153 153
154 client_impl_.ExpectOpacityPropertyMutated(element_id_, LayerTreeType::ACTIVE, 154 client_impl_.ExpectOpacityPropertyMutated(
155 end_opacity); 155 element_id_, ElementListType::ACTIVE, end_opacity);
156 client_impl_.ExpectTransformPropertyMutated( 156 client_impl_.ExpectTransformPropertyMutated(
157 element_id_, LayerTreeType::ACTIVE, transform_x, transform_y); 157 element_id_, ElementListType::ACTIVE, transform_x, transform_y);
158 client_impl_.ExpectFilterPropertyMutated(element_id_, LayerTreeType::ACTIVE, 158 client_impl_.ExpectFilterPropertyMutated(element_id_, ElementListType::ACTIVE,
159 end_brightness); 159 end_brightness);
160 160
161 client_impl_.ExpectOpacityPropertyMutated(element_id_, LayerTreeType::PENDING, 161 client_impl_.ExpectOpacityPropertyMutated(
162 end_opacity); 162 element_id_, ElementListType::PENDING, end_opacity);
163 client_impl_.ExpectTransformPropertyMutated( 163 client_impl_.ExpectTransformPropertyMutated(
164 element_id_, LayerTreeType::PENDING, transform_x, transform_y); 164 element_id_, ElementListType::PENDING, transform_x, transform_y);
165 client_impl_.ExpectFilterPropertyMutated(element_id_, LayerTreeType::PENDING, 165 client_impl_.ExpectFilterPropertyMutated(
166 end_brightness); 166 element_id_, ElementListType::PENDING, end_brightness);
167 } 167 }
168 168
169 TEST_F(AnimationPlayerTest, AttachTwoPlayersToOneLayer) { 169 TEST_F(AnimationPlayerTest, AttachTwoPlayersToOneLayer) {
170 TestAnimationDelegate delegate1; 170 TestAnimationDelegate delegate1;
171 TestAnimationDelegate delegate2; 171 TestAnimationDelegate delegate2;
172 172
173 client_.RegisterLayer(element_id_, LayerTreeType::ACTIVE); 173 client_.RegisterElement(element_id_, ElementListType::ACTIVE);
174 client_impl_.RegisterLayer(element_id_, LayerTreeType::PENDING); 174 client_impl_.RegisterElement(element_id_, ElementListType::PENDING);
175 client_impl_.RegisterLayer(element_id_, LayerTreeType::ACTIVE); 175 client_impl_.RegisterElement(element_id_, ElementListType::ACTIVE);
176 176
177 scoped_refptr<AnimationPlayer> player1 = 177 scoped_refptr<AnimationPlayer> player1 =
178 AnimationPlayer::Create(AnimationIdProvider::NextPlayerId()); 178 AnimationPlayer::Create(AnimationIdProvider::NextPlayerId());
179 scoped_refptr<AnimationPlayer> player2 = 179 scoped_refptr<AnimationPlayer> player2 =
180 AnimationPlayer::Create(AnimationIdProvider::NextPlayerId()); 180 AnimationPlayer::Create(AnimationIdProvider::NextPlayerId());
181 181
182 host_->AddAnimationTimeline(timeline_); 182 host_->AddAnimationTimeline(timeline_);
183 timeline_->AttachPlayer(player1); 183 timeline_->AttachPlayer(player1);
184 timeline_->AttachPlayer(player2); 184 timeline_->AttachPlayer(player2);
185 185
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 221
222 EXPECT_TRUE(delegate2.started()); 222 EXPECT_TRUE(delegate2.started());
223 EXPECT_FALSE(delegate2.finished()); 223 EXPECT_FALSE(delegate2.finished());
224 224
225 time += base::TimeDelta::FromSecondsD(duration); 225 time += base::TimeDelta::FromSecondsD(duration);
226 AnimateLayersTransferEvents(time, 2u); 226 AnimateLayersTransferEvents(time, 2u);
227 227
228 EXPECT_TRUE(delegate1.finished()); 228 EXPECT_TRUE(delegate1.finished());
229 EXPECT_TRUE(delegate2.finished()); 229 EXPECT_TRUE(delegate2.finished());
230 230
231 client_.ExpectOpacityPropertyMutated(element_id_, LayerTreeType::ACTIVE, 231 client_.ExpectOpacityPropertyMutated(element_id_, ElementListType::ACTIVE,
232 end_opacity); 232 end_opacity);
233 client_.ExpectTransformPropertyMutated(element_id_, LayerTreeType::ACTIVE, 233 client_.ExpectTransformPropertyMutated(element_id_, ElementListType::ACTIVE,
234 transform_x, transform_y); 234 transform_x, transform_y);
235 235
236 client_impl_.ExpectOpacityPropertyMutated(element_id_, LayerTreeType::ACTIVE, 236 client_impl_.ExpectOpacityPropertyMutated(
237 end_opacity); 237 element_id_, ElementListType::ACTIVE, end_opacity);
238 client_impl_.ExpectTransformPropertyMutated( 238 client_impl_.ExpectTransformPropertyMutated(
239 element_id_, LayerTreeType::ACTIVE, transform_x, transform_y); 239 element_id_, ElementListType::ACTIVE, transform_x, transform_y);
240 240
241 client_impl_.ExpectOpacityPropertyMutated(element_id_, LayerTreeType::PENDING, 241 client_impl_.ExpectOpacityPropertyMutated(
242 end_opacity); 242 element_id_, ElementListType::PENDING, end_opacity);
243 client_impl_.ExpectTransformPropertyMutated( 243 client_impl_.ExpectTransformPropertyMutated(
244 element_id_, LayerTreeType::PENDING, transform_x, transform_y); 244 element_id_, ElementListType::PENDING, transform_x, transform_y);
245 } 245 }
246 246
247 TEST_F(AnimationPlayerTest, AddRemoveAnimationToNonAttachedPlayer) { 247 TEST_F(AnimationPlayerTest, AddRemoveAnimationToNonAttachedPlayer) {
248 client_.RegisterLayer(element_id_, LayerTreeType::ACTIVE); 248 client_.RegisterElement(element_id_, ElementListType::ACTIVE);
249 client_impl_.RegisterLayer(element_id_, LayerTreeType::PENDING); 249 client_impl_.RegisterElement(element_id_, ElementListType::PENDING);
250 client_impl_.RegisterLayer(element_id_, LayerTreeType::ACTIVE); 250 client_impl_.RegisterElement(element_id_, ElementListType::ACTIVE);
251 251
252 const double duration = 1.; 252 const double duration = 1.;
253 const float start_opacity = .7f; 253 const float start_opacity = .7f;
254 const float end_opacity = .3f; 254 const float end_opacity = .3f;
255 255
256 const int filter_id = 256 const int filter_id =
257 AddAnimatedFilterToPlayer(player_.get(), duration, 0.1f, 0.9f); 257 AddAnimatedFilterToPlayer(player_.get(), duration, 0.1f, 0.9f);
258 const int opacity_id = AddOpacityTransitionToPlayer( 258 const int opacity_id = AddOpacityTransitionToPlayer(
259 player_.get(), duration, start_opacity, end_opacity, false); 259 player_.get(), duration, start_opacity, end_opacity, false);
260 260
261 host_->AddAnimationTimeline(timeline_); 261 host_->AddAnimationTimeline(timeline_);
262 timeline_->AttachPlayer(player_); 262 timeline_->AttachPlayer(player_);
263 263
264 EXPECT_FALSE(player_->element_animations()); 264 EXPECT_FALSE(player_->element_animations());
265 player_->RemoveAnimation(filter_id); 265 player_->RemoveAnimation(filter_id);
266 266
267 player_->AttachLayer(element_id_); 267 player_->AttachLayer(element_id_);
268 268
269 EXPECT_TRUE(player_->element_animations()); 269 EXPECT_TRUE(player_->element_animations());
270 EXPECT_FALSE(player_->element_animations() 270 EXPECT_FALSE(player_->element_animations()
271 ->GetAnimationById(filter_id)); 271 ->GetAnimationById(filter_id));
272 EXPECT_TRUE(player_->element_animations() 272 EXPECT_TRUE(player_->element_animations()
273 ->GetAnimationById(opacity_id)); 273 ->GetAnimationById(opacity_id));
274 274
275 host_->PushPropertiesTo(host_impl_); 275 host_->PushPropertiesTo(host_impl_);
276 276
277 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, LayerTreeType::ACTIVE, 277 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, ElementListType::ACTIVE,
278 TargetProperty::OPACITY)); 278 TargetProperty::OPACITY));
279 EXPECT_FALSE(client_impl_.IsPropertyMutated( 279 EXPECT_FALSE(client_impl_.IsPropertyMutated(
280 element_id_, LayerTreeType::ACTIVE, TargetProperty::OPACITY)); 280 element_id_, ElementListType::ACTIVE, TargetProperty::OPACITY));
281 281
282 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, LayerTreeType::ACTIVE, 282 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, ElementListType::ACTIVE,
283 TargetProperty::FILTER)); 283 TargetProperty::FILTER));
284 EXPECT_FALSE(client_impl_.IsPropertyMutated( 284 EXPECT_FALSE(client_impl_.IsPropertyMutated(
285 element_id_, LayerTreeType::ACTIVE, TargetProperty::FILTER)); 285 element_id_, ElementListType::ACTIVE, TargetProperty::FILTER));
286 286
287 host_impl_->ActivateAnimations(); 287 host_impl_->ActivateAnimations();
288 288
289 base::TimeTicks time; 289 base::TimeTicks time;
290 time += base::TimeDelta::FromSecondsD(0.1); 290 time += base::TimeDelta::FromSecondsD(0.1);
291 AnimateLayersTransferEvents(time, 1u); 291 AnimateLayersTransferEvents(time, 1u);
292 292
293 time += base::TimeDelta::FromSecondsD(duration); 293 time += base::TimeDelta::FromSecondsD(duration);
294 AnimateLayersTransferEvents(time, 1u); 294 AnimateLayersTransferEvents(time, 1u);
295 295
296 client_.ExpectOpacityPropertyMutated(element_id_, LayerTreeType::ACTIVE, 296 client_.ExpectOpacityPropertyMutated(element_id_, ElementListType::ACTIVE,
297 end_opacity); 297 end_opacity);
298 client_impl_.ExpectOpacityPropertyMutated(element_id_, LayerTreeType::ACTIVE, 298 client_impl_.ExpectOpacityPropertyMutated(
299 end_opacity); 299 element_id_, ElementListType::ACTIVE, end_opacity);
300 client_impl_.ExpectOpacityPropertyMutated(element_id_, LayerTreeType::PENDING, 300 client_impl_.ExpectOpacityPropertyMutated(
301 end_opacity); 301 element_id_, ElementListType::PENDING, end_opacity);
302 302
303 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, LayerTreeType::ACTIVE, 303 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, ElementListType::ACTIVE,
304 TargetProperty::FILTER)); 304 TargetProperty::FILTER));
305 EXPECT_FALSE(client_impl_.IsPropertyMutated( 305 EXPECT_FALSE(client_impl_.IsPropertyMutated(
306 element_id_, LayerTreeType::ACTIVE, TargetProperty::FILTER)); 306 element_id_, ElementListType::ACTIVE, TargetProperty::FILTER));
307 } 307 }
308 308
309 TEST_F(AnimationPlayerTest, AddRemoveAnimationCausesSetNeedsCommit) { 309 TEST_F(AnimationPlayerTest, AddRemoveAnimationCausesSetNeedsCommit) {
310 client_.RegisterLayer(element_id_, LayerTreeType::ACTIVE); 310 client_.RegisterElement(element_id_, ElementListType::ACTIVE);
311 host_->AddAnimationTimeline(timeline_); 311 host_->AddAnimationTimeline(timeline_);
312 timeline_->AttachPlayer(player_); 312 timeline_->AttachPlayer(player_);
313 player_->AttachLayer(element_id_); 313 player_->AttachLayer(element_id_);
314 314
315 EXPECT_FALSE(client_.mutators_need_commit()); 315 EXPECT_FALSE(client_.mutators_need_commit());
316 316
317 const int animation_id = 317 const int animation_id =
318 AddOpacityTransitionToPlayer(player_.get(), 1., .7f, .3f, false); 318 AddOpacityTransitionToPlayer(player_.get(), 1., .7f, .3f, false);
319 319
320 EXPECT_TRUE(client_.mutators_need_commit()); 320 EXPECT_TRUE(client_.mutators_need_commit());
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 358
359 host_->PushPropertiesTo(host_impl_); 359 host_->PushPropertiesTo(host_impl_);
360 360
361 EXPECT_EQ(player_impl_, GetImplPlayerForLayerId(new_layer_id)); 361 EXPECT_EQ(player_impl_, GetImplPlayerForLayerId(new_layer_id));
362 EXPECT_TRUE(player_impl_->element_animations()); 362 EXPECT_TRUE(player_impl_->element_animations());
363 EXPECT_EQ(player_impl_->element_id(), new_layer_id); 363 EXPECT_EQ(player_impl_->element_id(), new_layer_id);
364 } 364 }
365 365
366 } // namespace 366 } // namespace
367 } // namespace cc 367 } // namespace cc
OLDNEW
« no previous file with comments | « cc/animation/animation_player.cc ('k') | cc/animation/element_animations.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698