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

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

Issue 2291463003: Revert "CC Animation: Introduce some dirty flags to optimize PushProperties on commit" (Closed)
Patch Set: Created 4 years, 3 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/animation_timeline.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"
11 #include "cc/animation/element_animations.h" 11 #include "cc/animation/element_animations.h"
12 #include "cc/test/animation_test_common.h" 12 #include "cc/test/animation_test_common.h"
13 #include "cc/test/animation_timelines_test_common.h" 13 #include "cc/test/animation_timelines_test_common.h"
14 14
15 namespace cc { 15 namespace cc {
16 namespace { 16 namespace {
17 17
18 class AnimationPlayerTest : public AnimationTimelinesTest { 18 class AnimationPlayerTest : public AnimationTimelinesTest {
19 public: 19 public:
20 AnimationPlayerTest() {} 20 AnimationPlayerTest() {}
21 ~AnimationPlayerTest() override {} 21 ~AnimationPlayerTest() override {}
22 }; 22 };
23 23
24 // See element_animations_unittest.cc for active/pending observers tests. 24 // See element_animations_unittest.cc for active/pending observers tests.
25 25
26 TEST_F(AnimationPlayerTest, AttachDetachLayerIfTimelineAttached) { 26 TEST_F(AnimationPlayerTest, AttachDetachLayerIfTimelineAttached) {
27 EXPECT_TRUE(CheckPlayerTimelineNeedsPushProperties(false));
28 host_->AddAnimationTimeline(timeline_); 27 host_->AddAnimationTimeline(timeline_);
29 EXPECT_TRUE(timeline_->needs_push_properties());
30 EXPECT_FALSE(player_->needs_push_properties());
31
32 timeline_->AttachPlayer(player_); 28 timeline_->AttachPlayer(player_);
33 EXPECT_FALSE(player_->element_animations()); 29 EXPECT_FALSE(player_->element_animations());
34 EXPECT_FALSE(player_->element_id()); 30 EXPECT_FALSE(player_->element_id());
35 31
36 EXPECT_TRUE(timeline_->needs_push_properties());
37 EXPECT_FALSE(player_->needs_push_properties());
38
39 host_->PushPropertiesTo(host_impl_); 32 host_->PushPropertiesTo(host_impl_);
40 33
41 EXPECT_FALSE(GetImplPlayerForLayerId(element_id_)); 34 EXPECT_FALSE(GetImplPlayerForLayerId(element_id_));
42 35
43 GetImplTimelineAndPlayerByID(); 36 GetImplTimelineAndPlayerByID();
44 37
45 EXPECT_FALSE(player_impl_->element_animations()); 38 EXPECT_FALSE(player_impl_->element_animations());
46 EXPECT_FALSE(player_impl_->element_id()); 39 EXPECT_FALSE(player_impl_->element_id());
47 EXPECT_FALSE(player_->needs_push_properties());
48 EXPECT_FALSE(timeline_->needs_push_properties());
49 40
50 player_->AttachElement(element_id_); 41 player_->AttachElement(element_id_);
51 EXPECT_EQ(player_, GetPlayerForElementId(element_id_)); 42 EXPECT_EQ(player_, GetPlayerForElementId(element_id_));
52 EXPECT_TRUE(player_->element_animations()); 43 EXPECT_TRUE(player_->element_animations());
53 EXPECT_EQ(player_->element_id(), element_id_); 44 EXPECT_EQ(player_->element_id(), element_id_);
54 EXPECT_TRUE(CheckPlayerTimelineNeedsPushProperties(true));
55 45
56 host_->PushPropertiesTo(host_impl_); 46 host_->PushPropertiesTo(host_impl_);
57 47
58 EXPECT_EQ(player_impl_, GetImplPlayerForLayerId(element_id_)); 48 EXPECT_EQ(player_impl_, GetImplPlayerForLayerId(element_id_));
59 EXPECT_TRUE(player_impl_->element_animations()); 49 EXPECT_TRUE(player_impl_->element_animations());
60 EXPECT_EQ(player_impl_->element_id(), element_id_); 50 EXPECT_EQ(player_impl_->element_id(), element_id_);
61 EXPECT_TRUE(CheckPlayerTimelineNeedsPushProperties(false));
62 51
63 player_->DetachElement(); 52 player_->DetachElement();
64 EXPECT_FALSE(GetPlayerForElementId(element_id_)); 53 EXPECT_FALSE(GetPlayerForElementId(element_id_));
65 EXPECT_FALSE(player_->element_animations()); 54 EXPECT_FALSE(player_->element_animations());
66 EXPECT_FALSE(player_->element_id()); 55 EXPECT_FALSE(player_->element_id());
67 EXPECT_TRUE(CheckPlayerTimelineNeedsPushProperties(true));
68 56
69 host_->PushPropertiesTo(host_impl_); 57 host_->PushPropertiesTo(host_impl_);
70 58
71 EXPECT_FALSE(GetImplPlayerForLayerId(element_id_)); 59 EXPECT_FALSE(GetImplPlayerForLayerId(element_id_));
72 EXPECT_FALSE(player_impl_->element_animations()); 60 EXPECT_FALSE(player_impl_->element_animations());
73 EXPECT_FALSE(player_impl_->element_id()); 61 EXPECT_FALSE(player_impl_->element_id());
74 EXPECT_TRUE(CheckPlayerTimelineNeedsPushProperties(false));
75 62
76 timeline_->DetachPlayer(player_); 63 timeline_->DetachPlayer(player_);
77 EXPECT_FALSE(player_->animation_timeline()); 64 EXPECT_FALSE(player_->animation_timeline());
78 EXPECT_FALSE(player_->element_animations()); 65 EXPECT_FALSE(player_->element_animations());
79 EXPECT_FALSE(player_->element_id()); 66 EXPECT_FALSE(player_->element_id());
80 EXPECT_TRUE(timeline_->needs_push_properties());
81 EXPECT_FALSE(player_->needs_push_properties());
82
83 host_->PushPropertiesTo(host_impl_);
84 EXPECT_TRUE(CheckPlayerTimelineNeedsPushProperties(false));
85 } 67 }
86 68
87 TEST_F(AnimationPlayerTest, AttachDetachTimelineIfLayerAttached) { 69 TEST_F(AnimationPlayerTest, AttachDetachTimelineIfLayerAttached) {
88 host_->AddAnimationTimeline(timeline_); 70 host_->AddAnimationTimeline(timeline_);
89 71
90 EXPECT_FALSE(player_->element_animations()); 72 EXPECT_FALSE(player_->element_animations());
91 EXPECT_FALSE(player_->element_id()); 73 EXPECT_FALSE(player_->element_id());
92 EXPECT_FALSE(player_->needs_push_properties());
93 74
94 player_->AttachElement(element_id_); 75 player_->AttachElement(element_id_);
95 EXPECT_FALSE(player_->animation_timeline()); 76 EXPECT_FALSE(player_->animation_timeline());
96 EXPECT_FALSE(GetPlayerForElementId(element_id_)); 77 EXPECT_FALSE(GetPlayerForElementId(element_id_));
97 EXPECT_FALSE(player_->element_animations()); 78 EXPECT_FALSE(player_->element_animations());
98 EXPECT_EQ(player_->element_id(), element_id_); 79 EXPECT_EQ(player_->element_id(), element_id_);
99 EXPECT_FALSE(player_->needs_push_properties());
100 80
101 timeline_->AttachPlayer(player_); 81 timeline_->AttachPlayer(player_);
102 EXPECT_EQ(timeline_, player_->animation_timeline()); 82 EXPECT_EQ(timeline_, player_->animation_timeline());
103 EXPECT_EQ(player_, GetPlayerForElementId(element_id_)); 83 EXPECT_EQ(player_, GetPlayerForElementId(element_id_));
104 EXPECT_TRUE(player_->element_animations()); 84 EXPECT_TRUE(player_->element_animations());
105 EXPECT_EQ(player_->element_id(), element_id_); 85 EXPECT_EQ(player_->element_id(), element_id_);
106 EXPECT_TRUE(player_->needs_push_properties());
107 86
108 // Removing player from timeline detaches layer. 87 // Removing player from timeline detaches layer.
109 timeline_->DetachPlayer(player_); 88 timeline_->DetachPlayer(player_);
110 EXPECT_FALSE(player_->animation_timeline()); 89 EXPECT_FALSE(player_->animation_timeline());
111 EXPECT_FALSE(GetPlayerForElementId(element_id_)); 90 EXPECT_FALSE(GetPlayerForElementId(element_id_));
112 EXPECT_FALSE(player_->element_animations()); 91 EXPECT_FALSE(player_->element_animations());
113 EXPECT_FALSE(player_->element_id()); 92 EXPECT_FALSE(player_->element_id());
114 EXPECT_TRUE(player_->needs_push_properties());
115 } 93 }
116 94
117 TEST_F(AnimationPlayerTest, PropertiesMutate) { 95 TEST_F(AnimationPlayerTest, PropertiesMutate) {
118 client_.RegisterElement(element_id_, ElementListType::ACTIVE); 96 client_.RegisterElement(element_id_, ElementListType::ACTIVE);
119 client_impl_.RegisterElement(element_id_, ElementListType::PENDING); 97 client_impl_.RegisterElement(element_id_, ElementListType::PENDING);
120 client_impl_.RegisterElement(element_id_, ElementListType::ACTIVE); 98 client_impl_.RegisterElement(element_id_, ElementListType::ACTIVE);
121 99
122 host_->AddAnimationTimeline(timeline_); 100 host_->AddAnimationTimeline(timeline_);
123 timeline_->AttachPlayer(player_); 101 timeline_->AttachPlayer(player_);
124 player_->AttachElement(element_id_); 102 player_->AttachElement(element_id_);
125 EXPECT_TRUE(CheckPlayerTimelineNeedsPushProperties(true));
126
127 host_->PushPropertiesTo(host_impl_);
128 EXPECT_TRUE(CheckPlayerTimelineNeedsPushProperties(false));
129 103
130 const float start_opacity = .7f; 104 const float start_opacity = .7f;
131 const float end_opacity = .3f; 105 const float end_opacity = .3f;
132 106
133 const float start_brightness = .6f; 107 const float start_brightness = .6f;
134 const float end_brightness = .4f; 108 const float end_brightness = .4f;
135 109
136 const int transform_x = 10; 110 const int transform_x = 10;
137 const int transform_y = 20; 111 const int transform_y = 20;
138 112
139 const double duration = 1.; 113 const double duration = 1.;
140 114
141 AddOpacityTransitionToPlayer(player_.get(), duration, start_opacity, 115 AddOpacityTransitionToPlayer(player_.get(), duration, start_opacity,
142 end_opacity, false); 116 end_opacity, false);
143 AddAnimatedTransformToPlayer(player_.get(), duration, transform_x, 117 AddAnimatedTransformToPlayer(player_.get(), duration, transform_x,
144 transform_y); 118 transform_y);
145 AddAnimatedFilterToPlayer(player_.get(), duration, start_brightness, 119 AddAnimatedFilterToPlayer(player_.get(), duration, start_brightness,
146 end_brightness); 120 end_brightness);
147 EXPECT_TRUE(CheckPlayerTimelineNeedsPushProperties(true));
148 121
149 host_->PushPropertiesTo(host_impl_); 122 host_->PushPropertiesTo(host_impl_);
150 EXPECT_TRUE(CheckPlayerTimelineNeedsPushProperties(false));
151 123
152 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, ElementListType::ACTIVE, 124 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, ElementListType::ACTIVE,
153 TargetProperty::OPACITY)); 125 TargetProperty::OPACITY));
154 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, ElementListType::ACTIVE, 126 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, ElementListType::ACTIVE,
155 TargetProperty::TRANSFORM)); 127 TargetProperty::TRANSFORM));
156 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, ElementListType::ACTIVE, 128 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, ElementListType::ACTIVE,
157 TargetProperty::FILTER)); 129 TargetProperty::FILTER));
158 130
159 EXPECT_FALSE(client_impl_.IsPropertyMutated( 131 EXPECT_FALSE(client_impl_.IsPropertyMutated(
160 element_id_, ElementListType::ACTIVE, TargetProperty::OPACITY)); 132 element_id_, ElementListType::ACTIVE, TargetProperty::OPACITY));
161 EXPECT_FALSE(client_impl_.IsPropertyMutated( 133 EXPECT_FALSE(client_impl_.IsPropertyMutated(
162 element_id_, ElementListType::ACTIVE, TargetProperty::TRANSFORM)); 134 element_id_, ElementListType::ACTIVE, TargetProperty::TRANSFORM));
163 EXPECT_FALSE(client_impl_.IsPropertyMutated( 135 EXPECT_FALSE(client_impl_.IsPropertyMutated(
164 element_id_, ElementListType::ACTIVE, TargetProperty::FILTER)); 136 element_id_, ElementListType::ACTIVE, TargetProperty::FILTER));
165 137
166 host_impl_->ActivateAnimations(); 138 host_impl_->ActivateAnimations();
167 139
168 base::TimeTicks time; 140 base::TimeTicks time;
169 time += base::TimeDelta::FromSecondsD(0.1); 141 time += base::TimeDelta::FromSecondsD(0.1);
170 AnimateLayersTransferEvents(time, 3u); 142 AnimateLayersTransferEvents(time, 3u);
171 EXPECT_TRUE(CheckPlayerTimelineNeedsPushProperties(false));
172 143
173 time += base::TimeDelta::FromSecondsD(duration); 144 time += base::TimeDelta::FromSecondsD(duration);
174 AnimateLayersTransferEvents(time, 3u); 145 AnimateLayersTransferEvents(time, 3u);
175 EXPECT_TRUE(CheckPlayerTimelineNeedsPushProperties(false));
176 146
177 client_.ExpectOpacityPropertyMutated(element_id_, ElementListType::ACTIVE, 147 client_.ExpectOpacityPropertyMutated(element_id_, ElementListType::ACTIVE,
178 end_opacity); 148 end_opacity);
179 client_.ExpectTransformPropertyMutated(element_id_, ElementListType::ACTIVE, 149 client_.ExpectTransformPropertyMutated(element_id_, ElementListType::ACTIVE,
180 transform_x, transform_y); 150 transform_x, transform_y);
181 client_.ExpectFilterPropertyMutated(element_id_, ElementListType::ACTIVE, 151 client_.ExpectFilterPropertyMutated(element_id_, ElementListType::ACTIVE,
182 end_brightness); 152 end_brightness);
183 153
184 client_impl_.ExpectOpacityPropertyMutated( 154 client_impl_.ExpectOpacityPropertyMutated(
185 element_id_, ElementListType::ACTIVE, end_opacity); 155 element_id_, ElementListType::ACTIVE, end_opacity);
(...skipping 17 matching lines...) Expand all
203 client_.RegisterElement(element_id_, ElementListType::ACTIVE); 173 client_.RegisterElement(element_id_, ElementListType::ACTIVE);
204 client_impl_.RegisterElement(element_id_, ElementListType::PENDING); 174 client_impl_.RegisterElement(element_id_, ElementListType::PENDING);
205 client_impl_.RegisterElement(element_id_, ElementListType::ACTIVE); 175 client_impl_.RegisterElement(element_id_, ElementListType::ACTIVE);
206 176
207 scoped_refptr<AnimationPlayer> player1 = 177 scoped_refptr<AnimationPlayer> player1 =
208 AnimationPlayer::Create(AnimationIdProvider::NextPlayerId()); 178 AnimationPlayer::Create(AnimationIdProvider::NextPlayerId());
209 scoped_refptr<AnimationPlayer> player2 = 179 scoped_refptr<AnimationPlayer> player2 =
210 AnimationPlayer::Create(AnimationIdProvider::NextPlayerId()); 180 AnimationPlayer::Create(AnimationIdProvider::NextPlayerId());
211 181
212 host_->AddAnimationTimeline(timeline_); 182 host_->AddAnimationTimeline(timeline_);
213
214 timeline_->AttachPlayer(player1); 183 timeline_->AttachPlayer(player1);
215 EXPECT_TRUE(timeline_->needs_push_properties());
216
217 timeline_->AttachPlayer(player2); 184 timeline_->AttachPlayer(player2);
218 EXPECT_TRUE(timeline_->needs_push_properties());
219 185
220 player1->set_animation_delegate(&delegate1); 186 player1->set_animation_delegate(&delegate1);
221 player2->set_animation_delegate(&delegate2); 187 player2->set_animation_delegate(&delegate2);
222 188
223 // Attach players to the same layer. 189 // Attach players to the same layer.
224 player1->AttachElement(element_id_); 190 player1->AttachElement(element_id_);
225 player2->AttachElement(element_id_); 191 player2->AttachElement(element_id_);
226 192
227 const float start_opacity = .7f; 193 const float start_opacity = .7f;
228 const float end_opacity = .3f; 194 const float end_opacity = .3f;
(...skipping 20 matching lines...) Expand all
249 base::TimeTicks time; 215 base::TimeTicks time;
250 time += base::TimeDelta::FromSecondsD(0.1); 216 time += base::TimeDelta::FromSecondsD(0.1);
251 AnimateLayersTransferEvents(time, 2u); 217 AnimateLayersTransferEvents(time, 2u);
252 218
253 EXPECT_TRUE(delegate1.started()); 219 EXPECT_TRUE(delegate1.started());
254 EXPECT_FALSE(delegate1.finished()); 220 EXPECT_FALSE(delegate1.finished());
255 221
256 EXPECT_TRUE(delegate2.started()); 222 EXPECT_TRUE(delegate2.started());
257 EXPECT_FALSE(delegate2.finished()); 223 EXPECT_FALSE(delegate2.finished());
258 224
259 EXPECT_FALSE(player1->needs_push_properties());
260 EXPECT_FALSE(player2->needs_push_properties());
261
262 time += base::TimeDelta::FromSecondsD(duration); 225 time += base::TimeDelta::FromSecondsD(duration);
263 AnimateLayersTransferEvents(time, 2u); 226 AnimateLayersTransferEvents(time, 2u);
264 227
265 EXPECT_TRUE(delegate1.finished()); 228 EXPECT_TRUE(delegate1.finished());
266 EXPECT_TRUE(delegate2.finished()); 229 EXPECT_TRUE(delegate2.finished());
267 230
268 EXPECT_FALSE(player1->needs_push_properties());
269 EXPECT_FALSE(player2->needs_push_properties());
270
271 client_.ExpectOpacityPropertyMutated(element_id_, ElementListType::ACTIVE, 231 client_.ExpectOpacityPropertyMutated(element_id_, ElementListType::ACTIVE,
272 end_opacity); 232 end_opacity);
273 client_.ExpectTransformPropertyMutated(element_id_, ElementListType::ACTIVE, 233 client_.ExpectTransformPropertyMutated(element_id_, ElementListType::ACTIVE,
274 transform_x, transform_y); 234 transform_x, transform_y);
275 235
276 client_impl_.ExpectOpacityPropertyMutated( 236 client_impl_.ExpectOpacityPropertyMutated(
277 element_id_, ElementListType::ACTIVE, end_opacity); 237 element_id_, ElementListType::ACTIVE, end_opacity);
278 client_impl_.ExpectTransformPropertyMutated( 238 client_impl_.ExpectTransformPropertyMutated(
279 element_id_, ElementListType::ACTIVE, transform_x, transform_y); 239 element_id_, ElementListType::ACTIVE, transform_x, transform_y);
280 240
(...skipping 10 matching lines...) Expand all
291 251
292 const double duration = 1.; 252 const double duration = 1.;
293 const float start_opacity = .7f; 253 const float start_opacity = .7f;
294 const float end_opacity = .3f; 254 const float end_opacity = .3f;
295 255
296 const int filter_id = 256 const int filter_id =
297 AddAnimatedFilterToPlayer(player_.get(), duration, 0.1f, 0.9f); 257 AddAnimatedFilterToPlayer(player_.get(), duration, 0.1f, 0.9f);
298 const int opacity_id = AddOpacityTransitionToPlayer( 258 const int opacity_id = AddOpacityTransitionToPlayer(
299 player_.get(), duration, start_opacity, end_opacity, false); 259 player_.get(), duration, start_opacity, end_opacity, false);
300 260
301 EXPECT_FALSE(player_->needs_push_properties());
302
303 host_->AddAnimationTimeline(timeline_); 261 host_->AddAnimationTimeline(timeline_);
304 timeline_->AttachPlayer(player_); 262 timeline_->AttachPlayer(player_);
305 263
306 EXPECT_FALSE(player_->needs_push_properties());
307 EXPECT_FALSE(player_->element_animations()); 264 EXPECT_FALSE(player_->element_animations());
308 player_->RemoveAnimation(filter_id); 265 player_->RemoveAnimation(filter_id);
309 EXPECT_FALSE(player_->needs_push_properties());
310 266
311 player_->AttachElement(element_id_); 267 player_->AttachElement(element_id_);
312 268
313 EXPECT_TRUE(player_->element_animations()); 269 EXPECT_TRUE(player_->element_animations());
314 EXPECT_FALSE(player_->element_animations() 270 EXPECT_FALSE(player_->element_animations()
315 ->GetAnimationById(filter_id)); 271 ->GetAnimationById(filter_id));
316 EXPECT_TRUE(player_->element_animations() 272 EXPECT_TRUE(player_->element_animations()
317 ->GetAnimationById(opacity_id)); 273 ->GetAnimationById(opacity_id));
318 EXPECT_TRUE(player_->needs_push_properties());
319 274
320 host_->PushPropertiesTo(host_impl_); 275 host_->PushPropertiesTo(host_impl_);
321 276
322 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, ElementListType::ACTIVE, 277 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, ElementListType::ACTIVE,
323 TargetProperty::OPACITY)); 278 TargetProperty::OPACITY));
324 EXPECT_FALSE(client_impl_.IsPropertyMutated( 279 EXPECT_FALSE(client_impl_.IsPropertyMutated(
325 element_id_, ElementListType::ACTIVE, TargetProperty::OPACITY)); 280 element_id_, ElementListType::ACTIVE, TargetProperty::OPACITY));
326 281
327 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, ElementListType::ACTIVE, 282 EXPECT_FALSE(client_.IsPropertyMutated(element_id_, ElementListType::ACTIVE,
328 TargetProperty::FILTER)); 283 TargetProperty::FILTER));
(...skipping 21 matching lines...) Expand all
350 EXPECT_FALSE(client_impl_.IsPropertyMutated( 305 EXPECT_FALSE(client_impl_.IsPropertyMutated(
351 element_id_, ElementListType::ACTIVE, TargetProperty::FILTER)); 306 element_id_, ElementListType::ACTIVE, TargetProperty::FILTER));
352 } 307 }
353 308
354 TEST_F(AnimationPlayerTest, AddRemoveAnimationCausesSetNeedsCommit) { 309 TEST_F(AnimationPlayerTest, AddRemoveAnimationCausesSetNeedsCommit) {
355 client_.RegisterElement(element_id_, ElementListType::ACTIVE); 310 client_.RegisterElement(element_id_, ElementListType::ACTIVE);
356 host_->AddAnimationTimeline(timeline_); 311 host_->AddAnimationTimeline(timeline_);
357 timeline_->AttachPlayer(player_); 312 timeline_->AttachPlayer(player_);
358 player_->AttachElement(element_id_); 313 player_->AttachElement(element_id_);
359 314
360 EXPECT_TRUE(client_.mutators_need_commit()); 315 EXPECT_FALSE(client_.mutators_need_commit());
361 client_.set_mutators_need_commit(false);
362 316
363 const int animation_id = 317 const int animation_id =
364 AddOpacityTransitionToPlayer(player_.get(), 1., .7f, .3f, false); 318 AddOpacityTransitionToPlayer(player_.get(), 1., .7f, .3f, false);
365 319
366 EXPECT_TRUE(client_.mutators_need_commit()); 320 EXPECT_TRUE(client_.mutators_need_commit());
367 client_.set_mutators_need_commit(false); 321 client_.set_mutators_need_commit(false);
368 322
369 player_->PauseAnimation(animation_id, 1.); 323 player_->PauseAnimation(animation_id, 1.);
370 EXPECT_TRUE(client_.mutators_need_commit()); 324 EXPECT_TRUE(client_.mutators_need_commit());
371 client_.set_mutators_need_commit(false); 325 client_.set_mutators_need_commit(false);
(...skipping 14 matching lines...) Expand all
386 340
387 GetImplTimelineAndPlayerByID(); 341 GetImplTimelineAndPlayerByID();
388 342
389 EXPECT_EQ(player_, GetPlayerForElementId(element_id_)); 343 EXPECT_EQ(player_, GetPlayerForElementId(element_id_));
390 EXPECT_TRUE(player_->element_animations()); 344 EXPECT_TRUE(player_->element_animations());
391 EXPECT_EQ(player_->element_id(), element_id_); 345 EXPECT_EQ(player_->element_id(), element_id_);
392 346
393 EXPECT_EQ(player_impl_, GetImplPlayerForLayerId(element_id_)); 347 EXPECT_EQ(player_impl_, GetImplPlayerForLayerId(element_id_));
394 EXPECT_TRUE(player_impl_->element_animations()); 348 EXPECT_TRUE(player_impl_->element_animations());
395 EXPECT_EQ(player_impl_->element_id(), element_id_); 349 EXPECT_EQ(player_impl_->element_id(), element_id_);
396 EXPECT_TRUE(CheckPlayerTimelineNeedsPushProperties(false));
397 350
398 const ElementId new_element_id(NextTestLayerId(), 0); 351 const ElementId new_element_id(NextTestLayerId(), 0);
399 player_->DetachElement(); 352 player_->DetachElement();
400 player_->AttachElement(new_element_id); 353 player_->AttachElement(new_element_id);
401 354
402 EXPECT_EQ(player_, GetPlayerForElementId(new_element_id)); 355 EXPECT_EQ(player_, GetPlayerForElementId(new_element_id));
403 EXPECT_TRUE(player_->element_animations()); 356 EXPECT_TRUE(player_->element_animations());
404 EXPECT_EQ(player_->element_id(), new_element_id); 357 EXPECT_EQ(player_->element_id(), new_element_id);
405 EXPECT_TRUE(CheckPlayerTimelineNeedsPushProperties(true));
406 358
407 host_->PushPropertiesTo(host_impl_); 359 host_->PushPropertiesTo(host_impl_);
408 360
409 EXPECT_EQ(player_impl_, GetImplPlayerForLayerId(new_element_id)); 361 EXPECT_EQ(player_impl_, GetImplPlayerForLayerId(new_element_id));
410 EXPECT_TRUE(player_impl_->element_animations()); 362 EXPECT_TRUE(player_impl_->element_animations());
411 EXPECT_EQ(player_impl_->element_id(), new_element_id); 363 EXPECT_EQ(player_impl_->element_id(), new_element_id);
412 } 364 }
413 365
414 } // namespace 366 } // namespace
415 } // namespace cc 367 } // namespace cc
OLDNEW
« no previous file with comments | « cc/animation/animation_player.cc ('k') | cc/animation/animation_timeline.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698