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

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

Issue 231133002: CC::Animations should use TimeTicks & TimeDelta to represent time (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Code changed as per review comments. Created 6 years, 7 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/layer_animation_controller.h" 5 #include "cc/animation/layer_animation_controller.h"
6 6
7 #include "cc/animation/animation.h" 7 #include "cc/animation/animation.h"
8 #include "cc/animation/animation_curve.h" 8 #include "cc/animation/animation_curve.h"
9 #include "cc/animation/animation_delegate.h" 9 #include "cc/animation/animation_delegate.h"
10 #include "cc/animation/animation_registrar.h" 10 #include "cc/animation/animation_registrar.h"
11 #include "cc/animation/keyframed_animation_curve.h" 11 #include "cc/animation/keyframed_animation_curve.h"
12 #include "cc/animation/scroll_offset_animation_curve.h" 12 #include "cc/animation/scroll_offset_animation_curve.h"
13 #include "cc/animation/transform_operations.h" 13 #include "cc/animation/transform_operations.h"
14 #include "cc/test/animation_test_common.h" 14 #include "cc/test/animation_test_common.h"
15 #include "testing/gmock/include/gmock/gmock.h" 15 #include "testing/gmock/include/gmock/gmock.h"
16 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
17 #include "ui/gfx/box_f.h" 17 #include "ui/gfx/box_f.h"
18 #include "ui/gfx/transform.h" 18 #include "ui/gfx/transform.h"
19 19
20 namespace cc { 20 namespace cc {
21 namespace { 21 namespace {
22 22
23 using base::TimeDelta;
24 using base::TimeTicks;
25
26 static base::TimeTicks TicksFromSecondsF(double seconds) {
27 return base::TimeTicks::FromInternalValue(seconds *
28 base::Time::kMicrosecondsPerSecond);
29 }
30
23 // A LayerAnimationController cannot be ticked at 0.0, since an animation 31 // A LayerAnimationController cannot be ticked at 0.0, since an animation
24 // with start time 0.0 is treated as an animation whose start time has 32 // with start time 0.0 is treated as an animation whose start time has
25 // not yet been set. 33 // not yet been set.
26 const double kInitialTickTime = 1.0; 34 const TimeTicks kInitialTickTime = TicksFromSecondsF(1.0);
27 35
28 scoped_ptr<Animation> CreateAnimation(scoped_ptr<AnimationCurve> curve, 36 scoped_ptr<Animation> CreateAnimation(scoped_ptr<AnimationCurve> curve,
29 int id, 37 int id,
30 Animation::TargetProperty property) { 38 Animation::TargetProperty property) {
31 return Animation::Create(curve.Pass(), 0, id, property); 39 return Animation::Create(curve.Pass(), 0, id, property);
32 } 40 }
33 41
34 TEST(LayerAnimationControllerTest, SyncNewAnimation) { 42 TEST(LayerAnimationControllerTest, SyncNewAnimation) {
35 FakeLayerAnimationValueObserver dummy_impl; 43 FakeLayerAnimationValueObserver dummy_impl;
36 scoped_refptr<LayerAnimationController> controller_impl( 44 scoped_refptr<LayerAnimationController> controller_impl(
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 94
87 // Synchronize the start times. 95 // Synchronize the start times.
88 EXPECT_EQ(1u, events.size()); 96 EXPECT_EQ(1u, events.size());
89 controller->NotifyAnimationStarted(events[0]); 97 controller->NotifyAnimationStarted(events[0]);
90 EXPECT_EQ(controller->GetAnimation(group_id, 98 EXPECT_EQ(controller->GetAnimation(group_id,
91 Animation::Opacity)->start_time(), 99 Animation::Opacity)->start_time(),
92 controller_impl->GetAnimation(group_id, 100 controller_impl->GetAnimation(group_id,
93 Animation::Opacity)->start_time()); 101 Animation::Opacity)->start_time());
94 102
95 // Start the animation on the main thread. Should not affect the start time. 103 // Start the animation on the main thread. Should not affect the start time.
96 controller->Animate(kInitialTickTime + 0.5); 104 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(500));
97 controller->UpdateState(true, NULL); 105 controller->UpdateState(true, NULL);
98 EXPECT_EQ(controller->GetAnimation(group_id, 106 EXPECT_EQ(controller->GetAnimation(group_id,
99 Animation::Opacity)->start_time(), 107 Animation::Opacity)->start_time(),
100 controller_impl->GetAnimation(group_id, 108 controller_impl->GetAnimation(group_id,
101 Animation::Opacity)->start_time()); 109 Animation::Opacity)->start_time());
102 } 110 }
103 111
104 TEST(LayerAnimationControllerTest, UseSpecifiedStartTimes) { 112 TEST(LayerAnimationControllerTest, UseSpecifiedStartTimes) {
105 FakeLayerAnimationValueObserver dummy_impl; 113 FakeLayerAnimationValueObserver dummy_impl;
106 scoped_refptr<LayerAnimationController> controller_impl( 114 scoped_refptr<LayerAnimationController> controller_impl(
107 LayerAnimationController::Create(0)); 115 LayerAnimationController::Create(0));
108 controller_impl->AddValueObserver(&dummy_impl); 116 controller_impl->AddValueObserver(&dummy_impl);
109 FakeLayerAnimationValueObserver dummy; 117 FakeLayerAnimationValueObserver dummy;
110 scoped_refptr<LayerAnimationController> controller( 118 scoped_refptr<LayerAnimationController> controller(
111 LayerAnimationController::Create(0)); 119 LayerAnimationController::Create(0));
112 controller->AddValueObserver(&dummy); 120 controller->AddValueObserver(&dummy);
113 121
114 AddOpacityTransitionToController(controller.get(), 1, 0, 1, false); 122 AddOpacityTransitionToController(controller.get(), 1, 0, 1, false);
115 int group_id = controller->GetAnimation(Animation::Opacity)->group(); 123 int group_id = controller->GetAnimation(Animation::Opacity)->group();
116 124
117 const double start_time = 123; 125 const TimeTicks start_time = TicksFromSecondsF(123);
118 controller->GetAnimation(Animation::Opacity)->set_start_time(start_time); 126 controller->GetAnimation(Animation::Opacity)->set_start_time(start_time);
119 127
120 controller->PushAnimationUpdatesTo(controller_impl.get()); 128 controller->PushAnimationUpdatesTo(controller_impl.get());
121 controller_impl->ActivateAnimations(); 129 controller_impl->ActivateAnimations();
122 130
123 EXPECT_TRUE(controller_impl->GetAnimation(group_id, Animation::Opacity)); 131 EXPECT_TRUE(controller_impl->GetAnimation(group_id, Animation::Opacity));
124 EXPECT_EQ(Animation::WaitingForTargetAvailability, 132 EXPECT_EQ(Animation::WaitingForTargetAvailability,
125 controller_impl->GetAnimation(group_id, 133 controller_impl->GetAnimation(group_id,
126 Animation::Opacity)->run_state()); 134 Animation::Opacity)->run_state());
127 135
128 AnimationEventsVector events; 136 AnimationEventsVector events;
129 controller_impl->Animate(kInitialTickTime); 137 controller_impl->Animate(kInitialTickTime);
130 controller_impl->UpdateState(true, &events); 138 controller_impl->UpdateState(true, &events);
131 139
132 // Synchronize the start times. 140 // Synchronize the start times.
133 EXPECT_EQ(1u, events.size()); 141 EXPECT_EQ(1u, events.size());
134 controller->NotifyAnimationStarted(events[0]); 142 controller->NotifyAnimationStarted(events[0]);
135 143
136 EXPECT_EQ(start_time, 144 EXPECT_EQ(start_time,
137 controller->GetAnimation(group_id, 145 controller->GetAnimation(group_id,
138 Animation::Opacity)->start_time()); 146 Animation::Opacity)->start_time());
139 EXPECT_EQ(controller->GetAnimation(group_id, 147 EXPECT_EQ(controller->GetAnimation(group_id,
140 Animation::Opacity)->start_time(), 148 Animation::Opacity)->start_time(),
141 controller_impl->GetAnimation(group_id, 149 controller_impl->GetAnimation(group_id,
142 Animation::Opacity)->start_time()); 150 Animation::Opacity)->start_time());
143 151
144 // Start the animation on the main thread. Should not affect the start time. 152 // Start the animation on the main thread. Should not affect the start time.
145 controller->Animate(kInitialTickTime + 0.5); 153 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(500));
146 controller->UpdateState(true, NULL); 154 controller->UpdateState(true, NULL);
147 EXPECT_EQ(start_time, 155 EXPECT_EQ(start_time,
148 controller->GetAnimation(group_id, 156 controller->GetAnimation(group_id,
149 Animation::Opacity)->start_time()); 157 Animation::Opacity)->start_time());
150 EXPECT_EQ(controller->GetAnimation(group_id, 158 EXPECT_EQ(controller->GetAnimation(group_id,
151 Animation::Opacity)->start_time(), 159 Animation::Opacity)->start_time(),
152 controller_impl->GetAnimation(group_id, 160 controller_impl->GetAnimation(group_id,
153 Animation::Opacity)->start_time()); 161 Animation::Opacity)->start_time());
154 } 162 }
155 163
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 EXPECT_EQ(1u, registrar_impl->active_animation_controllers().size()); 197 EXPECT_EQ(1u, registrar_impl->active_animation_controllers().size());
190 198
191 controller_impl->Animate(kInitialTickTime); 199 controller_impl->Animate(kInitialTickTime);
192 controller_impl->UpdateState(true, events.get()); 200 controller_impl->UpdateState(true, events.get());
193 EXPECT_EQ(1u, events->size()); 201 EXPECT_EQ(1u, events->size());
194 controller->NotifyAnimationStarted((*events)[0]); 202 controller->NotifyAnimationStarted((*events)[0]);
195 203
196 EXPECT_EQ(1u, registrar->active_animation_controllers().size()); 204 EXPECT_EQ(1u, registrar->active_animation_controllers().size());
197 EXPECT_EQ(1u, registrar_impl->active_animation_controllers().size()); 205 EXPECT_EQ(1u, registrar_impl->active_animation_controllers().size());
198 206
199 controller->Animate(kInitialTickTime + 0.5); 207 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(500));
200 controller->UpdateState(true, NULL); 208 controller->UpdateState(true, NULL);
201 EXPECT_EQ(1u, registrar->active_animation_controllers().size()); 209 EXPECT_EQ(1u, registrar->active_animation_controllers().size());
202 210
203 controller->Animate(kInitialTickTime + 1.0); 211 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1000));
204 controller->UpdateState(true, NULL); 212 controller->UpdateState(true, NULL);
205 EXPECT_EQ(Animation::Finished, 213 EXPECT_EQ(Animation::Finished,
206 controller->GetAnimation(Animation::Opacity)->run_state()); 214 controller->GetAnimation(Animation::Opacity)->run_state());
207 EXPECT_EQ(1u, registrar->active_animation_controllers().size()); 215 EXPECT_EQ(1u, registrar->active_animation_controllers().size());
208 216
209 events.reset(new AnimationEventsVector); 217 events.reset(new AnimationEventsVector);
210 controller_impl->Animate(kInitialTickTime + 1.5); 218 controller_impl->Animate(kInitialTickTime +
219 TimeDelta::FromMilliseconds(1500));
211 controller_impl->UpdateState(true, events.get()); 220 controller_impl->UpdateState(true, events.get());
212 221
213 EXPECT_EQ(Animation::WaitingForDeletion, 222 EXPECT_EQ(Animation::WaitingForDeletion,
214 controller_impl->GetAnimation(Animation::Opacity)->run_state()); 223 controller_impl->GetAnimation(Animation::Opacity)->run_state());
215 // The impl thread controller should have de-activated. 224 // The impl thread controller should have de-activated.
216 EXPECT_EQ(0u, registrar_impl->active_animation_controllers().size()); 225 EXPECT_EQ(0u, registrar_impl->active_animation_controllers().size());
217 226
218 EXPECT_EQ(1u, events->size()); 227 EXPECT_EQ(1u, events->size());
219 controller->NotifyAnimationFinished((*events)[0]); 228 controller->NotifyAnimationFinished((*events)[0]);
220 controller->Animate(kInitialTickTime + 1.5); 229 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1500));
221 controller->UpdateState(true, NULL); 230 controller->UpdateState(true, NULL);
222 231
223 EXPECT_EQ(Animation::WaitingForDeletion, 232 EXPECT_EQ(Animation::WaitingForDeletion,
224 controller->GetAnimation(Animation::Opacity)->run_state()); 233 controller->GetAnimation(Animation::Opacity)->run_state());
225 // The main thread controller should have de-activated. 234 // The main thread controller should have de-activated.
226 EXPECT_EQ(0u, registrar->active_animation_controllers().size()); 235 EXPECT_EQ(0u, registrar->active_animation_controllers().size());
227 236
228 controller->PushAnimationUpdatesTo(controller_impl.get()); 237 controller->PushAnimationUpdatesTo(controller_impl.get());
229 controller_impl->ActivateAnimations(); 238 controller_impl->ActivateAnimations();
230 EXPECT_FALSE(controller->has_any_animation()); 239 EXPECT_FALSE(controller->has_any_animation());
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 controller->Animate(kInitialTickTime); 276 controller->Animate(kInitialTickTime);
268 controller->UpdateState(true, NULL); 277 controller->UpdateState(true, NULL);
269 EXPECT_EQ(Animation::Running, 278 EXPECT_EQ(Animation::Running,
270 controller_impl->GetAnimation(group_id, 279 controller_impl->GetAnimation(group_id,
271 Animation::Opacity)->run_state()); 280 Animation::Opacity)->run_state());
272 EXPECT_EQ(Animation::Running, 281 EXPECT_EQ(Animation::Running,
273 controller->GetAnimation(group_id, 282 controller->GetAnimation(group_id,
274 Animation::Opacity)->run_state()); 283 Animation::Opacity)->run_state());
275 284
276 // Pause the main-thread animation. 285 // Pause the main-thread animation.
277 controller->PauseAnimation(animation_id, kInitialTickTime + 1.0); 286 controller->PauseAnimation(
287 animation_id,
288 TimeDelta::FromMilliseconds(1000) + TimeDelta::FromMilliseconds(1000));
278 EXPECT_EQ(Animation::Paused, 289 EXPECT_EQ(Animation::Paused,
279 controller->GetAnimation(group_id, 290 controller->GetAnimation(group_id,
280 Animation::Opacity)->run_state()); 291 Animation::Opacity)->run_state());
281 292
282 // The pause run state change should make it to the impl thread controller. 293 // The pause run state change should make it to the impl thread controller.
283 controller->PushAnimationUpdatesTo(controller_impl.get()); 294 controller->PushAnimationUpdatesTo(controller_impl.get());
284 controller_impl->ActivateAnimations(); 295 controller_impl->ActivateAnimations();
285 EXPECT_EQ(Animation::Paused, 296 EXPECT_EQ(Animation::Paused,
286 controller_impl->GetAnimation(group_id, 297 controller_impl->GetAnimation(group_id,
287 Animation::Opacity)->run_state()); 298 Animation::Opacity)->run_state());
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 LayerAnimationController::Create(0)); 356 LayerAnimationController::Create(0));
346 controller->AddValueObserver(&dummy); 357 controller->AddValueObserver(&dummy);
347 controller_impl->AddValueObserver(&dummy_impl); 358 controller_impl->AddValueObserver(&dummy_impl);
348 359
349 AddOpacityTransitionToController(controller.get(), 1.0, 0.0f, 1.0f, false); 360 AddOpacityTransitionToController(controller.get(), 1.0, 0.0f, 1.0f, false);
350 controller->Animate(kInitialTickTime); 361 controller->Animate(kInitialTickTime);
351 controller->UpdateState(true, NULL); 362 controller->UpdateState(true, NULL);
352 controller->PushAnimationUpdatesTo(controller_impl.get()); 363 controller->PushAnimationUpdatesTo(controller_impl.get());
353 controller_impl->ActivateAnimations(); 364 controller_impl->ActivateAnimations();
354 365
355 controller_impl->Animate(kInitialTickTime + 0.5); 366 controller_impl->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(500));
356 controller_impl->UpdateState(true, events.get()); 367 controller_impl->UpdateState(true, events.get());
357 368
358 // There should be a Started event for the animation. 369 // There should be a Started event for the animation.
359 EXPECT_EQ(1u, events->size()); 370 EXPECT_EQ(1u, events->size());
360 EXPECT_EQ(AnimationEvent::Started, (*events)[0].type); 371 EXPECT_EQ(AnimationEvent::Started, (*events)[0].type);
361 controller->NotifyAnimationStarted((*events)[0]); 372 controller->NotifyAnimationStarted((*events)[0]);
362 373
363 controller->Animate(kInitialTickTime + 1.0); 374 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1000));
364 controller->UpdateState(true, NULL); 375 controller->UpdateState(true, NULL);
365 376
366 EXPECT_FALSE(dummy.animation_waiting_for_deletion()); 377 EXPECT_FALSE(dummy.animation_waiting_for_deletion());
367 EXPECT_FALSE(dummy_impl.animation_waiting_for_deletion()); 378 EXPECT_FALSE(dummy_impl.animation_waiting_for_deletion());
368 379
369 events.reset(new AnimationEventsVector); 380 events.reset(new AnimationEventsVector);
370 controller_impl->Animate(kInitialTickTime + 2.0); 381 controller_impl->Animate(kInitialTickTime +
382 TimeDelta::FromMilliseconds(2000));
371 controller_impl->UpdateState(true, events.get()); 383 controller_impl->UpdateState(true, events.get());
372 384
373 EXPECT_TRUE(dummy_impl.animation_waiting_for_deletion()); 385 EXPECT_TRUE(dummy_impl.animation_waiting_for_deletion());
374 386
375 // There should be a Finished event for the animation. 387 // There should be a Finished event for the animation.
376 EXPECT_EQ(1u, events->size()); 388 EXPECT_EQ(1u, events->size());
377 EXPECT_EQ(AnimationEvent::Finished, (*events)[0].type); 389 EXPECT_EQ(AnimationEvent::Finished, (*events)[0].type);
378 390
379 // Neither controller should have deleted the animation yet. 391 // Neither controller should have deleted the animation yet.
380 EXPECT_TRUE(controller->GetAnimation(Animation::Opacity)); 392 EXPECT_TRUE(controller->GetAnimation(Animation::Opacity));
381 EXPECT_TRUE(controller_impl->GetAnimation(Animation::Opacity)); 393 EXPECT_TRUE(controller_impl->GetAnimation(Animation::Opacity));
382 394
383 controller->NotifyAnimationFinished((*events)[0]); 395 controller->NotifyAnimationFinished((*events)[0]);
384 396
385 controller->Animate(kInitialTickTime + 3.0); 397 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(3000));
386 controller->UpdateState(true, NULL); 398 controller->UpdateState(true, NULL);
387 EXPECT_TRUE(dummy.animation_waiting_for_deletion()); 399 EXPECT_TRUE(dummy.animation_waiting_for_deletion());
388 400
389 controller->PushAnimationUpdatesTo(controller_impl.get()); 401 controller->PushAnimationUpdatesTo(controller_impl.get());
390 402
391 // Both controllers should now have deleted the animation. The impl controller 403 // Both controllers should now have deleted the animation. The impl controller
392 // should have deleted the animation even though activation has not occurred, 404 // should have deleted the animation even though activation has not occurred,
393 // since the animation was already waiting for deletion when 405 // since the animation was already waiting for deletion when
394 // PushAnimationUpdatesTo was called. 406 // PushAnimationUpdatesTo was called.
395 EXPECT_FALSE(controller->has_any_animation()); 407 EXPECT_FALSE(controller->has_any_animation());
(...skipping 26 matching lines...) Expand all
422 Animation::Opacity)); 434 Animation::Opacity));
423 435
424 controller->AddAnimation(to_add.Pass()); 436 controller->AddAnimation(to_add.Pass());
425 controller->Animate(kInitialTickTime); 437 controller->Animate(kInitialTickTime);
426 controller->UpdateState(true, events.get()); 438 controller->UpdateState(true, events.get());
427 EXPECT_TRUE(controller->HasActiveAnimation()); 439 EXPECT_TRUE(controller->HasActiveAnimation());
428 EXPECT_EQ(0.f, dummy.opacity()); 440 EXPECT_EQ(0.f, dummy.opacity());
429 // A non-impl-only animation should not generate property updates. 441 // A non-impl-only animation should not generate property updates.
430 const AnimationEvent* event = GetMostRecentPropertyUpdateEvent(events.get()); 442 const AnimationEvent* event = GetMostRecentPropertyUpdateEvent(events.get());
431 EXPECT_FALSE(event); 443 EXPECT_FALSE(event);
432 controller->Animate(kInitialTickTime + 1.0); 444 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1000));
433 controller->UpdateState(true, events.get()); 445 controller->UpdateState(true, events.get());
434 EXPECT_EQ(1.f, dummy.opacity()); 446 EXPECT_EQ(1.f, dummy.opacity());
435 EXPECT_FALSE(controller->HasActiveAnimation()); 447 EXPECT_FALSE(controller->HasActiveAnimation());
436 event = GetMostRecentPropertyUpdateEvent(events.get()); 448 event = GetMostRecentPropertyUpdateEvent(events.get());
437 EXPECT_FALSE(event); 449 EXPECT_FALSE(event);
438 } 450 }
439 451
440 TEST(LayerAnimationControllerTest, TrivialTransitionOnImpl) { 452 TEST(LayerAnimationControllerTest, TrivialTransitionOnImpl) {
441 scoped_ptr<AnimationEventsVector> events( 453 scoped_ptr<AnimationEventsVector> events(
442 make_scoped_ptr(new AnimationEventsVector)); 454 make_scoped_ptr(new AnimationEventsVector));
(...skipping 11 matching lines...) Expand all
454 controller_impl->AddAnimation(to_add.Pass()); 466 controller_impl->AddAnimation(to_add.Pass());
455 controller_impl->Animate(kInitialTickTime); 467 controller_impl->Animate(kInitialTickTime);
456 controller_impl->UpdateState(true, events.get()); 468 controller_impl->UpdateState(true, events.get());
457 EXPECT_TRUE(controller_impl->HasActiveAnimation()); 469 EXPECT_TRUE(controller_impl->HasActiveAnimation());
458 EXPECT_EQ(0.f, dummy_impl.opacity()); 470 EXPECT_EQ(0.f, dummy_impl.opacity());
459 EXPECT_EQ(2u, events->size()); 471 EXPECT_EQ(2u, events->size());
460 const AnimationEvent* start_opacity_event = 472 const AnimationEvent* start_opacity_event =
461 GetMostRecentPropertyUpdateEvent(events.get()); 473 GetMostRecentPropertyUpdateEvent(events.get());
462 EXPECT_EQ(0.f, start_opacity_event->opacity); 474 EXPECT_EQ(0.f, start_opacity_event->opacity);
463 475
464 controller_impl->Animate(kInitialTickTime + 1.0); 476 controller_impl->Animate(kInitialTickTime +
477 TimeDelta::FromMilliseconds(1000));
465 controller_impl->UpdateState(true, events.get()); 478 controller_impl->UpdateState(true, events.get());
466 EXPECT_EQ(1.f, dummy_impl.opacity()); 479 EXPECT_EQ(1.f, dummy_impl.opacity());
467 EXPECT_FALSE(controller_impl->HasActiveAnimation()); 480 EXPECT_FALSE(controller_impl->HasActiveAnimation());
468 EXPECT_EQ(4u, events->size()); 481 EXPECT_EQ(4u, events->size());
469 const AnimationEvent* end_opacity_event = 482 const AnimationEvent* end_opacity_event =
470 GetMostRecentPropertyUpdateEvent(events.get()); 483 GetMostRecentPropertyUpdateEvent(events.get());
471 EXPECT_EQ(1.f, end_opacity_event->opacity); 484 EXPECT_EQ(1.f, end_opacity_event->opacity);
472 } 485 }
473 486
474 TEST(LayerAnimationControllerTest, TrivialTransformOnImpl) { 487 TEST(LayerAnimationControllerTest, TrivialTransformOnImpl) {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
508 EXPECT_EQ(2u, events->size()); 521 EXPECT_EQ(2u, events->size());
509 const AnimationEvent* start_transform_event = 522 const AnimationEvent* start_transform_event =
510 GetMostRecentPropertyUpdateEvent(events.get()); 523 GetMostRecentPropertyUpdateEvent(events.get());
511 ASSERT_TRUE(start_transform_event); 524 ASSERT_TRUE(start_transform_event);
512 EXPECT_EQ(gfx::Transform(), start_transform_event->transform); 525 EXPECT_EQ(gfx::Transform(), start_transform_event->transform);
513 EXPECT_TRUE(start_transform_event->is_impl_only); 526 EXPECT_TRUE(start_transform_event->is_impl_only);
514 527
515 gfx::Transform expected_transform; 528 gfx::Transform expected_transform;
516 expected_transform.Translate(delta_x, delta_y); 529 expected_transform.Translate(delta_x, delta_y);
517 530
518 controller_impl->Animate(kInitialTickTime + 1.0); 531 controller_impl->Animate(kInitialTickTime +
532 TimeDelta::FromMilliseconds(1000));
519 controller_impl->UpdateState(true, events.get()); 533 controller_impl->UpdateState(true, events.get());
520 EXPECT_EQ(expected_transform, dummy_impl.transform()); 534 EXPECT_EQ(expected_transform, dummy_impl.transform());
521 EXPECT_FALSE(controller_impl->HasActiveAnimation()); 535 EXPECT_FALSE(controller_impl->HasActiveAnimation());
522 EXPECT_EQ(4u, events->size()); 536 EXPECT_EQ(4u, events->size());
523 const AnimationEvent* end_transform_event = 537 const AnimationEvent* end_transform_event =
524 GetMostRecentPropertyUpdateEvent(events.get()); 538 GetMostRecentPropertyUpdateEvent(events.get());
525 EXPECT_EQ(expected_transform, end_transform_event->transform); 539 EXPECT_EQ(expected_transform, end_transform_event->transform);
526 EXPECT_TRUE(end_transform_event->is_impl_only); 540 EXPECT_TRUE(end_transform_event->is_impl_only);
527 } 541 }
528 542
(...skipping 22 matching lines...) Expand all
551 controller->AddAnimation(animation.Pass()); 565 controller->AddAnimation(animation.Pass());
552 566
553 controller->Animate(kInitialTickTime); 567 controller->Animate(kInitialTickTime);
554 controller->UpdateState(true, events.get()); 568 controller->UpdateState(true, events.get());
555 EXPECT_TRUE(controller->HasActiveAnimation()); 569 EXPECT_TRUE(controller->HasActiveAnimation());
556 EXPECT_EQ(start_filters, dummy.filters()); 570 EXPECT_EQ(start_filters, dummy.filters());
557 // A non-impl-only animation should not generate property updates. 571 // A non-impl-only animation should not generate property updates.
558 const AnimationEvent* event = GetMostRecentPropertyUpdateEvent(events.get()); 572 const AnimationEvent* event = GetMostRecentPropertyUpdateEvent(events.get());
559 EXPECT_FALSE(event); 573 EXPECT_FALSE(event);
560 574
561 controller->Animate(kInitialTickTime + 0.5); 575 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(500));
562 controller->UpdateState(true, events.get()); 576 controller->UpdateState(true, events.get());
563 EXPECT_EQ(1u, dummy.filters().size()); 577 EXPECT_EQ(1u, dummy.filters().size());
564 EXPECT_EQ(FilterOperation::CreateBrightnessFilter(1.5f), 578 EXPECT_EQ(FilterOperation::CreateBrightnessFilter(1.5f),
565 dummy.filters().at(0)); 579 dummy.filters().at(0));
566 event = GetMostRecentPropertyUpdateEvent(events.get()); 580 event = GetMostRecentPropertyUpdateEvent(events.get());
567 EXPECT_FALSE(event); 581 EXPECT_FALSE(event);
568 582
569 controller->Animate(kInitialTickTime + 1.0); 583 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1000));
570 controller->UpdateState(true, events.get()); 584 controller->UpdateState(true, events.get());
571 EXPECT_EQ(end_filters, dummy.filters()); 585 EXPECT_EQ(end_filters, dummy.filters());
572 EXPECT_FALSE(controller->HasActiveAnimation()); 586 EXPECT_FALSE(controller->HasActiveAnimation());
573 event = GetMostRecentPropertyUpdateEvent(events.get()); 587 event = GetMostRecentPropertyUpdateEvent(events.get());
574 EXPECT_FALSE(event); 588 EXPECT_FALSE(event);
575 } 589 }
576 590
577 TEST(LayerAnimationControllerTest, FilterTransitionOnImplOnly) { 591 TEST(LayerAnimationControllerTest, FilterTransitionOnImplOnly) {
578 scoped_ptr<AnimationEventsVector> events( 592 scoped_ptr<AnimationEventsVector> events(
579 make_scoped_ptr(new AnimationEventsVector)); 593 make_scoped_ptr(new AnimationEventsVector));
(...skipping 25 matching lines...) Expand all
605 controller_impl->UpdateState(true, events.get()); 619 controller_impl->UpdateState(true, events.get());
606 EXPECT_TRUE(controller_impl->HasActiveAnimation()); 620 EXPECT_TRUE(controller_impl->HasActiveAnimation());
607 EXPECT_EQ(start_filters, dummy_impl.filters()); 621 EXPECT_EQ(start_filters, dummy_impl.filters());
608 EXPECT_EQ(2u, events->size()); 622 EXPECT_EQ(2u, events->size());
609 const AnimationEvent* start_filter_event = 623 const AnimationEvent* start_filter_event =
610 GetMostRecentPropertyUpdateEvent(events.get()); 624 GetMostRecentPropertyUpdateEvent(events.get());
611 EXPECT_TRUE(start_filter_event); 625 EXPECT_TRUE(start_filter_event);
612 EXPECT_EQ(start_filters, start_filter_event->filters); 626 EXPECT_EQ(start_filters, start_filter_event->filters);
613 EXPECT_TRUE(start_filter_event->is_impl_only); 627 EXPECT_TRUE(start_filter_event->is_impl_only);
614 628
615 controller_impl->Animate(kInitialTickTime + 1.0); 629 controller_impl->Animate(kInitialTickTime +
630 TimeDelta::FromMilliseconds(1000));
616 controller_impl->UpdateState(true, events.get()); 631 controller_impl->UpdateState(true, events.get());
617 EXPECT_EQ(end_filters, dummy_impl.filters()); 632 EXPECT_EQ(end_filters, dummy_impl.filters());
618 EXPECT_FALSE(controller_impl->HasActiveAnimation()); 633 EXPECT_FALSE(controller_impl->HasActiveAnimation());
619 EXPECT_EQ(4u, events->size()); 634 EXPECT_EQ(4u, events->size());
620 const AnimationEvent* end_filter_event = 635 const AnimationEvent* end_filter_event =
621 GetMostRecentPropertyUpdateEvent(events.get()); 636 GetMostRecentPropertyUpdateEvent(events.get());
622 EXPECT_TRUE(end_filter_event); 637 EXPECT_TRUE(end_filter_event);
623 EXPECT_EQ(end_filters, end_filter_event->filters); 638 EXPECT_EQ(end_filters, end_filter_event->filters);
624 EXPECT_TRUE(end_filter_event->is_impl_only); 639 EXPECT_TRUE(end_filter_event->is_impl_only);
625 } 640 }
(...skipping 23 matching lines...) Expand all
649 664
650 scoped_ptr<Animation> animation(Animation::Create( 665 scoped_ptr<Animation> animation(Animation::Create(
651 curve.PassAs<AnimationCurve>(), 1, 0, Animation::ScrollOffset)); 666 curve.PassAs<AnimationCurve>(), 1, 0, Animation::ScrollOffset));
652 animation->set_needs_synchronized_start_time(true); 667 animation->set_needs_synchronized_start_time(true);
653 controller->AddAnimation(animation.Pass()); 668 controller->AddAnimation(animation.Pass());
654 669
655 dummy_provider_impl.set_scroll_offset(initial_value); 670 dummy_provider_impl.set_scroll_offset(initial_value);
656 controller->PushAnimationUpdatesTo(controller_impl.get()); 671 controller->PushAnimationUpdatesTo(controller_impl.get());
657 controller_impl->ActivateAnimations(); 672 controller_impl->ActivateAnimations();
658 EXPECT_TRUE(controller_impl->GetAnimation(Animation::ScrollOffset)); 673 EXPECT_TRUE(controller_impl->GetAnimation(Animation::ScrollOffset));
659 double duration = controller_impl->GetAnimation( 674 double duration_in_seconds =
660 Animation::ScrollOffset)->curve()->Duration(); 675 controller_impl->GetAnimation(Animation::ScrollOffset)
661 676 ->curve()
677 ->Duration();
678 TimeDelta duration = TimeDelta::FromMicroseconds(
679 duration_in_seconds * base::Time::kMicrosecondsPerSecond);
662 EXPECT_EQ( 680 EXPECT_EQ(
663 duration, 681 duration_in_seconds,
664 controller->GetAnimation(Animation::ScrollOffset)->curve()->Duration()); 682 controller->GetAnimation(Animation::ScrollOffset)->curve()->Duration());
665
ajuma 2014/05/07 17:04:42 Please keep this whitespace.
Sikugu_ 2014/05/12 16:01:53 Done.
666 controller->Animate(kInitialTickTime); 683 controller->Animate(kInitialTickTime);
667 controller->UpdateState(true, NULL); 684 controller->UpdateState(true, NULL);
668 EXPECT_TRUE(controller->HasActiveAnimation()); 685 EXPECT_TRUE(controller->HasActiveAnimation());
669 EXPECT_EQ(initial_value, dummy.scroll_offset()); 686 EXPECT_EQ(initial_value, dummy.scroll_offset());
670 687
671 controller_impl->Animate(kInitialTickTime); 688 controller_impl->Animate(kInitialTickTime);
672 controller_impl->UpdateState(true, events.get()); 689 controller_impl->UpdateState(true, events.get());
673 EXPECT_TRUE(controller_impl->HasActiveAnimation()); 690 EXPECT_TRUE(controller_impl->HasActiveAnimation());
674 EXPECT_EQ(initial_value, dummy_impl.scroll_offset()); 691 EXPECT_EQ(initial_value, dummy_impl.scroll_offset());
675 // Scroll offset animations should not generate property updates. 692 // Scroll offset animations should not generate property updates.
676 const AnimationEvent* event = GetMostRecentPropertyUpdateEvent(events.get()); 693 const AnimationEvent* event = GetMostRecentPropertyUpdateEvent(events.get());
677 EXPECT_FALSE(event); 694 EXPECT_FALSE(event);
678
ajuma 2014/05/07 17:04:42 Here too.
Sikugu_ 2014/05/12 16:01:53 Done.
679 controller->NotifyAnimationStarted((*events)[0]); 695 controller->NotifyAnimationStarted((*events)[0]);
680 controller->Animate(kInitialTickTime + duration/2.0); 696 controller->Animate(kInitialTickTime + duration / 2);
681 controller->UpdateState(true, NULL); 697 controller->UpdateState(true, NULL);
682 EXPECT_TRUE(controller->HasActiveAnimation()); 698 EXPECT_TRUE(controller->HasActiveAnimation());
683 EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(200.f, 250.f), dummy.scroll_offset()); 699 EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(200.f, 250.f), dummy.scroll_offset());
684 700
685 controller_impl->Animate(kInitialTickTime + duration/2.0); 701 controller_impl->Animate(kInitialTickTime + duration / 2);
686 controller_impl->UpdateState(true, events.get()); 702 controller_impl->UpdateState(true, events.get());
687 EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(200.f, 250.f), 703 EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(200.f, 250.f),
688 dummy_impl.scroll_offset()); 704 dummy_impl.scroll_offset());
689 event = GetMostRecentPropertyUpdateEvent(events.get()); 705 event = GetMostRecentPropertyUpdateEvent(events.get());
690 EXPECT_FALSE(event); 706 EXPECT_FALSE(event);
691 707
692 controller_impl->Animate(kInitialTickTime + duration); 708 controller_impl->Animate(kInitialTickTime + duration);
693 controller_impl->UpdateState(true, events.get()); 709 controller_impl->UpdateState(true, events.get());
694 EXPECT_VECTOR2DF_EQ(target_value, dummy_impl.scroll_offset()); 710 EXPECT_VECTOR2DF_EQ(target_value, dummy_impl.scroll_offset());
695 EXPECT_FALSE(controller_impl->HasActiveAnimation()); 711 EXPECT_FALSE(controller_impl->HasActiveAnimation());
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
728 744
729 scoped_ptr<Animation> animation(Animation::Create( 745 scoped_ptr<Animation> animation(Animation::Create(
730 curve.PassAs<AnimationCurve>(), 1, 0, Animation::ScrollOffset)); 746 curve.PassAs<AnimationCurve>(), 1, 0, Animation::ScrollOffset));
731 animation->set_needs_synchronized_start_time(true); 747 animation->set_needs_synchronized_start_time(true);
732 controller->AddAnimation(animation.Pass()); 748 controller->AddAnimation(animation.Pass());
733 749
734 dummy_provider.set_scroll_offset(initial_value); 750 dummy_provider.set_scroll_offset(initial_value);
735 controller->PushAnimationUpdatesTo(controller_impl.get()); 751 controller->PushAnimationUpdatesTo(controller_impl.get());
736 controller_impl->ActivateAnimations(); 752 controller_impl->ActivateAnimations();
737 EXPECT_TRUE(controller_impl->GetAnimation(Animation::ScrollOffset)); 753 EXPECT_TRUE(controller_impl->GetAnimation(Animation::ScrollOffset));
738 double duration = controller_impl->GetAnimation( 754 double duration_in_seconds =
739 Animation::ScrollOffset)->curve()->Duration(); 755 controller_impl->GetAnimation(Animation::ScrollOffset)
740 756 ->curve()
757 ->Duration();
741 EXPECT_EQ( 758 EXPECT_EQ(
742 duration, 759 duration_in_seconds,
743 controller->GetAnimation(Animation::ScrollOffset)->curve()->Duration()); 760 controller->GetAnimation(Animation::ScrollOffset)->curve()->Duration());
744 761
745 controller->Animate(kInitialTickTime); 762 controller->Animate(kInitialTickTime);
746 controller->UpdateState(true, NULL); 763 controller->UpdateState(true, NULL);
747 EXPECT_TRUE(controller->HasActiveAnimation()); 764 EXPECT_TRUE(controller->HasActiveAnimation());
748 EXPECT_EQ(initial_value, dummy.scroll_offset()); 765 EXPECT_EQ(initial_value, dummy.scroll_offset());
749 766
750 controller_impl->Animate(kInitialTickTime); 767 controller_impl->Animate(kInitialTickTime);
751 controller_impl->UpdateState(true, events.get()); 768 controller_impl->UpdateState(true, events.get());
752 EXPECT_TRUE(controller_impl->HasActiveAnimation()); 769 EXPECT_TRUE(controller_impl->HasActiveAnimation());
753 EXPECT_EQ(initial_value, dummy_impl.scroll_offset()); 770 EXPECT_EQ(initial_value, dummy_impl.scroll_offset());
754 // Scroll offset animations should not generate property updates. 771 // Scroll offset animations should not generate property updates.
755 const AnimationEvent* event = GetMostRecentPropertyUpdateEvent(events.get()); 772 const AnimationEvent* event = GetMostRecentPropertyUpdateEvent(events.get());
756 EXPECT_FALSE(event); 773 EXPECT_FALSE(event);
757 774
775 TimeDelta duration = TimeDelta::FromMicroseconds(
776 duration_in_seconds * base::Time::kMicrosecondsPerSecond);
777
758 controller->NotifyAnimationStarted((*events)[0]); 778 controller->NotifyAnimationStarted((*events)[0]);
759 controller->Animate(kInitialTickTime + duration/2.0); 779 controller->Animate(kInitialTickTime + duration / 2);
760 controller->UpdateState(true, NULL); 780 controller->UpdateState(true, NULL);
761 EXPECT_TRUE(controller->HasActiveAnimation()); 781 EXPECT_TRUE(controller->HasActiveAnimation());
762 EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(400.f, 150.f), dummy.scroll_offset()); 782 EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(400.f, 150.f), dummy.scroll_offset());
763 783
764 controller_impl->Animate(kInitialTickTime + duration/2.0); 784 controller_impl->Animate(kInitialTickTime + duration / 2);
765 controller_impl->UpdateState(true, events.get()); 785 controller_impl->UpdateState(true, events.get());
766 EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(400.f, 150.f), 786 EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(400.f, 150.f),
767 dummy_impl.scroll_offset()); 787 dummy_impl.scroll_offset());
768 event = GetMostRecentPropertyUpdateEvent(events.get()); 788 event = GetMostRecentPropertyUpdateEvent(events.get());
769 EXPECT_FALSE(event); 789 EXPECT_FALSE(event);
770 790
771 controller_impl->Animate(kInitialTickTime + duration); 791 controller_impl->Animate(kInitialTickTime + duration);
772 controller_impl->UpdateState(true, events.get()); 792 controller_impl->UpdateState(true, events.get());
773 EXPECT_VECTOR2DF_EQ(target_value, dummy_impl.scroll_offset()); 793 EXPECT_VECTOR2DF_EQ(target_value, dummy_impl.scroll_offset());
774 EXPECT_FALSE(controller_impl->HasActiveAnimation()); 794 EXPECT_FALSE(controller_impl->HasActiveAnimation());
(...skipping 14 matching lines...) Expand all
789 scoped_ptr<AnimationEventsVector> events( 809 scoped_ptr<AnimationEventsVector> events(
790 make_scoped_ptr(new AnimationEventsVector)); 810 make_scoped_ptr(new AnimationEventsVector));
791 811
792 gfx::Vector2dF initial_value(100.f, 300.f); 812 gfx::Vector2dF initial_value(100.f, 300.f);
793 gfx::Vector2dF target_value(300.f, 200.f); 813 gfx::Vector2dF target_value(300.f, 200.f);
794 scoped_ptr<ScrollOffsetAnimationCurve> curve( 814 scoped_ptr<ScrollOffsetAnimationCurve> curve(
795 ScrollOffsetAnimationCurve::Create( 815 ScrollOffsetAnimationCurve::Create(
796 target_value, 816 target_value,
797 EaseInOutTimingFunction::Create().Pass())); 817 EaseInOutTimingFunction::Create().Pass()));
798 curve->SetInitialValue(initial_value); 818 curve->SetInitialValue(initial_value);
799 double duration = curve->Duration(); 819 double duration_in_seconds = curve->Duration();
800 820
801 scoped_ptr<Animation> animation(Animation::Create( 821 scoped_ptr<Animation> animation(Animation::Create(
802 curve.PassAs<AnimationCurve>(), 1, 0, Animation::ScrollOffset)); 822 curve.PassAs<AnimationCurve>(), 1, 0, Animation::ScrollOffset));
803 animation->set_is_impl_only(true); 823 animation->set_is_impl_only(true);
804 controller_impl->AddAnimation(animation.Pass()); 824 controller_impl->AddAnimation(animation.Pass());
805 825
806 controller_impl->Animate(kInitialTickTime); 826 controller_impl->Animate(kInitialTickTime);
807 controller_impl->UpdateState(true, events.get()); 827 controller_impl->UpdateState(true, events.get());
808 EXPECT_TRUE(controller_impl->HasActiveAnimation()); 828 EXPECT_TRUE(controller_impl->HasActiveAnimation());
809 EXPECT_EQ(initial_value, dummy_impl.scroll_offset()); 829 EXPECT_EQ(initial_value, dummy_impl.scroll_offset());
810 // Scroll offset animations should not generate property updates. 830 // Scroll offset animations should not generate property updates.
811 const AnimationEvent* event = GetMostRecentPropertyUpdateEvent(events.get()); 831 const AnimationEvent* event = GetMostRecentPropertyUpdateEvent(events.get());
812 EXPECT_FALSE(event); 832 EXPECT_FALSE(event);
813 833
814 controller_impl->Animate(kInitialTickTime + duration/2.0); 834 TimeDelta duration = TimeDelta::FromMicroseconds(
835 duration_in_seconds * base::Time::kMicrosecondsPerSecond);
836
837 controller_impl->Animate(kInitialTickTime + duration / 2);
815 controller_impl->UpdateState(true, events.get()); 838 controller_impl->UpdateState(true, events.get());
816 EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(200.f, 250.f), 839 EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(200.f, 250.f),
817 dummy_impl.scroll_offset()); 840 dummy_impl.scroll_offset());
818 event = GetMostRecentPropertyUpdateEvent(events.get()); 841 event = GetMostRecentPropertyUpdateEvent(events.get());
819 EXPECT_FALSE(event); 842 EXPECT_FALSE(event);
820 843
821 controller_impl->Animate(kInitialTickTime + duration); 844 controller_impl->Animate(kInitialTickTime + duration);
822 controller_impl->UpdateState(true, events.get()); 845 controller_impl->UpdateState(true, events.get());
823 EXPECT_VECTOR2DF_EQ(target_value, dummy_impl.scroll_offset()); 846 EXPECT_VECTOR2DF_EQ(target_value, dummy_impl.scroll_offset());
824 EXPECT_FALSE(controller_impl->HasActiveAnimation()); 847 EXPECT_FALSE(controller_impl->HasActiveAnimation());
825 event = GetMostRecentPropertyUpdateEvent(events.get()); 848 event = GetMostRecentPropertyUpdateEvent(events.get());
826 EXPECT_FALSE(event); 849 EXPECT_FALSE(event);
827 } 850 }
828 851
829 class FakeAnimationDelegate : public AnimationDelegate { 852 class FakeAnimationDelegate : public AnimationDelegate {
830 public: 853 public:
831 FakeAnimationDelegate() 854 FakeAnimationDelegate()
832 : started_(false), 855 : started_(false),
833 finished_(false) {} 856 finished_(false) {}
834 857
835 virtual void NotifyAnimationStarted( 858 virtual void NotifyAnimationStarted(
836 base::TimeTicks monotonic_time, 859 TimeTicks monotonic_time,
837 Animation::TargetProperty target_property) OVERRIDE { 860 Animation::TargetProperty target_property) OVERRIDE {
838 started_ = true; 861 started_ = true;
839 } 862 }
840 863
841 virtual void NotifyAnimationFinished( 864 virtual void NotifyAnimationFinished(
842 base::TimeTicks monotonic_time, 865 TimeTicks monotonic_time,
843 Animation::TargetProperty target_property) OVERRIDE { 866 Animation::TargetProperty target_property) OVERRIDE {
844 finished_ = true; 867 finished_ = true;
845 } 868 }
846 869
847 bool started() { return started_; } 870 bool started() { return started_; }
848 871
849 bool finished() { return finished_; } 872 bool finished() { return finished_; }
850 873
851 private: 874 private:
852 bool started_; 875 bool started_;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
887 EXPECT_EQ(AnimationEvent::PropertyUpdate, (*events)[1].type); 910 EXPECT_EQ(AnimationEvent::PropertyUpdate, (*events)[1].type);
888 EXPECT_TRUE((*events)[1].is_impl_only); 911 EXPECT_TRUE((*events)[1].is_impl_only);
889 912
890 // Passing on the start event to the main thread controller should cause the 913 // Passing on the start event to the main thread controller should cause the
891 // delegate to get notified. 914 // delegate to get notified.
892 EXPECT_FALSE(delegate.started()); 915 EXPECT_FALSE(delegate.started());
893 controller->NotifyAnimationStarted((*events)[0]); 916 controller->NotifyAnimationStarted((*events)[0]);
894 EXPECT_TRUE(delegate.started()); 917 EXPECT_TRUE(delegate.started());
895 918
896 events.reset(new AnimationEventsVector); 919 events.reset(new AnimationEventsVector);
897 controller_impl->Animate(kInitialTickTime + 1.0); 920 controller_impl->Animate(kInitialTickTime +
921 TimeDelta::FromMilliseconds(1000));
898 controller_impl->UpdateState(true, events.get()); 922 controller_impl->UpdateState(true, events.get());
899 923
900 // We should receive 2 events (a finished notification and a property update). 924 // We should receive 2 events (a finished notification and a property update).
901 EXPECT_EQ(2u, events->size()); 925 EXPECT_EQ(2u, events->size());
902 EXPECT_EQ(AnimationEvent::Finished, (*events)[0].type); 926 EXPECT_EQ(AnimationEvent::Finished, (*events)[0].type);
903 EXPECT_TRUE((*events)[0].is_impl_only); 927 EXPECT_TRUE((*events)[0].is_impl_only);
904 EXPECT_EQ(AnimationEvent::PropertyUpdate, (*events)[1].type); 928 EXPECT_EQ(AnimationEvent::PropertyUpdate, (*events)[1].type);
905 EXPECT_TRUE((*events)[1].is_impl_only); 929 EXPECT_TRUE((*events)[1].is_impl_only);
906 930
907 // Passing on the finished event to the main thread controller should cause 931 // Passing on the finished event to the main thread controller should cause
(...skipping 20 matching lines...) Expand all
928 Animation::Opacity)); 952 Animation::Opacity));
929 to_add->set_needs_synchronized_start_time(true); 953 to_add->set_needs_synchronized_start_time(true);
930 954
931 // We should pause at the first keyframe indefinitely waiting for that 955 // We should pause at the first keyframe indefinitely waiting for that
932 // animation to start. 956 // animation to start.
933 controller->AddAnimation(to_add.Pass()); 957 controller->AddAnimation(to_add.Pass());
934 controller->Animate(kInitialTickTime); 958 controller->Animate(kInitialTickTime);
935 controller->UpdateState(true, events.get()); 959 controller->UpdateState(true, events.get());
936 EXPECT_TRUE(controller->HasActiveAnimation()); 960 EXPECT_TRUE(controller->HasActiveAnimation());
937 EXPECT_EQ(0.f, dummy.opacity()); 961 EXPECT_EQ(0.f, dummy.opacity());
938 controller->Animate(kInitialTickTime + 1.0); 962 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1000));
939 controller->UpdateState(true, events.get()); 963 controller->UpdateState(true, events.get());
940 EXPECT_TRUE(controller->HasActiveAnimation()); 964 EXPECT_TRUE(controller->HasActiveAnimation());
941 EXPECT_EQ(0.f, dummy.opacity()); 965 EXPECT_EQ(0.f, dummy.opacity());
942 controller->Animate(kInitialTickTime + 2.0); 966 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(2000));
943 controller->UpdateState(true, events.get()); 967 controller->UpdateState(true, events.get());
944 EXPECT_TRUE(controller->HasActiveAnimation()); 968 EXPECT_TRUE(controller->HasActiveAnimation());
945 EXPECT_EQ(0.f, dummy.opacity()); 969 EXPECT_EQ(0.f, dummy.opacity());
946 970
947 // Send the synchronized start time. 971 // Send the synchronized start time.
948 controller->NotifyAnimationStarted(AnimationEvent( 972 controller->NotifyAnimationStarted(
949 AnimationEvent::Started, 0, 1, Animation::Opacity, kInitialTickTime + 2)); 973 AnimationEvent(AnimationEvent::Started,
950 controller->Animate(kInitialTickTime + 5.0); 974 0,
975 1,
976 Animation::Opacity,
977 kInitialTickTime + TimeDelta::FromMilliseconds(2000)));
978 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(5000));
951 controller->UpdateState(true, events.get()); 979 controller->UpdateState(true, events.get());
952 EXPECT_EQ(1.f, dummy.opacity()); 980 EXPECT_EQ(1.f, dummy.opacity());
953 EXPECT_FALSE(controller->HasActiveAnimation()); 981 EXPECT_FALSE(controller->HasActiveAnimation());
954 } 982 }
955 983
956 // Tests that two queued animations affecting the same property run in sequence. 984 // Tests that two queued animations affecting the same property run in sequence.
957 TEST(LayerAnimationControllerTest, TrivialQueuing) { 985 TEST(LayerAnimationControllerTest, TrivialQueuing) {
958 scoped_ptr<AnimationEventsVector> events( 986 scoped_ptr<AnimationEventsVector> events(
959 make_scoped_ptr(new AnimationEventsVector)); 987 make_scoped_ptr(new AnimationEventsVector));
960 FakeLayerAnimationValueObserver dummy; 988 FakeLayerAnimationValueObserver dummy;
961 scoped_refptr<LayerAnimationController> controller( 989 scoped_refptr<LayerAnimationController> controller(
962 LayerAnimationController::Create(0)); 990 LayerAnimationController::Create(0));
963 controller->AddValueObserver(&dummy); 991 controller->AddValueObserver(&dummy);
964 992
965 controller->AddAnimation(CreateAnimation( 993 controller->AddAnimation(CreateAnimation(
966 scoped_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)).Pass(), 994 scoped_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)).Pass(),
967 1, 995 1,
968 Animation::Opacity)); 996 Animation::Opacity));
969 controller->AddAnimation(CreateAnimation( 997 controller->AddAnimation(CreateAnimation(
970 scoped_ptr<AnimationCurve>( 998 scoped_ptr<AnimationCurve>(
971 new FakeFloatTransition(1.0, 1.f, 0.5f)).Pass(), 999 new FakeFloatTransition(1.0, 1.f, 0.5f)).Pass(),
972 2, 1000 2,
973 Animation::Opacity)); 1001 Animation::Opacity));
974 1002
975 controller->Animate(kInitialTickTime); 1003 controller->Animate(kInitialTickTime);
976 controller->UpdateState(true, events.get()); 1004 controller->UpdateState(true, events.get());
977 EXPECT_TRUE(controller->HasActiveAnimation()); 1005 EXPECT_TRUE(controller->HasActiveAnimation());
978 EXPECT_EQ(0.f, dummy.opacity()); 1006 EXPECT_EQ(0.f, dummy.opacity());
979 controller->Animate(kInitialTickTime + 1.0); 1007 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1000));
980 controller->UpdateState(true, events.get()); 1008 controller->UpdateState(true, events.get());
981 EXPECT_TRUE(controller->HasActiveAnimation()); 1009 EXPECT_TRUE(controller->HasActiveAnimation());
982 EXPECT_EQ(1.f, dummy.opacity()); 1010 EXPECT_EQ(1.f, dummy.opacity());
983 controller->Animate(kInitialTickTime + 2.0); 1011 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(2000));
984 controller->UpdateState(true, events.get()); 1012 controller->UpdateState(true, events.get());
985 EXPECT_EQ(0.5f, dummy.opacity()); 1013 EXPECT_EQ(0.5f, dummy.opacity());
986 EXPECT_FALSE(controller->HasActiveAnimation()); 1014 EXPECT_FALSE(controller->HasActiveAnimation());
987 } 1015 }
988 1016
989 // Tests interrupting a transition with another transition. 1017 // Tests interrupting a transition with another transition.
990 TEST(LayerAnimationControllerTest, Interrupt) { 1018 TEST(LayerAnimationControllerTest, Interrupt) {
991 scoped_ptr<AnimationEventsVector> events( 1019 scoped_ptr<AnimationEventsVector> events(
992 make_scoped_ptr(new AnimationEventsVector)); 1020 make_scoped_ptr(new AnimationEventsVector));
993 FakeLayerAnimationValueObserver dummy; 1021 FakeLayerAnimationValueObserver dummy;
(...skipping 12 matching lines...) Expand all
1006 scoped_ptr<Animation> to_add(CreateAnimation( 1034 scoped_ptr<Animation> to_add(CreateAnimation(
1007 scoped_ptr<AnimationCurve>( 1035 scoped_ptr<AnimationCurve>(
1008 new FakeFloatTransition(1.0, 1.f, 0.5f)).Pass(), 1036 new FakeFloatTransition(1.0, 1.f, 0.5f)).Pass(),
1009 2, 1037 2,
1010 Animation::Opacity)); 1038 Animation::Opacity));
1011 controller->AbortAnimations(Animation::Opacity); 1039 controller->AbortAnimations(Animation::Opacity);
1012 controller->AddAnimation(to_add.Pass()); 1040 controller->AddAnimation(to_add.Pass());
1013 1041
1014 // Since the previous animation was aborted, the new animation should start 1042 // Since the previous animation was aborted, the new animation should start
1015 // right in this call to animate. 1043 // right in this call to animate.
1016 controller->Animate(kInitialTickTime + 0.5); 1044 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(500));
1017 controller->UpdateState(true, events.get()); 1045 controller->UpdateState(true, events.get());
1018 EXPECT_TRUE(controller->HasActiveAnimation()); 1046 EXPECT_TRUE(controller->HasActiveAnimation());
1019 EXPECT_EQ(1.f, dummy.opacity()); 1047 EXPECT_EQ(1.f, dummy.opacity());
1020 controller->Animate(kInitialTickTime + 1.5); 1048 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1500));
1021 controller->UpdateState(true, events.get()); 1049 controller->UpdateState(true, events.get());
1022 EXPECT_EQ(0.5f, dummy.opacity()); 1050 EXPECT_EQ(0.5f, dummy.opacity());
1023 EXPECT_FALSE(controller->HasActiveAnimation()); 1051 EXPECT_FALSE(controller->HasActiveAnimation());
1024 } 1052 }
1025 1053
1026 // Tests scheduling two animations to run together when only one property is 1054 // Tests scheduling two animations to run together when only one property is
1027 // free. 1055 // free.
1028 TEST(LayerAnimationControllerTest, ScheduleTogetherWhenAPropertyIsBlocked) { 1056 TEST(LayerAnimationControllerTest, ScheduleTogetherWhenAPropertyIsBlocked) {
1029 scoped_ptr<AnimationEventsVector> events( 1057 scoped_ptr<AnimationEventsVector> events(
1030 make_scoped_ptr(new AnimationEventsVector)); 1058 make_scoped_ptr(new AnimationEventsVector));
(...skipping 12 matching lines...) Expand all
1043 Animation::Transform)); 1071 Animation::Transform));
1044 controller->AddAnimation(CreateAnimation( 1072 controller->AddAnimation(CreateAnimation(
1045 scoped_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)).Pass(), 1073 scoped_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)).Pass(),
1046 2, 1074 2,
1047 Animation::Opacity)); 1075 Animation::Opacity));
1048 1076
1049 controller->Animate(kInitialTickTime); 1077 controller->Animate(kInitialTickTime);
1050 controller->UpdateState(true, events.get()); 1078 controller->UpdateState(true, events.get());
1051 EXPECT_EQ(0.f, dummy.opacity()); 1079 EXPECT_EQ(0.f, dummy.opacity());
1052 EXPECT_TRUE(controller->HasActiveAnimation()); 1080 EXPECT_TRUE(controller->HasActiveAnimation());
1053 controller->Animate(kInitialTickTime + 1.0); 1081 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1000));
1054 controller->UpdateState(true, events.get()); 1082 controller->UpdateState(true, events.get());
1055 // Should not have started the float transition yet. 1083 // Should not have started the float transition yet.
1056 EXPECT_TRUE(controller->HasActiveAnimation()); 1084 EXPECT_TRUE(controller->HasActiveAnimation());
1057 EXPECT_EQ(0.f, dummy.opacity()); 1085 EXPECT_EQ(0.f, dummy.opacity());
1058 // The float animation should have started at time 1 and should be done. 1086 // The float animation should have started at time 1 and should be done.
1059 controller->Animate(kInitialTickTime + 2.0); 1087 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(2000));
1060 controller->UpdateState(true, events.get()); 1088 controller->UpdateState(true, events.get());
1061 EXPECT_EQ(1.f, dummy.opacity()); 1089 EXPECT_EQ(1.f, dummy.opacity());
1062 EXPECT_FALSE(controller->HasActiveAnimation()); 1090 EXPECT_FALSE(controller->HasActiveAnimation());
1063 } 1091 }
1064 1092
1065 // Tests scheduling two animations to run together with different lengths and 1093 // Tests scheduling two animations to run together with different lengths and
1066 // another animation queued to start when the shorter animation finishes (should 1094 // another animation queued to start when the shorter animation finishes (should
1067 // wait for both to finish). 1095 // wait for both to finish).
1068 TEST(LayerAnimationControllerTest, ScheduleTogetherWithAnAnimWaiting) { 1096 TEST(LayerAnimationControllerTest, ScheduleTogetherWithAnAnimWaiting) {
1069 scoped_ptr<AnimationEventsVector> events( 1097 scoped_ptr<AnimationEventsVector> events(
(...skipping 18 matching lines...) Expand all
1088 Animation::Opacity)); 1116 Animation::Opacity));
1089 1117
1090 // Animations with id 1 should both start now. 1118 // Animations with id 1 should both start now.
1091 controller->Animate(kInitialTickTime); 1119 controller->Animate(kInitialTickTime);
1092 controller->UpdateState(true, events.get()); 1120 controller->UpdateState(true, events.get());
1093 EXPECT_TRUE(controller->HasActiveAnimation()); 1121 EXPECT_TRUE(controller->HasActiveAnimation());
1094 EXPECT_EQ(0.f, dummy.opacity()); 1122 EXPECT_EQ(0.f, dummy.opacity());
1095 // The opacity animation should have finished at time 1, but the group 1123 // The opacity animation should have finished at time 1, but the group
1096 // of animations with id 1 don't finish until time 2 because of the length 1124 // of animations with id 1 don't finish until time 2 because of the length
1097 // of the transform animation. 1125 // of the transform animation.
1098 controller->Animate(kInitialTickTime + 2.0); 1126 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(2000));
1099 controller->UpdateState(true, events.get()); 1127 controller->UpdateState(true, events.get());
1100 // Should not have started the float transition yet. 1128 // Should not have started the float transition yet.
1101 EXPECT_TRUE(controller->HasActiveAnimation()); 1129 EXPECT_TRUE(controller->HasActiveAnimation());
1102 EXPECT_EQ(1.f, dummy.opacity()); 1130 EXPECT_EQ(1.f, dummy.opacity());
1103 1131
1104 // The second opacity animation should start at time 2 and should be done by 1132 // The second opacity animation should start at time 2 and should be done by
1105 // time 3. 1133 // time 3.
1106 controller->Animate(kInitialTickTime + 3.0); 1134 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(3000));
1107 controller->UpdateState(true, events.get()); 1135 controller->UpdateState(true, events.get());
1108 EXPECT_EQ(0.5f, dummy.opacity()); 1136 EXPECT_EQ(0.5f, dummy.opacity());
1109 EXPECT_FALSE(controller->HasActiveAnimation()); 1137 EXPECT_FALSE(controller->HasActiveAnimation());
1110 } 1138 }
1111 1139
1112 // Test that a looping animation loops and for the correct number of iterations. 1140 // Test that a looping animation loops and for the correct number of iterations.
1113 TEST(LayerAnimationControllerTest, TrivialLooping) { 1141 TEST(LayerAnimationControllerTest, TrivialLooping) {
1114 scoped_ptr<AnimationEventsVector> events( 1142 scoped_ptr<AnimationEventsVector> events(
1115 make_scoped_ptr(new AnimationEventsVector)); 1143 make_scoped_ptr(new AnimationEventsVector));
1116 FakeLayerAnimationValueObserver dummy; 1144 FakeLayerAnimationValueObserver dummy;
1117 scoped_refptr<LayerAnimationController> controller( 1145 scoped_refptr<LayerAnimationController> controller(
1118 LayerAnimationController::Create(0)); 1146 LayerAnimationController::Create(0));
1119 controller->AddValueObserver(&dummy); 1147 controller->AddValueObserver(&dummy);
1120 1148
1121 scoped_ptr<Animation> to_add(CreateAnimation( 1149 scoped_ptr<Animation> to_add(CreateAnimation(
1122 scoped_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)).Pass(), 1150 scoped_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)).Pass(),
1123 1, 1151 1,
1124 Animation::Opacity)); 1152 Animation::Opacity));
1125 to_add->set_iterations(3); 1153 to_add->set_iterations(3);
1126 controller->AddAnimation(to_add.Pass()); 1154 controller->AddAnimation(to_add.Pass());
1127 1155
1128 controller->Animate(kInitialTickTime); 1156 controller->Animate(kInitialTickTime);
1129 controller->UpdateState(true, events.get()); 1157 controller->UpdateState(true, events.get());
1130 EXPECT_TRUE(controller->HasActiveAnimation()); 1158 EXPECT_TRUE(controller->HasActiveAnimation());
1131 EXPECT_EQ(0.f, dummy.opacity()); 1159 EXPECT_EQ(0.f, dummy.opacity());
1132 controller->Animate(kInitialTickTime + 1.25); 1160 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1250));
1133 controller->UpdateState(true, events.get()); 1161 controller->UpdateState(true, events.get());
1134 EXPECT_TRUE(controller->HasActiveAnimation()); 1162 EXPECT_TRUE(controller->HasActiveAnimation());
1135 EXPECT_EQ(0.25f, dummy.opacity()); 1163 EXPECT_EQ(0.25f, dummy.opacity());
1136 controller->Animate(kInitialTickTime + 1.75); 1164 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1750));
1137 controller->UpdateState(true, events.get()); 1165 controller->UpdateState(true, events.get());
1138 EXPECT_TRUE(controller->HasActiveAnimation()); 1166 EXPECT_TRUE(controller->HasActiveAnimation());
1139 EXPECT_EQ(0.75f, dummy.opacity()); 1167 EXPECT_EQ(0.75f, dummy.opacity());
1140 controller->Animate(kInitialTickTime + 2.25); 1168 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(2250));
1141 controller->UpdateState(true, events.get()); 1169 controller->UpdateState(true, events.get());
1142 EXPECT_TRUE(controller->HasActiveAnimation()); 1170 EXPECT_TRUE(controller->HasActiveAnimation());
1143 EXPECT_EQ(0.25f, dummy.opacity()); 1171 EXPECT_EQ(0.25f, dummy.opacity());
1144 controller->Animate(kInitialTickTime + 2.75); 1172 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(2750));
1145 controller->UpdateState(true, events.get()); 1173 controller->UpdateState(true, events.get());
1146 EXPECT_TRUE(controller->HasActiveAnimation()); 1174 EXPECT_TRUE(controller->HasActiveAnimation());
1147 EXPECT_EQ(0.75f, dummy.opacity()); 1175 EXPECT_EQ(0.75f, dummy.opacity());
1148 controller->Animate(kInitialTickTime + 3.0); 1176 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(3000));
1149 controller->UpdateState(true, events.get()); 1177 controller->UpdateState(true, events.get());
1150 EXPECT_FALSE(controller->HasActiveAnimation()); 1178 EXPECT_FALSE(controller->HasActiveAnimation());
1151 EXPECT_EQ(1.f, dummy.opacity()); 1179 EXPECT_EQ(1.f, dummy.opacity());
1152 1180
1153 // Just be extra sure. 1181 // Just be extra sure.
1154 controller->Animate(kInitialTickTime + 4.0); 1182 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(4000));
1155 controller->UpdateState(true, events.get()); 1183 controller->UpdateState(true, events.get());
1156 EXPECT_EQ(1.f, dummy.opacity()); 1184 EXPECT_EQ(1.f, dummy.opacity());
1157 } 1185 }
1158 1186
1159 // Test that an infinitely looping animation does indeed go until aborted. 1187 // Test that an infinitely looping animation does indeed go until aborted.
1160 TEST(LayerAnimationControllerTest, InfiniteLooping) { 1188 TEST(LayerAnimationControllerTest, InfiniteLooping) {
1161 scoped_ptr<AnimationEventsVector> events( 1189 scoped_ptr<AnimationEventsVector> events(
1162 make_scoped_ptr(new AnimationEventsVector)); 1190 make_scoped_ptr(new AnimationEventsVector));
1163 FakeLayerAnimationValueObserver dummy; 1191 FakeLayerAnimationValueObserver dummy;
1164 scoped_refptr<LayerAnimationController> controller( 1192 scoped_refptr<LayerAnimationController> controller(
1165 LayerAnimationController::Create(0)); 1193 LayerAnimationController::Create(0));
1166 controller->AddValueObserver(&dummy); 1194 controller->AddValueObserver(&dummy);
1167 1195
1168 const int id = 1; 1196 const int id = 1;
1169 scoped_ptr<Animation> to_add(CreateAnimation( 1197 scoped_ptr<Animation> to_add(CreateAnimation(
1170 scoped_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)).Pass(), 1198 scoped_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)).Pass(),
1171 id, 1199 id,
1172 Animation::Opacity)); 1200 Animation::Opacity));
1173 to_add->set_iterations(-1); 1201 to_add->set_iterations(-1);
1174 controller->AddAnimation(to_add.Pass()); 1202 controller->AddAnimation(to_add.Pass());
1175 1203
1176 controller->Animate(kInitialTickTime); 1204 controller->Animate(kInitialTickTime);
1177 controller->UpdateState(true, events.get()); 1205 controller->UpdateState(true, events.get());
1178 EXPECT_TRUE(controller->HasActiveAnimation()); 1206 EXPECT_TRUE(controller->HasActiveAnimation());
1179 EXPECT_EQ(0.f, dummy.opacity()); 1207 EXPECT_EQ(0.f, dummy.opacity());
1180 controller->Animate(kInitialTickTime + 1.25); 1208 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1250));
1181 controller->UpdateState(true, events.get()); 1209 controller->UpdateState(true, events.get());
1182 EXPECT_TRUE(controller->HasActiveAnimation()); 1210 EXPECT_TRUE(controller->HasActiveAnimation());
1183 EXPECT_EQ(0.25f, dummy.opacity()); 1211 EXPECT_EQ(0.25f, dummy.opacity());
1184 controller->Animate(kInitialTickTime + 1.75); 1212 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1750));
1185 controller->UpdateState(true, events.get()); 1213 controller->UpdateState(true, events.get());
1186 EXPECT_TRUE(controller->HasActiveAnimation()); 1214 EXPECT_TRUE(controller->HasActiveAnimation());
1187 EXPECT_EQ(0.75f, dummy.opacity()); 1215 EXPECT_EQ(0.75f, dummy.opacity());
1188 1216
1189 controller->Animate(kInitialTickTime + 1073741824.25); 1217 controller->Animate(kInitialTickTime +
1218 TimeDelta::FromMilliseconds(1073741824250));
1190 controller->UpdateState(true, events.get()); 1219 controller->UpdateState(true, events.get());
1191 EXPECT_TRUE(controller->HasActiveAnimation()); 1220 EXPECT_TRUE(controller->HasActiveAnimation());
1192 EXPECT_EQ(0.25f, dummy.opacity()); 1221 EXPECT_EQ(0.25f, dummy.opacity());
1193 controller->Animate(kInitialTickTime + 1073741824.75); 1222 controller->Animate(kInitialTickTime +
1223 TimeDelta::FromMilliseconds(1073741824750));
1194 controller->UpdateState(true, events.get()); 1224 controller->UpdateState(true, events.get());
1195 EXPECT_TRUE(controller->HasActiveAnimation()); 1225 EXPECT_TRUE(controller->HasActiveAnimation());
1196 EXPECT_EQ(0.75f, dummy.opacity()); 1226 EXPECT_EQ(0.75f, dummy.opacity());
1197 1227
1198 EXPECT_TRUE(controller->GetAnimation(id, Animation::Opacity)); 1228 EXPECT_TRUE(controller->GetAnimation(id, Animation::Opacity));
1199 controller->GetAnimation(id, Animation::Opacity)->SetRunState( 1229 controller->GetAnimation(id, Animation::Opacity)->SetRunState(
1200 Animation::Aborted, kInitialTickTime + 0.75); 1230 Animation::Aborted, kInitialTickTime + TimeDelta::FromMilliseconds(750));
1201 EXPECT_FALSE(controller->HasActiveAnimation()); 1231 EXPECT_FALSE(controller->HasActiveAnimation());
1202 EXPECT_EQ(0.75f, dummy.opacity()); 1232 EXPECT_EQ(0.75f, dummy.opacity());
1203 } 1233 }
1204 1234
1205 // Test that pausing and resuming work as expected. 1235 // Test that pausing and resuming work as expected.
1206 TEST(LayerAnimationControllerTest, PauseResume) { 1236 TEST(LayerAnimationControllerTest, PauseResume) {
1207 scoped_ptr<AnimationEventsVector> events( 1237 scoped_ptr<AnimationEventsVector> events(
1208 make_scoped_ptr(new AnimationEventsVector)); 1238 make_scoped_ptr(new AnimationEventsVector));
1209 FakeLayerAnimationValueObserver dummy; 1239 FakeLayerAnimationValueObserver dummy;
1210 scoped_refptr<LayerAnimationController> controller( 1240 scoped_refptr<LayerAnimationController> controller(
1211 LayerAnimationController::Create(0)); 1241 LayerAnimationController::Create(0));
1212 controller->AddValueObserver(&dummy); 1242 controller->AddValueObserver(&dummy);
1213 1243
1214 const int id = 1; 1244 const int id = 1;
1215 controller->AddAnimation(CreateAnimation( 1245 controller->AddAnimation(CreateAnimation(
1216 scoped_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)).Pass(), 1246 scoped_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)).Pass(),
1217 id, 1247 id,
1218 Animation::Opacity)); 1248 Animation::Opacity));
1219 1249
1220 controller->Animate(kInitialTickTime); 1250 controller->Animate(kInitialTickTime);
1221 controller->UpdateState(true, events.get()); 1251 controller->UpdateState(true, events.get());
1222 EXPECT_TRUE(controller->HasActiveAnimation()); 1252 EXPECT_TRUE(controller->HasActiveAnimation());
1223 EXPECT_EQ(0.f, dummy.opacity()); 1253 EXPECT_EQ(0.f, dummy.opacity());
1224 controller->Animate(kInitialTickTime + 0.5); 1254 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(500));
1225 controller->UpdateState(true, events.get()); 1255 controller->UpdateState(true, events.get());
1226 EXPECT_TRUE(controller->HasActiveAnimation()); 1256 EXPECT_TRUE(controller->HasActiveAnimation());
1227 EXPECT_EQ(0.5f, dummy.opacity()); 1257 EXPECT_EQ(0.5f, dummy.opacity());
1228 1258
1229 EXPECT_TRUE(controller->GetAnimation(id, Animation::Opacity)); 1259 EXPECT_TRUE(controller->GetAnimation(id, Animation::Opacity));
1230 controller->GetAnimation(id, Animation::Opacity)->SetRunState( 1260 controller->GetAnimation(id, Animation::Opacity)->SetRunState(
1231 Animation::Paused, kInitialTickTime + 0.5); 1261 Animation::Paused, kInitialTickTime + TimeDelta::FromMilliseconds(500));
1232 1262
1233 controller->Animate(kInitialTickTime + 1024.0); 1263 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1024000));
1234 controller->UpdateState(true, events.get()); 1264 controller->UpdateState(true, events.get());
1235 EXPECT_TRUE(controller->HasActiveAnimation()); 1265 EXPECT_TRUE(controller->HasActiveAnimation());
1236 EXPECT_EQ(0.5f, dummy.opacity()); 1266 EXPECT_EQ(0.5f, dummy.opacity());
1237 1267
1238 EXPECT_TRUE(controller->GetAnimation(id, Animation::Opacity)); 1268 EXPECT_TRUE(controller->GetAnimation(id, Animation::Opacity));
1239 controller->GetAnimation(id, Animation::Opacity)->SetRunState( 1269 controller->GetAnimation(id, Animation::Opacity)
1240 Animation::Running, kInitialTickTime + 1024); 1270 ->SetRunState(Animation::Running,
1241 1271 kInitialTickTime + TimeDelta::FromMilliseconds(1024000));
1242 controller->Animate(kInitialTickTime + 1024.25); 1272 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1024250));
1243 controller->UpdateState(true, events.get()); 1273 controller->UpdateState(true, events.get());
1244 EXPECT_TRUE(controller->HasActiveAnimation()); 1274 EXPECT_TRUE(controller->HasActiveAnimation());
1245 EXPECT_EQ(0.75f, dummy.opacity()); 1275 EXPECT_EQ(0.75f, dummy.opacity());
1246 controller->Animate(kInitialTickTime + 1024.5); 1276
1277 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1024500));
1247 controller->UpdateState(true, events.get()); 1278 controller->UpdateState(true, events.get());
1248 EXPECT_FALSE(controller->HasActiveAnimation()); 1279 EXPECT_FALSE(controller->HasActiveAnimation());
1249 EXPECT_EQ(1.f, dummy.opacity()); 1280 EXPECT_EQ(1.f, dummy.opacity());
1250 } 1281 }
1251 1282
1252 TEST(LayerAnimationControllerTest, AbortAGroupedAnimation) { 1283 TEST(LayerAnimationControllerTest, AbortAGroupedAnimation) {
1253 scoped_ptr<AnimationEventsVector> events( 1284 scoped_ptr<AnimationEventsVector> events(
1254 make_scoped_ptr(new AnimationEventsVector)); 1285 make_scoped_ptr(new AnimationEventsVector));
1255 FakeLayerAnimationValueObserver dummy; 1286 FakeLayerAnimationValueObserver dummy;
1256 scoped_refptr<LayerAnimationController> controller( 1287 scoped_refptr<LayerAnimationController> controller(
(...skipping 12 matching lines...) Expand all
1269 controller->AddAnimation(CreateAnimation( 1300 controller->AddAnimation(CreateAnimation(
1270 scoped_ptr<AnimationCurve>( 1301 scoped_ptr<AnimationCurve>(
1271 new FakeFloatTransition(1.0, 1.f, 0.75f)).Pass(), 1302 new FakeFloatTransition(1.0, 1.f, 0.75f)).Pass(),
1272 2, 1303 2,
1273 Animation::Opacity)); 1304 Animation::Opacity));
1274 1305
1275 controller->Animate(kInitialTickTime); 1306 controller->Animate(kInitialTickTime);
1276 controller->UpdateState(true, events.get()); 1307 controller->UpdateState(true, events.get());
1277 EXPECT_TRUE(controller->HasActiveAnimation()); 1308 EXPECT_TRUE(controller->HasActiveAnimation());
1278 EXPECT_EQ(0.f, dummy.opacity()); 1309 EXPECT_EQ(0.f, dummy.opacity());
1279 controller->Animate(kInitialTickTime + 1.0); 1310 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1000));
1280 controller->UpdateState(true, events.get()); 1311 controller->UpdateState(true, events.get());
1281 EXPECT_TRUE(controller->HasActiveAnimation()); 1312 EXPECT_TRUE(controller->HasActiveAnimation());
1282 EXPECT_EQ(0.5f, dummy.opacity()); 1313 EXPECT_EQ(0.5f, dummy.opacity());
1283 1314
1284 EXPECT_TRUE(controller->GetAnimation(id, Animation::Opacity)); 1315 EXPECT_TRUE(controller->GetAnimation(id, Animation::Opacity));
1285 controller->GetAnimation(id, Animation::Opacity)->SetRunState( 1316 controller->GetAnimation(id, Animation::Opacity)->SetRunState(
1286 Animation::Aborted, kInitialTickTime + 1.0); 1317 Animation::Aborted, kInitialTickTime + TimeDelta::FromMilliseconds(1000));
1287 controller->Animate(kInitialTickTime + 1.0); 1318 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1000));
1288 controller->UpdateState(true, events.get()); 1319 controller->UpdateState(true, events.get());
1289 EXPECT_TRUE(controller->HasActiveAnimation()); 1320 EXPECT_TRUE(controller->HasActiveAnimation());
1290 EXPECT_EQ(1.f, dummy.opacity()); 1321 EXPECT_EQ(1.f, dummy.opacity());
1291 controller->Animate(kInitialTickTime + 2.0); 1322 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(2000));
1292 controller->UpdateState(true, events.get()); 1323 controller->UpdateState(true, events.get());
1293 EXPECT_TRUE(!controller->HasActiveAnimation()); 1324 EXPECT_TRUE(!controller->HasActiveAnimation());
1294 EXPECT_EQ(0.75f, dummy.opacity()); 1325 EXPECT_EQ(0.75f, dummy.opacity());
1295 } 1326 }
1296 1327
1297 TEST(LayerAnimationControllerTest, PushUpdatesWhenSynchronizedStartTimeNeeded) { 1328 TEST(LayerAnimationControllerTest, PushUpdatesWhenSynchronizedStartTimeNeeded) {
1298 FakeLayerAnimationValueObserver dummy_impl; 1329 FakeLayerAnimationValueObserver dummy_impl;
1299 scoped_refptr<LayerAnimationController> controller_impl( 1330 scoped_refptr<LayerAnimationController> controller_impl(
1300 LayerAnimationController::Create(0)); 1331 LayerAnimationController::Create(0));
1301 controller_impl->AddValueObserver(&dummy_impl); 1332 controller_impl->AddValueObserver(&dummy_impl);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1345 1376
1346 controller->Animate(kInitialTickTime); 1377 controller->Animate(kInitialTickTime);
1347 controller->UpdateState(true, events.get()); 1378 controller->UpdateState(true, events.get());
1348 1379
1349 controller->AddAnimation(CreateAnimation( 1380 controller->AddAnimation(CreateAnimation(
1350 scoped_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)).Pass(), 1381 scoped_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)).Pass(),
1351 2, 1382 2,
1352 Animation::Opacity)); 1383 Animation::Opacity));
1353 1384
1354 // Animate but don't UpdateState. 1385 // Animate but don't UpdateState.
1355 controller->Animate(kInitialTickTime + 1.0); 1386 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1000));
1356 1387
1357 controller->Animate(kInitialTickTime + 2.0); 1388 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(2000));
1358 events.reset(new AnimationEventsVector); 1389 events.reset(new AnimationEventsVector);
1359 controller->UpdateState(true, events.get()); 1390 controller->UpdateState(true, events.get());
1360 1391
1361 // Should have one Started event and one Finished event. 1392 // Should have one Started event and one Finished event.
1362 EXPECT_EQ(2u, events->size()); 1393 EXPECT_EQ(2u, events->size());
1363 EXPECT_NE((*events)[0].type, (*events)[1].type); 1394 EXPECT_NE((*events)[0].type, (*events)[1].type);
1364 1395
1365 // The float transition should still be at its starting point. 1396 // The float transition should still be at its starting point.
1366 EXPECT_TRUE(controller->HasActiveAnimation()); 1397 EXPECT_TRUE(controller->HasActiveAnimation());
1367 EXPECT_EQ(0.f, dummy.opacity()); 1398 EXPECT_EQ(0.f, dummy.opacity());
1368 1399
1369 controller->Animate(kInitialTickTime + 3.0); 1400 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(3000));
1370 controller->UpdateState(true, events.get()); 1401 controller->UpdateState(true, events.get());
1371 1402
1372 // The float tranisition should now be done. 1403 // The float tranisition should now be done.
1373 EXPECT_EQ(1.f, dummy.opacity()); 1404 EXPECT_EQ(1.f, dummy.opacity());
1374 EXPECT_FALSE(controller->HasActiveAnimation()); 1405 EXPECT_FALSE(controller->HasActiveAnimation());
1375 } 1406 }
1376 1407
1377 // Tests that an animation controller with only a pending observer gets ticked 1408 // Tests that an animation controller with only a pending observer gets ticked
1378 // but doesn't progress animations past the Starting state. 1409 // but doesn't progress animations past the Starting state.
1379 TEST(LayerAnimationControllerTest, InactiveObserverGetsTicked) { 1410 TEST(LayerAnimationControllerTest, InactiveObserverGetsTicked) {
(...skipping 16 matching lines...) Expand all
1396 controller->UpdateState(true, events.get()); 1427 controller->UpdateState(true, events.get());
1397 EXPECT_EQ(0u, events->size()); 1428 EXPECT_EQ(0u, events->size());
1398 EXPECT_EQ(Animation::WaitingForTargetAvailability, 1429 EXPECT_EQ(Animation::WaitingForTargetAvailability,
1399 controller->GetAnimation(id, Animation::Opacity)->run_state()); 1430 controller->GetAnimation(id, Animation::Opacity)->run_state());
1400 1431
1401 controller->AddValueObserver(&pending_dummy); 1432 controller->AddValueObserver(&pending_dummy);
1402 1433
1403 // With only a pending observer, the animation should progress to the 1434 // With only a pending observer, the animation should progress to the
1404 // Starting state and get ticked at its starting point, but should not 1435 // Starting state and get ticked at its starting point, but should not
1405 // progress to Running. 1436 // progress to Running.
1406 controller->Animate(kInitialTickTime + 1.0); 1437 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1000));
1407 controller->UpdateState(true, events.get()); 1438 controller->UpdateState(true, events.get());
1408 EXPECT_EQ(0u, events->size()); 1439 EXPECT_EQ(0u, events->size());
1409 EXPECT_EQ(Animation::Starting, 1440 EXPECT_EQ(Animation::Starting,
1410 controller->GetAnimation(id, Animation::Opacity)->run_state()); 1441 controller->GetAnimation(id, Animation::Opacity)->run_state());
1411 EXPECT_EQ(0.5f, pending_dummy.opacity()); 1442 EXPECT_EQ(0.5f, pending_dummy.opacity());
1412 1443
1413 // Even when already in the Starting state, the animation should stay 1444 // Even when already in the Starting state, the animation should stay
1414 // there, and shouldn't be ticked past its starting point. 1445 // there, and shouldn't be ticked past its starting point.
1415 controller->Animate(kInitialTickTime + 2.0); 1446 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(2000));
1416 controller->UpdateState(true, events.get()); 1447 controller->UpdateState(true, events.get());
1417 EXPECT_EQ(0u, events->size()); 1448 EXPECT_EQ(0u, events->size());
1418 EXPECT_EQ(Animation::Starting, 1449 EXPECT_EQ(Animation::Starting,
1419 controller->GetAnimation(id, Animation::Opacity)->run_state()); 1450 controller->GetAnimation(id, Animation::Opacity)->run_state());
1420 EXPECT_EQ(0.5f, pending_dummy.opacity()); 1451 EXPECT_EQ(0.5f, pending_dummy.opacity());
1421 1452
1422 controller->AddValueObserver(&dummy); 1453 controller->AddValueObserver(&dummy);
1423 1454
1424 // Now that an active observer has been added, the animation should still 1455 // Now that an active observer has been added, the animation should still
1425 // initially tick at its starting point, but should now progress to Running. 1456 // initially tick at its starting point, but should now progress to Running.
1426 controller->Animate(kInitialTickTime + 3.0); 1457 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(3000));
1427 controller->UpdateState(true, events.get()); 1458 controller->UpdateState(true, events.get());
1428 EXPECT_EQ(1u, events->size()); 1459 EXPECT_EQ(1u, events->size());
1429 EXPECT_EQ(Animation::Running, 1460 EXPECT_EQ(Animation::Running,
1430 controller->GetAnimation(id, Animation::Opacity)->run_state()); 1461 controller->GetAnimation(id, Animation::Opacity)->run_state());
1431 EXPECT_EQ(0.5f, pending_dummy.opacity()); 1462 EXPECT_EQ(0.5f, pending_dummy.opacity());
1432 EXPECT_EQ(0.5f, dummy.opacity()); 1463 EXPECT_EQ(0.5f, dummy.opacity());
1433 1464
1434 // The animation should now tick past its starting point. 1465 // The animation should now tick past its starting point.
1435 controller->Animate(kInitialTickTime + 3.5); 1466 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(3500));
1436 EXPECT_NE(0.5f, pending_dummy.opacity()); 1467 EXPECT_NE(0.5f, pending_dummy.opacity());
1437 EXPECT_NE(0.5f, dummy.opacity()); 1468 EXPECT_NE(0.5f, dummy.opacity());
1438 } 1469 }
1439 1470
1440 TEST(LayerAnimationControllerTest, TransformAnimationBounds) { 1471 TEST(LayerAnimationControllerTest, TransformAnimationBounds) {
1441 scoped_refptr<LayerAnimationController> controller_impl( 1472 scoped_refptr<LayerAnimationController> controller_impl(
1442 LayerAnimationController::Create(0)); 1473 LayerAnimationController::Create(0));
1443 1474
1444 scoped_ptr<KeyframedTransformAnimationCurve> curve1( 1475 scoped_ptr<KeyframedTransformAnimationCurve> curve1(
1445 KeyframedTransformAnimationCurve::Create()); 1476 KeyframedTransformAnimationCurve::Create());
(...skipping 24 matching lines...) Expand all
1470 controller_impl->AddAnimation(animation.Pass()); 1501 controller_impl->AddAnimation(animation.Pass());
1471 1502
1472 gfx::BoxF box(1.f, 2.f, -1.f, 3.f, 4.f, 5.f); 1503 gfx::BoxF box(1.f, 2.f, -1.f, 3.f, 4.f, 5.f);
1473 gfx::BoxF bounds; 1504 gfx::BoxF bounds;
1474 1505
1475 EXPECT_TRUE(controller_impl->TransformAnimationBoundsForBox(box, &bounds)); 1506 EXPECT_TRUE(controller_impl->TransformAnimationBoundsForBox(box, &bounds));
1476 EXPECT_EQ(gfx::BoxF(1.f, 2.f, -4.f, 13.f, 19.f, 20.f).ToString(), 1507 EXPECT_EQ(gfx::BoxF(1.f, 2.f, -4.f, 13.f, 19.f, 20.f).ToString(),
1477 bounds.ToString()); 1508 bounds.ToString());
1478 1509
1479 controller_impl->GetAnimation(1, Animation::Transform) 1510 controller_impl->GetAnimation(1, Animation::Transform)
1480 ->SetRunState(Animation::Finished, 0.0); 1511 ->SetRunState(Animation::Finished, TicksFromSecondsF(0.0));
1481 1512
1482 // Only the unfinished animation should affect the animated bounds. 1513 // Only the unfinished animation should affect the animated bounds.
1483 EXPECT_TRUE(controller_impl->TransformAnimationBoundsForBox(box, &bounds)); 1514 EXPECT_TRUE(controller_impl->TransformAnimationBoundsForBox(box, &bounds));
1484 EXPECT_EQ(gfx::BoxF(1.f, 2.f, -4.f, 7.f, 16.f, 20.f).ToString(), 1515 EXPECT_EQ(gfx::BoxF(1.f, 2.f, -4.f, 7.f, 16.f, 20.f).ToString(),
1485 bounds.ToString()); 1516 bounds.ToString());
1486 1517
1487 controller_impl->GetAnimation(2, Animation::Transform) 1518 controller_impl->GetAnimation(2, Animation::Transform)
1488 ->SetRunState(Animation::Finished, 0.0); 1519 ->SetRunState(Animation::Finished, TicksFromSecondsF(0.0));
1489 1520
1490 // There are no longer any running animations. 1521 // There are no longer any running animations.
1491 EXPECT_FALSE(controller_impl->HasTransformAnimationThatInflatesBounds()); 1522 EXPECT_FALSE(controller_impl->HasTransformAnimationThatInflatesBounds());
1492 1523
1493 // Add an animation whose bounds we don't yet support computing. 1524 // Add an animation whose bounds we don't yet support computing.
1494 scoped_ptr<KeyframedTransformAnimationCurve> curve3( 1525 scoped_ptr<KeyframedTransformAnimationCurve> curve3(
1495 KeyframedTransformAnimationCurve::Create()); 1526 KeyframedTransformAnimationCurve::Create());
1496 TransformOperations operations3; 1527 TransformOperations operations3;
1497 gfx::Transform transform3; 1528 gfx::Transform transform3;
1498 transform3.Scale3d(1.0, 2.0, 3.0); 1529 transform3.Scale3d(1.0, 2.0, 3.0);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1533 scoped_ptr<AnimationCurve>(new FakeTransformTransition(2.0)).Pass(), 1564 scoped_ptr<AnimationCurve>(new FakeTransformTransition(2.0)).Pass(),
1534 4, 1565 4,
1535 Animation::Transform)); 1566 Animation::Transform));
1536 controller->AddAnimation(CreateAnimation( 1567 controller->AddAnimation(CreateAnimation(
1537 scoped_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)).Pass(), 1568 scoped_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)).Pass(),
1538 5, 1569 5,
1539 Animation::Opacity)); 1570 Animation::Opacity));
1540 1571
1541 controller->Animate(kInitialTickTime); 1572 controller->Animate(kInitialTickTime);
1542 controller->UpdateState(true, NULL); 1573 controller->UpdateState(true, NULL);
1543 controller->Animate(kInitialTickTime + 1.0); 1574 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(1000));
1544 controller->UpdateState(true, NULL); 1575 controller->UpdateState(true, NULL);
1545 1576
1546 EXPECT_EQ(Animation::Finished, 1577 EXPECT_EQ(Animation::Finished,
1547 controller->GetAnimation(1, Animation::Transform)->run_state()); 1578 controller->GetAnimation(1, Animation::Transform)->run_state());
1548 EXPECT_EQ(Animation::Finished, 1579 EXPECT_EQ(Animation::Finished,
1549 controller->GetAnimation(2, Animation::Opacity)->run_state()); 1580 controller->GetAnimation(2, Animation::Opacity)->run_state());
1550 EXPECT_EQ(Animation::Running, 1581 EXPECT_EQ(Animation::Running,
1551 controller->GetAnimation(3, Animation::Transform)->run_state()); 1582 controller->GetAnimation(3, Animation::Transform)->run_state());
1552 EXPECT_EQ(Animation::WaitingForTargetAvailability, 1583 EXPECT_EQ(Animation::WaitingForTargetAvailability,
1553 controller->GetAnimation(4, Animation::Transform)->run_state()); 1584 controller->GetAnimation(4, Animation::Transform)->run_state());
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
1635 EXPECT_TRUE(dummy_impl.animation_waiting_for_deletion()); 1666 EXPECT_TRUE(dummy_impl.animation_waiting_for_deletion());
1636 EXPECT_EQ(1u, events.size()); 1667 EXPECT_EQ(1u, events.size());
1637 EXPECT_EQ(AnimationEvent::Aborted, events[0].type); 1668 EXPECT_EQ(AnimationEvent::Aborted, events[0].type);
1638 EXPECT_EQ(Animation::WaitingForDeletion, 1669 EXPECT_EQ(Animation::WaitingForDeletion,
1639 controller_impl->GetAnimation(Animation::Opacity)->run_state()); 1670 controller_impl->GetAnimation(Animation::Opacity)->run_state());
1640 1671
1641 controller->NotifyAnimationAborted(events[0]); 1672 controller->NotifyAnimationAborted(events[0]);
1642 EXPECT_EQ(Animation::Aborted, 1673 EXPECT_EQ(Animation::Aborted,
1643 controller->GetAnimation(Animation::Opacity)->run_state()); 1674 controller->GetAnimation(Animation::Opacity)->run_state());
1644 1675
1645 controller->Animate(kInitialTickTime + 0.5); 1676 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(500));
1646 controller->UpdateState(true, NULL); 1677 controller->UpdateState(true, NULL);
1647 EXPECT_TRUE(dummy.animation_waiting_for_deletion()); 1678 EXPECT_TRUE(dummy.animation_waiting_for_deletion());
1648 EXPECT_EQ(Animation::WaitingForDeletion, 1679 EXPECT_EQ(Animation::WaitingForDeletion,
1649 controller->GetAnimation(Animation::Opacity)->run_state()); 1680 controller->GetAnimation(Animation::Opacity)->run_state());
1650 1681
1651 controller->PushAnimationUpdatesTo(controller_impl.get()); 1682 controller->PushAnimationUpdatesTo(controller_impl.get());
1652 controller_impl->ActivateAnimations(); 1683 controller_impl->ActivateAnimations();
1653 EXPECT_FALSE(controller->GetAnimation(group_id, Animation::Opacity)); 1684 EXPECT_FALSE(controller->GetAnimation(group_id, Animation::Opacity));
1654 EXPECT_FALSE(controller_impl->GetAnimation(group_id, Animation::Opacity)); 1685 EXPECT_FALSE(controller_impl->GetAnimation(group_id, Animation::Opacity));
1655 } 1686 }
(...skipping 20 matching lines...) Expand all
1676 1707
1677 controller_impl->Animate(kInitialTickTime); 1708 controller_impl->Animate(kInitialTickTime);
1678 controller_impl->UpdateState(true, events.get()); 1709 controller_impl->UpdateState(true, events.get());
1679 1710
1680 // Both animations should have started. 1711 // Both animations should have started.
1681 EXPECT_EQ(2u, events->size()); 1712 EXPECT_EQ(2u, events->size());
1682 EXPECT_EQ(AnimationEvent::Started, (*events)[0].type); 1713 EXPECT_EQ(AnimationEvent::Started, (*events)[0].type);
1683 EXPECT_EQ(AnimationEvent::Started, (*events)[1].type); 1714 EXPECT_EQ(AnimationEvent::Started, (*events)[1].type);
1684 1715
1685 events.reset(new AnimationEventsVector); 1716 events.reset(new AnimationEventsVector);
1686 controller_impl->Animate(kInitialTickTime + 1.0); 1717 controller_impl->Animate(kInitialTickTime +
1718 TimeDelta::FromMilliseconds(1000));
1687 controller_impl->UpdateState(true, events.get()); 1719 controller_impl->UpdateState(true, events.get());
1688 1720
1689 // The opacity animation should be finished, but should not have generated 1721 // The opacity animation should be finished, but should not have generated
1690 // a Finished event yet. 1722 // a Finished event yet.
1691 EXPECT_EQ(0u, events->size()); 1723 EXPECT_EQ(0u, events->size());
1692 EXPECT_EQ(Animation::Finished, 1724 EXPECT_EQ(Animation::Finished,
1693 controller_impl->GetAnimation(1, Animation::Opacity)->run_state()); 1725 controller_impl->GetAnimation(1, Animation::Opacity)->run_state());
1694 EXPECT_EQ(Animation::Running, 1726 EXPECT_EQ(Animation::Running,
1695 controller_impl->GetAnimation(1, 1727 controller_impl->GetAnimation(1,
1696 Animation::Transform)->run_state()); 1728 Animation::Transform)->run_state());
1697 1729
1698 controller_impl->Animate(kInitialTickTime + 2.0); 1730 controller_impl->Animate(kInitialTickTime +
1731 TimeDelta::FromMilliseconds(2000));
1699 controller_impl->UpdateState(true, events.get()); 1732 controller_impl->UpdateState(true, events.get());
1700 1733
1701 // Both animations should have generated Finished events. 1734 // Both animations should have generated Finished events.
1702 EXPECT_EQ(2u, events->size()); 1735 EXPECT_EQ(2u, events->size());
1703 EXPECT_EQ(AnimationEvent::Finished, (*events)[0].type); 1736 EXPECT_EQ(AnimationEvent::Finished, (*events)[0].type);
1704 EXPECT_EQ(AnimationEvent::Finished, (*events)[1].type); 1737 EXPECT_EQ(AnimationEvent::Finished, (*events)[1].type);
1705 } 1738 }
1706 1739
1707 // Ensure that when a group has a mix of aborted and finished animations, 1740 // Ensure that when a group has a mix of aborted and finished animations,
1708 // we generate a Finished event for the finished animation and an Aborted 1741 // we generate a Finished event for the finished animation and an Aborted
(...skipping 20 matching lines...) Expand all
1729 controller_impl->UpdateState(true, events.get()); 1762 controller_impl->UpdateState(true, events.get());
1730 1763
1731 // Both animations should have started. 1764 // Both animations should have started.
1732 EXPECT_EQ(2u, events->size()); 1765 EXPECT_EQ(2u, events->size());
1733 EXPECT_EQ(AnimationEvent::Started, (*events)[0].type); 1766 EXPECT_EQ(AnimationEvent::Started, (*events)[0].type);
1734 EXPECT_EQ(AnimationEvent::Started, (*events)[1].type); 1767 EXPECT_EQ(AnimationEvent::Started, (*events)[1].type);
1735 1768
1736 controller_impl->AbortAnimations(Animation::Opacity); 1769 controller_impl->AbortAnimations(Animation::Opacity);
1737 1770
1738 events.reset(new AnimationEventsVector); 1771 events.reset(new AnimationEventsVector);
1739 controller_impl->Animate(kInitialTickTime + 1.0); 1772 controller_impl->Animate(kInitialTickTime +
1773 TimeDelta::FromMilliseconds(1000));
1740 controller_impl->UpdateState(true, events.get()); 1774 controller_impl->UpdateState(true, events.get());
1741 1775
1742 // We should have exactly 2 events: a Finished event for the tranform 1776 // We should have exactly 2 events: a Finished event for the tranform
1743 // animation, and an Aborted event for the opacity animation. 1777 // animation, and an Aborted event for the opacity animation.
1744 EXPECT_EQ(2u, events->size()); 1778 EXPECT_EQ(2u, events->size());
1745 EXPECT_EQ(AnimationEvent::Finished, (*events)[0].type); 1779 EXPECT_EQ(AnimationEvent::Finished, (*events)[0].type);
1746 EXPECT_EQ(Animation::Transform, (*events)[0].target_property); 1780 EXPECT_EQ(Animation::Transform, (*events)[0].target_property);
1747 EXPECT_EQ(AnimationEvent::Aborted, (*events)[1].type); 1781 EXPECT_EQ(AnimationEvent::Aborted, (*events)[1].type);
1748 EXPECT_EQ(Animation::Opacity, (*events)[1].target_property); 1782 EXPECT_EQ(Animation::Opacity, (*events)[1].target_property);
1749 } 1783 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1789 curve2->AddKeyframe(TransformKeyframe::Create( 1823 curve2->AddKeyframe(TransformKeyframe::Create(
1790 1.0, operations2, scoped_ptr<TimingFunction>())); 1824 1.0, operations2, scoped_ptr<TimingFunction>()));
1791 1825
1792 animation = Animation::Create( 1826 animation = Animation::Create(
1793 curve2.PassAs<AnimationCurve>(), 3, 3, Animation::Transform); 1827 curve2.PassAs<AnimationCurve>(), 3, 3, Animation::Transform);
1794 controller_impl->AddAnimation(animation.Pass()); 1828 controller_impl->AddAnimation(animation.Pass());
1795 1829
1796 EXPECT_TRUE(controller_impl->HasAnimationThatAffectsScale()); 1830 EXPECT_TRUE(controller_impl->HasAnimationThatAffectsScale());
1797 1831
1798 controller_impl->GetAnimation(3, Animation::Transform) 1832 controller_impl->GetAnimation(3, Animation::Transform)
1799 ->SetRunState(Animation::Finished, 0.0); 1833 ->SetRunState(Animation::Finished, TicksFromSecondsF(0.0));
1800 1834
1801 // Only unfinished animations should be considered by 1835 // Only unfinished animations should be considered by
1802 // HasAnimationThatAffectsScale. 1836 // HasAnimationThatAffectsScale.
1803 EXPECT_FALSE(controller_impl->HasAnimationThatAffectsScale()); 1837 EXPECT_FALSE(controller_impl->HasAnimationThatAffectsScale());
1804 } 1838 }
1805 1839
1806 TEST(LayerAnimationControllerTest, HasOnlyTranslationTransforms) { 1840 TEST(LayerAnimationControllerTest, HasOnlyTranslationTransforms) {
1807 scoped_refptr<LayerAnimationController> controller_impl( 1841 scoped_refptr<LayerAnimationController> controller_impl(
1808 LayerAnimationController::Create(0)); 1842 LayerAnimationController::Create(0));
1809 1843
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1845 1.0, operations2, scoped_ptr<TimingFunction>())); 1879 1.0, operations2, scoped_ptr<TimingFunction>()));
1846 1880
1847 animation = Animation::Create( 1881 animation = Animation::Create(
1848 curve2.PassAs<AnimationCurve>(), 3, 3, Animation::Transform); 1882 curve2.PassAs<AnimationCurve>(), 3, 3, Animation::Transform);
1849 controller_impl->AddAnimation(animation.Pass()); 1883 controller_impl->AddAnimation(animation.Pass());
1850 1884
1851 // A scale animation is not a translation. 1885 // A scale animation is not a translation.
1852 EXPECT_FALSE(controller_impl->HasOnlyTranslationTransforms()); 1886 EXPECT_FALSE(controller_impl->HasOnlyTranslationTransforms());
1853 1887
1854 controller_impl->GetAnimation(3, Animation::Transform) 1888 controller_impl->GetAnimation(3, Animation::Transform)
1855 ->SetRunState(Animation::Finished, 0.0); 1889 ->SetRunState(Animation::Finished, TicksFromSecondsF(0.0));
1856 1890
1857 // Only unfinished animations should be considered by 1891 // Only unfinished animations should be considered by
1858 // HasOnlyTranslationTransforms. 1892 // HasOnlyTranslationTransforms.
1859 EXPECT_TRUE(controller_impl->HasOnlyTranslationTransforms()); 1893 EXPECT_TRUE(controller_impl->HasOnlyTranslationTransforms());
1860 } 1894 }
1861 1895
1862 TEST(LayerAnimationControllerTest, MaximumScale) { 1896 TEST(LayerAnimationControllerTest, MaximumScale) {
1863 scoped_refptr<LayerAnimationController> controller_impl( 1897 scoped_refptr<LayerAnimationController> controller_impl(
1864 LayerAnimationController::Create(0)); 1898 LayerAnimationController::Create(0));
1865 1899
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1911 curve3->AddKeyframe(TransformKeyframe::Create( 1945 curve3->AddKeyframe(TransformKeyframe::Create(
1912 1.0, operations3, scoped_ptr<TimingFunction>())); 1946 1.0, operations3, scoped_ptr<TimingFunction>()));
1913 1947
1914 animation = Animation::Create( 1948 animation = Animation::Create(
1915 curve3.PassAs<AnimationCurve>(), 3, 3, Animation::Transform); 1949 curve3.PassAs<AnimationCurve>(), 3, 3, Animation::Transform);
1916 controller_impl->AddAnimation(animation.Pass()); 1950 controller_impl->AddAnimation(animation.Pass());
1917 1951
1918 EXPECT_FALSE(controller_impl->MaximumScale(&max_scale)); 1952 EXPECT_FALSE(controller_impl->MaximumScale(&max_scale));
1919 1953
1920 controller_impl->GetAnimation(3, Animation::Transform) 1954 controller_impl->GetAnimation(3, Animation::Transform)
1921 ->SetRunState(Animation::Finished, 0.0); 1955 ->SetRunState(Animation::Finished, TicksFromSecondsF(0.0));
1922 controller_impl->GetAnimation(2, Animation::Transform) 1956 controller_impl->GetAnimation(2, Animation::Transform)
1923 ->SetRunState(Animation::Finished, 0.0); 1957 ->SetRunState(Animation::Finished, TicksFromSecondsF(0.0));
1924 1958
1925 // Only unfinished animations should be considered by 1959 // Only unfinished animations should be considered by
1926 // MaximumScale. 1960 // MaximumScale.
1927 EXPECT_TRUE(controller_impl->MaximumScale(&max_scale)); 1961 EXPECT_TRUE(controller_impl->MaximumScale(&max_scale));
1928 EXPECT_EQ(4.f, max_scale); 1962 EXPECT_EQ(4.f, max_scale);
1929 } 1963 }
1930 1964
1931 TEST(LayerAnimationControllerTest, NewlyPushedAnimationWaitsForActivation) { 1965 TEST(LayerAnimationControllerTest, NewlyPushedAnimationWaitsForActivation) {
1932 scoped_ptr<AnimationEventsVector> events( 1966 scoped_ptr<AnimationEventsVector> events(
1933 make_scoped_ptr(new AnimationEventsVector)); 1967 make_scoped_ptr(new AnimationEventsVector));
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1969 // should have been ticked. 2003 // should have been ticked.
1970 EXPECT_EQ(0.5f, pending_dummy_impl.opacity()); 2004 EXPECT_EQ(0.5f, pending_dummy_impl.opacity());
1971 EXPECT_EQ(0.f, dummy_impl.opacity()); 2005 EXPECT_EQ(0.f, dummy_impl.opacity());
1972 2006
1973 controller_impl->ActivateAnimations(); 2007 controller_impl->ActivateAnimations();
1974 EXPECT_TRUE(controller_impl->GetAnimation(group_id, Animation::Opacity) 2008 EXPECT_TRUE(controller_impl->GetAnimation(group_id, Animation::Opacity)
1975 ->affects_pending_observers()); 2009 ->affects_pending_observers());
1976 EXPECT_TRUE(controller_impl->GetAnimation(group_id, Animation::Opacity) 2010 EXPECT_TRUE(controller_impl->GetAnimation(group_id, Animation::Opacity)
1977 ->affects_active_observers()); 2011 ->affects_active_observers());
1978 2012
1979 controller_impl->Animate(kInitialTickTime + 1.0); 2013 controller_impl->Animate(kInitialTickTime +
2014 TimeDelta::FromMilliseconds(1000));
1980 controller_impl->UpdateState(true, events.get()); 2015 controller_impl->UpdateState(true, events.get());
1981 2016
1982 // Since the animation has been activated, it should have reached the 2017 // Since the animation has been activated, it should have reached the
1983 // Running state and the active observer should start to get ticked. 2018 // Running state and the active observer should start to get ticked.
1984 EXPECT_EQ( 2019 EXPECT_EQ(
1985 Animation::Running, 2020 Animation::Running,
1986 controller_impl->GetAnimation(group_id, Animation::Opacity)->run_state()); 2021 controller_impl->GetAnimation(group_id, Animation::Opacity)->run_state());
1987 EXPECT_EQ(0.5f, pending_dummy_impl.opacity()); 2022 EXPECT_EQ(0.5f, pending_dummy_impl.opacity());
1988 EXPECT_EQ(0.5f, dummy_impl.opacity()); 2023 EXPECT_EQ(0.5f, dummy_impl.opacity());
1989 } 2024 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
2030 ->affects_active_observers()); 2065 ->affects_active_observers());
2031 2066
2032 controller_impl->UpdateState(true, events.get()); 2067 controller_impl->UpdateState(true, events.get());
2033 2068
2034 // Since the animation has been activated, it should have reached the 2069 // Since the animation has been activated, it should have reached the
2035 // Running state. 2070 // Running state.
2036 EXPECT_EQ( 2071 EXPECT_EQ(
2037 Animation::Running, 2072 Animation::Running,
2038 controller_impl->GetAnimation(group_id, Animation::Opacity)->run_state()); 2073 controller_impl->GetAnimation(group_id, Animation::Opacity)->run_state());
2039 2074
2040 controller_impl->Animate(kInitialTickTime + 0.5); 2075 controller_impl->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(500));
2041 2076
2042 // Both observers should have been ticked. 2077 // Both observers should have been ticked.
2043 EXPECT_EQ(0.75f, pending_dummy_impl.opacity()); 2078 EXPECT_EQ(0.75f, pending_dummy_impl.opacity());
2044 EXPECT_EQ(0.75f, dummy_impl.opacity()); 2079 EXPECT_EQ(0.75f, dummy_impl.opacity());
2045 } 2080 }
2046 2081
2047 TEST(LayerAnimationControllerTest, PushedDeletedAnimationWaitsForActivation) { 2082 TEST(LayerAnimationControllerTest, PushedDeletedAnimationWaitsForActivation) {
2048 scoped_ptr<AnimationEventsVector> events( 2083 scoped_ptr<AnimationEventsVector> events(
2049 make_scoped_ptr(new AnimationEventsVector)); 2084 make_scoped_ptr(new AnimationEventsVector));
2050 FakeLayerAnimationValueObserver dummy_impl; 2085 FakeLayerAnimationValueObserver dummy_impl;
(...skipping 29 matching lines...) Expand all
2080 controller->RemoveAnimation( 2115 controller->RemoveAnimation(
2081 controller->GetAnimation(Animation::Opacity)->id()); 2116 controller->GetAnimation(Animation::Opacity)->id());
2082 controller->PushAnimationUpdatesTo(controller_impl.get()); 2117 controller->PushAnimationUpdatesTo(controller_impl.get());
2083 2118
2084 // The animation should no longer affect pending observers. 2119 // The animation should no longer affect pending observers.
2085 EXPECT_FALSE(controller_impl->GetAnimation(group_id, Animation::Opacity) 2120 EXPECT_FALSE(controller_impl->GetAnimation(group_id, Animation::Opacity)
2086 ->affects_pending_observers()); 2121 ->affects_pending_observers());
2087 EXPECT_TRUE(controller_impl->GetAnimation(group_id, Animation::Opacity) 2122 EXPECT_TRUE(controller_impl->GetAnimation(group_id, Animation::Opacity)
2088 ->affects_active_observers()); 2123 ->affects_active_observers());
2089 2124
2090 controller_impl->Animate(kInitialTickTime + 0.5); 2125 controller_impl->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(500));
2091 controller_impl->UpdateState(true, events.get()); 2126 controller_impl->UpdateState(true, events.get());
2092 2127
2093 // Only the active observer should have been ticked. 2128 // Only the active observer should have been ticked.
2094 EXPECT_EQ(0.5f, pending_dummy_impl.opacity()); 2129 EXPECT_EQ(0.5f, pending_dummy_impl.opacity());
2095 EXPECT_EQ(0.75f, dummy_impl.opacity()); 2130 EXPECT_EQ(0.75f, dummy_impl.opacity());
2096 2131
2097 controller_impl->ActivateAnimations(); 2132 controller_impl->ActivateAnimations();
2098 2133
2099 // Activation should cause the animation to be deleted. 2134 // Activation should cause the animation to be deleted.
2100 EXPECT_FALSE(controller_impl->has_any_animation()); 2135 EXPECT_FALSE(controller_impl->has_any_animation());
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
2142 EXPECT_TRUE(controller_impl->GetAnimation(first_animation_group_id, 2177 EXPECT_TRUE(controller_impl->GetAnimation(first_animation_group_id,
2143 Animation::Opacity) 2178 Animation::Opacity)
2144 ->affects_active_observers()); 2179 ->affects_active_observers());
2145 EXPECT_TRUE(controller_impl->GetAnimation(second_animation_group_id, 2180 EXPECT_TRUE(controller_impl->GetAnimation(second_animation_group_id,
2146 Animation::Opacity) 2181 Animation::Opacity)
2147 ->affects_pending_observers()); 2182 ->affects_pending_observers());
2148 EXPECT_FALSE(controller_impl->GetAnimation(second_animation_group_id, 2183 EXPECT_FALSE(controller_impl->GetAnimation(second_animation_group_id,
2149 Animation::Opacity) 2184 Animation::Opacity)
2150 ->affects_active_observers()); 2185 ->affects_active_observers());
2151 2186
2152 controller_impl->Animate(kInitialTickTime + 0.5); 2187 controller_impl->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(500));
2153 controller_impl->UpdateState(true, events.get()); 2188 controller_impl->UpdateState(true, events.get());
2154 2189
2155 // The original animation should still be running, and the new animation 2190 // The original animation should still be running, and the new animation
2156 // should be starting. 2191 // should be starting.
2157 EXPECT_EQ(Animation::Running, 2192 EXPECT_EQ(Animation::Running,
2158 controller_impl->GetAnimation(first_animation_group_id, 2193 controller_impl->GetAnimation(first_animation_group_id,
2159 Animation::Opacity)->run_state()); 2194 Animation::Opacity)->run_state());
2160 EXPECT_EQ(Animation::Starting, 2195 EXPECT_EQ(Animation::Starting,
2161 controller_impl->GetAnimation(second_animation_group_id, 2196 controller_impl->GetAnimation(second_animation_group_id,
2162 Animation::Opacity)->run_state()); 2197 Animation::Opacity)->run_state());
2163 2198
2164 // The active observer should have been ticked by the original animation, 2199 // The active observer should have been ticked by the original animation,
2165 // and the pending observer should have been ticked by the new animation. 2200 // and the pending observer should have been ticked by the new animation.
2166 EXPECT_EQ(1.f, pending_dummy_impl.opacity()); 2201 EXPECT_EQ(1.f, pending_dummy_impl.opacity());
2167 EXPECT_EQ(0.5f, dummy_impl.opacity()); 2202 EXPECT_EQ(0.5f, dummy_impl.opacity());
2168 2203
2169 controller_impl->ActivateAnimations(); 2204 controller_impl->ActivateAnimations();
2170 2205
2171 // The original animation should have been deleted, and the new animation 2206 // The original animation should have been deleted, and the new animation
2172 // should now affect both observers. 2207 // should now affect both observers.
2173 EXPECT_FALSE(controller_impl->GetAnimation(first_animation_group_id, 2208 EXPECT_FALSE(controller_impl->GetAnimation(first_animation_group_id,
2174 Animation::Opacity)); 2209 Animation::Opacity));
2175 EXPECT_TRUE(controller_impl->GetAnimation(second_animation_group_id, 2210 EXPECT_TRUE(controller_impl->GetAnimation(second_animation_group_id,
2176 Animation::Opacity) 2211 Animation::Opacity)
2177 ->affects_pending_observers()); 2212 ->affects_pending_observers());
2178 EXPECT_TRUE(controller_impl->GetAnimation(second_animation_group_id, 2213 EXPECT_TRUE(controller_impl->GetAnimation(second_animation_group_id,
2179 Animation::Opacity) 2214 Animation::Opacity)
2180 ->affects_active_observers()); 2215 ->affects_active_observers());
2181 2216
2182 controller_impl->Animate(kInitialTickTime + 1.0); 2217 controller_impl->Animate(kInitialTickTime +
2218 TimeDelta::FromMilliseconds(1000));
2183 controller_impl->UpdateState(true, events.get()); 2219 controller_impl->UpdateState(true, events.get());
2184 2220
2185 // The new animation should be running, and the active observer should have 2221 // The new animation should be running, and the active observer should have
2186 // been ticked at the new animation's starting point. 2222 // been ticked at the new animation's starting point.
2187 EXPECT_EQ(Animation::Running, 2223 EXPECT_EQ(Animation::Running,
2188 controller_impl->GetAnimation(second_animation_group_id, 2224 controller_impl->GetAnimation(second_animation_group_id,
2189 Animation::Opacity)->run_state()); 2225 Animation::Opacity)->run_state());
2190 EXPECT_EQ(1.f, pending_dummy_impl.opacity()); 2226 EXPECT_EQ(1.f, pending_dummy_impl.opacity());
2191 EXPECT_EQ(1.f, dummy_impl.opacity()); 2227 EXPECT_EQ(1.f, dummy_impl.opacity());
2192 } 2228 }
2193 2229
2194 } // namespace 2230 } // namespace
2195 } // namespace cc 2231 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698