| Index: cc/animation/animation_unittest.cc
|
| diff --git a/cc/animation/animation_unittest.cc b/cc/animation/animation_unittest.cc
|
| index 7a9019d209fa8105b5b4cee657e3eb39b6f32125..2e1fec04f39fa6dfbb84ee059ca2245d1ed7710d 100644
|
| --- a/cc/animation/animation_unittest.cc
|
| +++ b/cc/animation/animation_unittest.cc
|
| @@ -3,6 +3,7 @@
|
| // found in the LICENSE file.
|
|
|
| #include "cc/animation/animation.h"
|
| +#include "cc/base/time_util.h"
|
|
|
| #include "cc/test/animation_test_common.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| @@ -11,6 +12,8 @@
|
| namespace cc {
|
| namespace {
|
|
|
| +using base::TimeDelta;
|
| +
|
| scoped_ptr<Animation> CreateAnimation(int iterations, double duration) {
|
| scoped_ptr<Animation> to_return(Animation::Create(
|
| make_scoped_ptr(
|
| @@ -28,317 +31,437 @@ scoped_ptr<Animation> CreateAnimation(int iterations) {
|
|
|
| TEST(AnimationTest, TrimTimeZeroIterations) {
|
| scoped_ptr<Animation> anim(CreateAnimation(0));
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(-1.0));
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(1.0));
|
| + EXPECT_EQ(
|
| + 0, anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(-1.0)));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.0)));
|
| }
|
|
|
| TEST(AnimationTest, TrimTimeOneIteration) {
|
| scoped_ptr<Animation> anim(CreateAnimation(1));
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(-1.0));
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(1.0));
|
| - EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(2.0));
|
| + EXPECT_EQ(
|
| + 0, anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(-1.0)));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(1,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.0)));
|
| + EXPECT_EQ(1,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(2.0)));
|
| }
|
|
|
| TEST(AnimationTest, TrimTimeInfiniteIterations) {
|
| scoped_ptr<Animation> anim(CreateAnimation(-1));
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(0.5));
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(1.0));
|
| - EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(1.5));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(0.5,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.5)));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.0)));
|
| + EXPECT_EQ(0.5,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.5)));
|
| }
|
|
|
| TEST(AnimationTest, TrimTimeReverse) {
|
| scoped_ptr<Animation> anim(CreateAnimation(-1));
|
| anim->set_direction(Animation::Reverse);
|
| - EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(0));
|
| - EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(0.25));
|
| - EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(0.5));
|
| - EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(0.75));
|
| - EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(1.0));
|
| - EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(1.25));
|
| + EXPECT_EQ(1.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0)));
|
| + EXPECT_EQ(
|
| + 0.75,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.25)));
|
| + EXPECT_EQ(0.5,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.5)));
|
| + EXPECT_EQ(
|
| + 0.25,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.75)));
|
| + EXPECT_EQ(1.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.0)));
|
| + EXPECT_EQ(
|
| + 0.75,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.25)));
|
| }
|
|
|
| TEST(AnimationTest, TrimTimeAlternate) {
|
| scoped_ptr<Animation> anim(CreateAnimation(-1));
|
| anim->set_direction(Animation::Alternate);
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(0.25));
|
| - EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(0.5));
|
| - EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(0.75));
|
| - EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(1.0));
|
| - EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(1.25));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(
|
| + 0.25,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.25)));
|
| + EXPECT_EQ(0.5,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.5)));
|
| + EXPECT_EQ(
|
| + 0.75,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.75)));
|
| + EXPECT_EQ(1,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.0)));
|
| + EXPECT_EQ(
|
| + 0.75,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.25)));
|
| }
|
|
|
| TEST(AnimationTest, TrimTimeAlternateReverse) {
|
| scoped_ptr<Animation> anim(CreateAnimation(-1));
|
| anim->set_direction(Animation::AlternateReverse);
|
| - EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(0.25));
|
| - EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(0.5));
|
| - EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(0.75));
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(1.0));
|
| - EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(1.25));
|
| + EXPECT_EQ(1.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(
|
| + 0.75,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.25)));
|
| + EXPECT_EQ(0.5,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.5)));
|
| + EXPECT_EQ(
|
| + 0.25,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.75)));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.0)));
|
| + EXPECT_EQ(
|
| + 0.25,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.25)));
|
| }
|
|
|
| TEST(AnimationTest, TrimTimeStartTime) {
|
| scoped_ptr<Animation> anim(CreateAnimation(1));
|
| - anim->set_start_time(4);
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(4.0));
|
| - EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(4.5));
|
| - EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(5.0));
|
| - EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(6.0));
|
| + anim->set_start_time(TimeUtil::TicksFromSecondsF(4));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(4.0)));
|
| + EXPECT_EQ(0.5,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(4.5)));
|
| + EXPECT_EQ(1,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(5.0)));
|
| + EXPECT_EQ(1,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(6.0)));
|
| }
|
|
|
| TEST(AnimationTest, TrimTimeStartTimeReverse) {
|
| scoped_ptr<Animation> anim(CreateAnimation(1));
|
| - anim->set_start_time(4);
|
| + anim->set_start_time(TimeUtil::TicksFromSecondsF(4));
|
| anim->set_direction(Animation::Reverse);
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(4.0));
|
| - EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(4.5));
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(5.0));
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(6.0));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(1.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(4.0)));
|
| + EXPECT_EQ(0.5,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(4.5)));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(5.0)));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(6.0)));
|
| }
|
|
|
| TEST(AnimationTest, TrimTimeTimeOffset) {
|
| scoped_ptr<Animation> anim(CreateAnimation(1));
|
| - anim->set_time_offset(4);
|
| - anim->set_start_time(4);
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(0.5));
|
| - EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(1.0));
|
| - EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(1.0));
|
| + anim->set_time_offset(TimeDelta::FromMilliseconds(4000));
|
| + anim->set_start_time(TimeUtil::TicksFromSecondsF(4));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(0.5,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.5)));
|
| + EXPECT_EQ(1,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.0)));
|
| + EXPECT_EQ(1,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.0)));
|
| }
|
|
|
| TEST(AnimationTest, TrimTimeTimeOffsetReverse) {
|
| scoped_ptr<Animation> anim(CreateAnimation(1));
|
| - anim->set_time_offset(4);
|
| - anim->set_start_time(4);
|
| + anim->set_time_offset(TimeDelta::FromMilliseconds(4000));
|
| + anim->set_start_time(TimeUtil::TicksFromSecondsF(4));
|
| anim->set_direction(Animation::Reverse);
|
| - EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(0.5));
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(1.0));
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(1.0));
|
| + EXPECT_EQ(1.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(0.5,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.5)));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.0)));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.0)));
|
| }
|
|
|
| TEST(AnimationTest, TrimTimeNegativeTimeOffset) {
|
| scoped_ptr<Animation> anim(CreateAnimation(1));
|
| - anim->set_time_offset(-4);
|
| -
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(4.0));
|
| - EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(4.5));
|
| - EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(5.0));
|
| + anim->set_time_offset(TimeDelta::FromMilliseconds(-4000));
|
| +
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(4.0)));
|
| + EXPECT_EQ(0.5,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(4.5)));
|
| + EXPECT_EQ(1,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(5.0)));
|
| }
|
|
|
| TEST(AnimationTest, TrimTimeNegativeTimeOffsetReverse) {
|
| scoped_ptr<Animation> anim(CreateAnimation(1));
|
| - anim->set_time_offset(-4);
|
| + anim->set_time_offset(TimeDelta::FromMilliseconds(-4000));
|
| anim->set_direction(Animation::Reverse);
|
|
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(4.0));
|
| - EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(4.5));
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(5.0));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(1.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(4.0)));
|
| + EXPECT_EQ(0.5,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(4.5)));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(5.0)));
|
| }
|
|
|
| TEST(AnimationTest, TrimTimePauseResume) {
|
| scoped_ptr<Animation> anim(CreateAnimation(1));
|
| - anim->SetRunState(Animation::Running, 0.0);
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(0.5));
|
| - anim->SetRunState(Animation::Paused, 0.5);
|
| - EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(1024.0));
|
| - anim->SetRunState(Animation::Running, 1024.0);
|
| - EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(1024.0));
|
| - EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(1024.5));
|
| + anim->SetRunState(Animation::Running, TimeUtil::TicksFromSecondsF(0.0));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(0.5,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.5)));
|
| + anim->SetRunState(Animation::Paused, TimeUtil::TicksFromSecondsF(0.5));
|
| + EXPECT_EQ(
|
| + 0.5,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1024.0)));
|
| + anim->SetRunState(Animation::Running, TimeUtil::TicksFromSecondsF(1024.0));
|
| + EXPECT_EQ(
|
| + 0.5,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1024.0)));
|
| + EXPECT_EQ(
|
| + 1, anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1024.5)));
|
| }
|
|
|
| TEST(AnimationTest, TrimTimePauseResumeReverse) {
|
| scoped_ptr<Animation> anim(CreateAnimation(1));
|
| anim->set_direction(Animation::Reverse);
|
| - anim->SetRunState(Animation::Running, 0.0);
|
| - EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(0.5));
|
| - anim->SetRunState(Animation::Paused, 0.25);
|
| - EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(1024.0));
|
| - anim->SetRunState(Animation::Running, 1024.0);
|
| - EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(1024.0));
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(1024.75));
|
| + anim->SetRunState(Animation::Running, TimeUtil::TicksFromSecondsF(0.0));
|
| + EXPECT_EQ(1.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(0.5,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.5)));
|
| + anim->SetRunState(Animation::Paused, TimeUtil::TicksFromSecondsF(0.25));
|
| + EXPECT_EQ(
|
| + 0.75,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1024.0)));
|
| + anim->SetRunState(Animation::Running, TimeUtil::TicksFromSecondsF(1024.0));
|
| + EXPECT_EQ(
|
| + 0.75,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1024.0)));
|
| + EXPECT_EQ(
|
| + 0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1024.75)));
|
| }
|
|
|
| TEST(AnimationTest, TrimTimeSuspendResume) {
|
| scoped_ptr<Animation> anim(CreateAnimation(1));
|
| - anim->SetRunState(Animation::Running, 0.0);
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(0.5));
|
| - anim->Suspend(0.5);
|
| - EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(1024.0));
|
| - anim->Resume(1024);
|
| - EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(1024.0));
|
| - EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(1024.5));
|
| + anim->SetRunState(Animation::Running, TimeUtil::TicksFromSecondsF(0.0));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(0.5,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.5)));
|
| + anim->Suspend(TimeUtil::TicksFromSecondsF(0.5));
|
| + EXPECT_EQ(
|
| + 0.5,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1024.0)));
|
| + anim->Resume(TimeUtil::TicksFromSecondsF(1024));
|
| + EXPECT_EQ(
|
| + 0.5,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1024.0)));
|
| + EXPECT_EQ(
|
| + 1, anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1024.5)));
|
| }
|
|
|
| TEST(AnimationTest, TrimTimeSuspendResumeReverse) {
|
| scoped_ptr<Animation> anim(CreateAnimation(1));
|
| anim->set_direction(Animation::Reverse);
|
| - anim->SetRunState(Animation::Running, 0.0);
|
| - EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(0.25));
|
| - anim->Suspend(0.75);
|
| - EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(1024.0));
|
| - anim->Resume(1024);
|
| - EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(1024.0));
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(1024.25));
|
| + anim->SetRunState(Animation::Running, TimeUtil::TicksFromSecondsF(0.0));
|
| + EXPECT_EQ(1.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(
|
| + 0.75,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.25)));
|
| + anim->Suspend(TimeUtil::TicksFromSecondsF(0.75));
|
| + EXPECT_EQ(
|
| + 0.25,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1024.0)));
|
| + anim->Resume(TimeUtil::TicksFromSecondsF(1024));
|
| + EXPECT_EQ(
|
| + 0.25,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1024.0)));
|
| + EXPECT_EQ(
|
| + 0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1024.25)));
|
| }
|
|
|
| TEST(AnimationTest, TrimTimeZeroDuration) {
|
| scoped_ptr<Animation> anim(CreateAnimation(0, 0));
|
| - anim->SetRunState(Animation::Running, 0.0);
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(-1.0));
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(1.0));
|
| + anim->SetRunState(Animation::Running, TimeUtil::TicksFromSecondsF(0.0));
|
| + EXPECT_EQ(
|
| + 0, anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(-1.0)));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.0)));
|
| }
|
|
|
| TEST(AnimationTest, TrimTimeStarting) {
|
| scoped_ptr<Animation> anim(CreateAnimation(1, 5.0));
|
| - anim->SetRunState(Animation::Starting, 0.0);
|
| - EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(-1.0));
|
| - EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(1.0));
|
| - anim->set_time_offset(2.0);
|
| - EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(-1.0));
|
| - EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(1.0));
|
| - anim->set_start_time(1.0);
|
| - EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(-1.0));
|
| - EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(1.0));
|
| - EXPECT_EQ(3.0, anim->TrimTimeToCurrentIteration(2.0));
|
| + anim->SetRunState(Animation::Starting, TimeUtil::TicksFromSecondsF(0.0));
|
| + EXPECT_EQ(
|
| + 0.0, anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(-1.0)));
|
| + EXPECT_EQ(0.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(0.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.0)));
|
| + anim->set_time_offset(TimeDelta::FromMilliseconds(2000));
|
| + EXPECT_EQ(
|
| + 2.0, anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(-1.0)));
|
| + EXPECT_EQ(2.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(2.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.0)));
|
| + anim->set_start_time(TimeUtil::TicksFromSecondsF(1.0));
|
| + EXPECT_EQ(
|
| + 0.0, anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(-1.0)));
|
| + EXPECT_EQ(1.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(2.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.0)));
|
| + EXPECT_EQ(3.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(2.0)));
|
| }
|
|
|
| TEST(AnimationTest, TrimTimeNeedsSynchronizedStartTime) {
|
| scoped_ptr<Animation> anim(CreateAnimation(1, 5.0));
|
| - anim->SetRunState(Animation::Running, 0.0);
|
| + anim->SetRunState(Animation::Running, TimeUtil::TicksFromSecondsF(0.0));
|
| anim->set_needs_synchronized_start_time(true);
|
| - EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(-1.0));
|
| - EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(1.0));
|
| - anim->set_time_offset(2.0);
|
| - EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(-1.0));
|
| - EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(1.0));
|
| - anim->set_start_time(1.0);
|
| + EXPECT_EQ(
|
| + 0.0, anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(-1.0)));
|
| + EXPECT_EQ(0.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(0.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.0)));
|
| + anim->set_time_offset(TimeDelta::FromMilliseconds(2000));
|
| + EXPECT_EQ(
|
| + 2.0, anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(-1.0)));
|
| + EXPECT_EQ(2.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(2.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.0)));
|
| + anim->set_start_time(TimeUtil::TicksFromSecondsF(1.0));
|
| anim->set_needs_synchronized_start_time(false);
|
| - EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(0.0));
|
| - EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(1.0));
|
| - EXPECT_EQ(3.0, anim->TrimTimeToCurrentIteration(2.0));
|
| + EXPECT_EQ(1.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_EQ(2.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(1.0)));
|
| + EXPECT_EQ(3.0,
|
| + anim->TrimTimeToCurrentIteration(TimeUtil::TicksFromSecondsF(2.0)));
|
| }
|
|
|
| TEST(AnimationTest, IsFinishedAtZeroIterations) {
|
| scoped_ptr<Animation> anim(CreateAnimation(0));
|
| - anim->SetRunState(Animation::Running, 0.0);
|
| - EXPECT_FALSE(anim->IsFinishedAt(-1.0));
|
| - EXPECT_TRUE(anim->IsFinishedAt(0.0));
|
| - EXPECT_TRUE(anim->IsFinishedAt(1.0));
|
| + anim->SetRunState(Animation::Running, TimeUtil::TicksFromSecondsF(0.0));
|
| + EXPECT_FALSE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(-1.0)));
|
| + EXPECT_TRUE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_TRUE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(1.0)));
|
| }
|
|
|
| TEST(AnimationTest, IsFinishedAtOneIteration) {
|
| scoped_ptr<Animation> anim(CreateAnimation(1));
|
| - anim->SetRunState(Animation::Running, 0.0);
|
| - EXPECT_FALSE(anim->IsFinishedAt(-1.0));
|
| - EXPECT_FALSE(anim->IsFinishedAt(0.0));
|
| - EXPECT_TRUE(anim->IsFinishedAt(1.0));
|
| - EXPECT_TRUE(anim->IsFinishedAt(2.0));
|
| + anim->SetRunState(Animation::Running, TimeUtil::TicksFromSecondsF(0.0));
|
| + EXPECT_FALSE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(-1.0)));
|
| + EXPECT_FALSE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_TRUE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(1.0)));
|
| + EXPECT_TRUE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(2.0)));
|
| }
|
|
|
| TEST(AnimationTest, IsFinishedAtInfiniteIterations) {
|
| scoped_ptr<Animation> anim(CreateAnimation(-1));
|
| - anim->SetRunState(Animation::Running, 0.0);
|
| - EXPECT_FALSE(anim->IsFinishedAt(0.0));
|
| - EXPECT_FALSE(anim->IsFinishedAt(0.5));
|
| - EXPECT_FALSE(anim->IsFinishedAt(1.0));
|
| - EXPECT_FALSE(anim->IsFinishedAt(1.5));
|
| + anim->SetRunState(Animation::Running, TimeUtil::TicksFromSecondsF(0.0));
|
| + EXPECT_FALSE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_FALSE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(0.5)));
|
| + EXPECT_FALSE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(1.0)));
|
| + EXPECT_FALSE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(1.5)));
|
| }
|
|
|
| TEST(AnimationTest, IsFinishedNegativeTimeOffset) {
|
| scoped_ptr<Animation> anim(CreateAnimation(1));
|
| - anim->set_time_offset(-0.5);
|
| - anim->SetRunState(Animation::Running, 0.0);
|
| -
|
| - EXPECT_FALSE(anim->IsFinishedAt(-1.0));
|
| - EXPECT_FALSE(anim->IsFinishedAt(0.0));
|
| - EXPECT_FALSE(anim->IsFinishedAt(0.5));
|
| - EXPECT_FALSE(anim->IsFinishedAt(1.0));
|
| - EXPECT_TRUE(anim->IsFinishedAt(1.5));
|
| - EXPECT_TRUE(anim->IsFinishedAt(2.0));
|
| - EXPECT_TRUE(anim->IsFinishedAt(2.5));
|
| + anim->set_time_offset(TimeDelta::FromMilliseconds(-500));
|
| + anim->SetRunState(Animation::Running, TimeUtil::TicksFromSecondsF(0.0));
|
| +
|
| + EXPECT_FALSE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(-1.0)));
|
| + EXPECT_FALSE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_FALSE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(0.5)));
|
| + EXPECT_FALSE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(1.0)));
|
| + EXPECT_TRUE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(1.5)));
|
| + EXPECT_TRUE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(2.0)));
|
| + EXPECT_TRUE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(2.5)));
|
| }
|
|
|
| TEST(AnimationTest, IsFinishedPositiveTimeOffset) {
|
| scoped_ptr<Animation> anim(CreateAnimation(1));
|
| - anim->set_time_offset(0.5);
|
| - anim->SetRunState(Animation::Running, 0.0);
|
| + anim->set_time_offset(TimeDelta::FromMilliseconds(500));
|
| + anim->SetRunState(Animation::Running, TimeUtil::TicksFromSecondsF(0.0));
|
|
|
| - EXPECT_FALSE(anim->IsFinishedAt(-1.0));
|
| - EXPECT_FALSE(anim->IsFinishedAt(0.0));
|
| - EXPECT_TRUE(anim->IsFinishedAt(0.5));
|
| - EXPECT_TRUE(anim->IsFinishedAt(1.0));
|
| + EXPECT_FALSE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(-1.0)));
|
| + EXPECT_FALSE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(0.0)));
|
| + EXPECT_TRUE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(0.5)));
|
| + EXPECT_TRUE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(1.0)));
|
| }
|
|
|
| TEST(AnimationTest, IsFinishedAtNotRunning) {
|
| scoped_ptr<Animation> anim(CreateAnimation(0));
|
| - anim->SetRunState(Animation::Running, 0.0);
|
| - EXPECT_TRUE(anim->IsFinishedAt(0.0));
|
| - anim->SetRunState(Animation::Paused, 0.0);
|
| - EXPECT_FALSE(anim->IsFinishedAt(0.0));
|
| - anim->SetRunState(Animation::WaitingForTargetAvailability, 0.0);
|
| - EXPECT_FALSE(anim->IsFinishedAt(0.0));
|
| - anim->SetRunState(Animation::Finished, 0.0);
|
| - EXPECT_TRUE(anim->IsFinishedAt(0.0));
|
| - anim->SetRunState(Animation::Aborted, 0.0);
|
| - EXPECT_TRUE(anim->IsFinishedAt(0.0));
|
| + anim->SetRunState(Animation::Running, TimeUtil::TicksFromSecondsF(0.0));
|
| + EXPECT_TRUE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(0.0)));
|
| + anim->SetRunState(Animation::Paused, TimeUtil::TicksFromSecondsF(0.0));
|
| + EXPECT_FALSE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(0.0)));
|
| + anim->SetRunState(Animation::WaitingForTargetAvailability,
|
| + TimeUtil::TicksFromSecondsF(0.0));
|
| + EXPECT_FALSE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(0.0)));
|
| + anim->SetRunState(Animation::Finished, TimeUtil::TicksFromSecondsF(0.0));
|
| + EXPECT_TRUE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(0.0)));
|
| + anim->SetRunState(Animation::Aborted, TimeUtil::TicksFromSecondsF(0.0));
|
| + EXPECT_TRUE(anim->IsFinishedAt(TimeUtil::TicksFromSecondsF(0.0)));
|
| }
|
|
|
| TEST(AnimationTest, IsFinished) {
|
| scoped_ptr<Animation> anim(CreateAnimation(1));
|
| - anim->SetRunState(Animation::Running, 0.0);
|
| + anim->SetRunState(Animation::Running, TimeUtil::TicksFromSecondsF(0.0));
|
| EXPECT_FALSE(anim->is_finished());
|
| - anim->SetRunState(Animation::Paused, 0.0);
|
| + anim->SetRunState(Animation::Paused, TimeUtil::TicksFromSecondsF(0.0));
|
| EXPECT_FALSE(anim->is_finished());
|
| - anim->SetRunState(Animation::WaitingForTargetAvailability, 0.0);
|
| + anim->SetRunState(Animation::WaitingForTargetAvailability,
|
| + TimeUtil::TicksFromSecondsF(0.0));
|
| EXPECT_FALSE(anim->is_finished());
|
| - anim->SetRunState(Animation::Finished, 0.0);
|
| + anim->SetRunState(Animation::Finished, TimeUtil::TicksFromSecondsF(0.0));
|
| EXPECT_TRUE(anim->is_finished());
|
| - anim->SetRunState(Animation::Aborted, 0.0);
|
| + anim->SetRunState(Animation::Aborted, TimeUtil::TicksFromSecondsF(0.0));
|
| EXPECT_TRUE(anim->is_finished());
|
| }
|
|
|
| TEST(AnimationTest, IsFinishedNeedsSynchronizedStartTime) {
|
| scoped_ptr<Animation> anim(CreateAnimation(1));
|
| - anim->SetRunState(Animation::Running, 2.0);
|
| + anim->SetRunState(Animation::Running, TimeUtil::TicksFromSecondsF(2.0));
|
| EXPECT_FALSE(anim->is_finished());
|
| - anim->SetRunState(Animation::Paused, 2.0);
|
| + anim->SetRunState(Animation::Paused, TimeUtil::TicksFromSecondsF(2.0));
|
| EXPECT_FALSE(anim->is_finished());
|
| - anim->SetRunState(Animation::WaitingForTargetAvailability, 2.0);
|
| + anim->SetRunState(Animation::WaitingForTargetAvailability,
|
| + TimeUtil::TicksFromSecondsF(2.0));
|
| EXPECT_FALSE(anim->is_finished());
|
| - anim->SetRunState(Animation::Finished, 0.0);
|
| + anim->SetRunState(Animation::Finished, TimeUtil::TicksFromSecondsF(0.0));
|
| EXPECT_TRUE(anim->is_finished());
|
| - anim->SetRunState(Animation::Aborted, 0.0);
|
| + anim->SetRunState(Animation::Aborted, TimeUtil::TicksFromSecondsF(0.0));
|
| EXPECT_TRUE(anim->is_finished());
|
| }
|
|
|
| TEST(AnimationTest, RunStateChangesIgnoredWhileSuspended) {
|
| scoped_ptr<Animation> anim(CreateAnimation(1));
|
| - anim->Suspend(0);
|
| + anim->Suspend(TimeUtil::TicksFromSecondsF(0));
|
| EXPECT_EQ(Animation::Paused, anim->run_state());
|
| - anim->SetRunState(Animation::Running, 0.0);
|
| + anim->SetRunState(Animation::Running, TimeUtil::TicksFromSecondsF(0.0));
|
| EXPECT_EQ(Animation::Paused, anim->run_state());
|
| - anim->Resume(0);
|
| - anim->SetRunState(Animation::Running, 0.0);
|
| + anim->Resume(TimeUtil::TicksFromSecondsF(0));
|
| + anim->SetRunState(Animation::Running, TimeUtil::TicksFromSecondsF(0.0));
|
| EXPECT_EQ(Animation::Running, anim->run_state());
|
| }
|
|
|
|
|