| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |