diff options
Diffstat (limited to 'chromium/cc/animation/animation_unittest.cc')
-rw-r--r-- | chromium/cc/animation/animation_unittest.cc | 407 |
1 files changed, 275 insertions, 132 deletions
diff --git a/chromium/cc/animation/animation_unittest.cc b/chromium/cc/animation/animation_unittest.cc index 8223cee5855..1d4b8f7a167 100644 --- a/chromium/cc/animation/animation_unittest.cc +++ b/chromium/cc/animation/animation_unittest.cc @@ -11,6 +11,13 @@ namespace cc { namespace { +using base::TimeDelta; + +static base::TimeTicks TicksFromSecondsF(double seconds) { + return base::TimeTicks::FromInternalValue(seconds * + base::Time::kMicrosecondsPerSecond); +} + scoped_ptr<Animation> CreateAnimation(int iterations, double duration) { scoped_ptr<Animation> to_return(Animation::Create( make_scoped_ptr( @@ -28,234 +35,370 @@ 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(TicksFromSecondsF(-1.0))); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(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(TicksFromSecondsF(-1.0))); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))); + EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(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(TicksFromSecondsF(0.0))); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))); +} + +TEST(AnimationTest, TrimTimeReverse) { + scoped_ptr<Animation> anim(CreateAnimation(-1)); + anim->set_direction(Animation::Reverse); + EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0))); + EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))); + EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))); + EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))); + EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))); +} + +TEST(AnimationTest, TrimTimeAlternateInfiniteIterations) { + scoped_ptr<Animation> anim(CreateAnimation(-1)); + anim->set_direction(Animation::Alternate); + EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))); + EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))); + EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))); + EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))); } -TEST(AnimationTest, TrimTimeAlternating) { +TEST(AnimationTest, TrimTimeAlternateOneIteration) { + scoped_ptr<Animation> anim(CreateAnimation(1)); + anim->set_direction(Animation::Alternate); + EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))); + EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))); + EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))); + EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))); +} + +TEST(AnimationTest, TrimTimeAlternateTwoIterations) { + scoped_ptr<Animation> anim(CreateAnimation(2)); + anim->set_direction(Animation::Alternate); + EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))); + EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))); + EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))); + EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))); + EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75))); + EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))); + EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25))); +} + +TEST(AnimationTest, TrimTimeAlternateReverseInfiniteIterations) { scoped_ptr<Animation> anim(CreateAnimation(-1)); - anim->set_alternates_direction(true); - EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(0.0)); - EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(0.5)); - EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(1.0)); - EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(1.25)); + anim->set_direction(Animation::AlternateReverse); + EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))); + EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))); + EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))); + EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))); +} + +TEST(AnimationTest, TrimTimeAlternateReverseOneIteration) { + scoped_ptr<Animation> anim(CreateAnimation(1)); + anim->set_direction(Animation::AlternateReverse); + EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))); + EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))); + EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))); + EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))); +} + +TEST(AnimationTest, TrimTimeAlternateReverseTwoIterations) { + scoped_ptr<Animation> anim(CreateAnimation(2)); + anim->set_direction(Animation::AlternateReverse); + EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))); + EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))); + EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))); + EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))); + EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75))); + EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))); + EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.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(TicksFromSecondsF(4)); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0))); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5))); + EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(5.0))); + EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(6.0))); +} + +TEST(AnimationTest, TrimTimeStartTimeReverse) { + scoped_ptr<Animation> anim(CreateAnimation(1)); + anim->set_start_time(TicksFromSecondsF(4)); + anim->set_direction(Animation::Reverse); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0))); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5))); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(5.0))); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(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(TicksFromSecondsF(4)); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))); + EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))); + EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))); +} + +TEST(AnimationTest, TrimTimeTimeOffsetReverse) { + scoped_ptr<Animation> anim(CreateAnimation(1)); + anim->set_time_offset(TimeDelta::FromMilliseconds(4000)); + anim->set_start_time(TicksFromSecondsF(4)); + anim->set_direction(Animation::Reverse); + EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))); } TEST(AnimationTest, TrimTimeNegativeTimeOffset) { scoped_ptr<Animation> anim(CreateAnimation(1)); - anim->set_time_offset(-4); + anim->set_time_offset(TimeDelta::FromMilliseconds(-4000)); - 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(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0))); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5))); + EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(5.0))); +} + +TEST(AnimationTest, TrimTimeNegativeTimeOffsetReverse) { + scoped_ptr<Animation> anim(CreateAnimation(1)); + anim->set_time_offset(TimeDelta::FromMilliseconds(-4000)); + anim->set_direction(Animation::Reverse); + + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0))); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5))); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(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, TicksFromSecondsF(0.0)); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))); + anim->SetRunState(Animation::Paused, TicksFromSecondsF(0.5)); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))); + anim->SetRunState(Animation::Running, TicksFromSecondsF(1024.0)); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))); + EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.5))); +} + +TEST(AnimationTest, TrimTimePauseResumeReverse) { + scoped_ptr<Animation> anim(CreateAnimation(1)); + anim->set_direction(Animation::Reverse); + anim->SetRunState(Animation::Running, TicksFromSecondsF(0.0)); + EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))); + anim->SetRunState(Animation::Paused, TicksFromSecondsF(0.25)); + EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))); + anim->SetRunState(Animation::Running, TicksFromSecondsF(1024.0)); + EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(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, TicksFromSecondsF(0.0)); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))); + anim->Suspend(TicksFromSecondsF(0.5)); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))); + anim->Resume(TicksFromSecondsF(1024)); + EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))); + EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.5))); +} + +TEST(AnimationTest, TrimTimeSuspendResumeReverse) { + scoped_ptr<Animation> anim(CreateAnimation(1)); + anim->set_direction(Animation::Reverse); + anim->SetRunState(Animation::Running, TicksFromSecondsF(0.0)); + EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))); + anim->Suspend(TicksFromSecondsF(0.75)); + EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))); + anim->Resume(TicksFromSecondsF(1024)); + EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(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, TicksFromSecondsF(0.0)); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(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, TicksFromSecondsF(0.0)); + EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))); + EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))); + anim->set_time_offset(TimeDelta::FromMilliseconds(2000)); + EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))); + EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))); + anim->set_start_time(TicksFromSecondsF(1.0)); + EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))); + EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))); + EXPECT_EQ(3.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))); } TEST(AnimationTest, TrimTimeNeedsSynchronizedStartTime) { scoped_ptr<Animation> anim(CreateAnimation(1, 5.0)); - anim->SetRunState(Animation::Running, 0.0); + anim->SetRunState(Animation::Running, 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(TicksFromSecondsF(-1.0))); + EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))); + anim->set_time_offset(TimeDelta::FromMilliseconds(2000)); + EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))); + EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))); + EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))); + anim->set_start_time(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(TicksFromSecondsF(0.0))); + EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))); + EXPECT_EQ(3.0, anim->TrimTimeToCurrentIteration(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, TicksFromSecondsF(0.0)); + EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(-1.0))); + EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); + EXPECT_TRUE(anim->IsFinishedAt(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, TicksFromSecondsF(0.0)); + EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(-1.0))); + EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); + EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(1.0))); + EXPECT_TRUE(anim->IsFinishedAt(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, TicksFromSecondsF(0.0)); + EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); + EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.5))); + EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(1.0))); + EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(1.5))); } TEST(AnimationTest, IsFinishedNegativeTimeOffset) { 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, TicksFromSecondsF(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)); + EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(-1.0))); + EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); + EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.5))); + EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(1.0))); + EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(1.5))); + EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(2.0))); + EXPECT_TRUE(anim->IsFinishedAt(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, 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(TicksFromSecondsF(-1.0))); + EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); + EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(0.5))); + EXPECT_TRUE(anim->IsFinishedAt(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, TicksFromSecondsF(0.0)); + EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); + anim->SetRunState(Animation::Paused, TicksFromSecondsF(0.0)); + EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); + anim->SetRunState(Animation::WaitingForTargetAvailability, + TicksFromSecondsF(0.0)); + EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); + anim->SetRunState(Animation::Finished, TicksFromSecondsF(0.0)); + EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); + anim->SetRunState(Animation::Aborted, TicksFromSecondsF(0.0)); + EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); } TEST(AnimationTest, IsFinished) { scoped_ptr<Animation> anim(CreateAnimation(1)); - anim->SetRunState(Animation::Running, 0.0); + anim->SetRunState(Animation::Running, TicksFromSecondsF(0.0)); EXPECT_FALSE(anim->is_finished()); - anim->SetRunState(Animation::Paused, 0.0); + anim->SetRunState(Animation::Paused, TicksFromSecondsF(0.0)); EXPECT_FALSE(anim->is_finished()); - anim->SetRunState(Animation::WaitingForTargetAvailability, 0.0); + anim->SetRunState(Animation::WaitingForTargetAvailability, + TicksFromSecondsF(0.0)); EXPECT_FALSE(anim->is_finished()); - anim->SetRunState(Animation::Finished, 0.0); + anim->SetRunState(Animation::Finished, TicksFromSecondsF(0.0)); EXPECT_TRUE(anim->is_finished()); - anim->SetRunState(Animation::Aborted, 0.0); + anim->SetRunState(Animation::Aborted, 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, TicksFromSecondsF(2.0)); EXPECT_FALSE(anim->is_finished()); - anim->SetRunState(Animation::Paused, 2.0); + anim->SetRunState(Animation::Paused, TicksFromSecondsF(2.0)); EXPECT_FALSE(anim->is_finished()); - anim->SetRunState(Animation::WaitingForTargetAvailability, 2.0); + anim->SetRunState(Animation::WaitingForTargetAvailability, + TicksFromSecondsF(2.0)); EXPECT_FALSE(anim->is_finished()); - anim->SetRunState(Animation::Finished, 0.0); + anim->SetRunState(Animation::Finished, TicksFromSecondsF(0.0)); EXPECT_TRUE(anim->is_finished()); - anim->SetRunState(Animation::Aborted, 0.0); + anim->SetRunState(Animation::Aborted, TicksFromSecondsF(0.0)); EXPECT_TRUE(anim->is_finished()); } TEST(AnimationTest, RunStateChangesIgnoredWhileSuspended) { scoped_ptr<Animation> anim(CreateAnimation(1)); - anim->Suspend(0); + anim->Suspend(TicksFromSecondsF(0)); EXPECT_EQ(Animation::Paused, anim->run_state()); - anim->SetRunState(Animation::Running, 0.0); + anim->SetRunState(Animation::Running, TicksFromSecondsF(0.0)); EXPECT_EQ(Animation::Paused, anim->run_state()); - anim->Resume(0); - anim->SetRunState(Animation::Running, 0.0); + anim->Resume(TicksFromSecondsF(0)); + anim->SetRunState(Animation::Running, TicksFromSecondsF(0.0)); EXPECT_EQ(Animation::Running, anim->run_state()); } |