Index: cc/animation/animation_unittest.cc |
diff --git a/cc/animation/animation_unittest.cc b/cc/animation/animation_unittest.cc |
index 337d3eedb359ac3362d3a85be454791a58fd5aa8..23d416976792b6e88e8aa8781c5fa12f7b5092b0 100644 |
--- a/cc/animation/animation_unittest.cc |
+++ b/cc/animation/animation_unittest.cc |
@@ -110,6 +110,41 @@ TEST(AnimationTest, TrimTimeZeroDuration) { |
EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(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)); |
+} |
+ |
+TEST(AnimationTest, TrimTimeNeedsSynchronizedStartTime) { |
+ scoped_ptr<Animation> anim(CreateAnimation(1, 5.0)); |
+ anim->SetRunState(Animation::Running, 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); |
+ 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)); |
+} |
+ |
TEST(AnimationTest, IsFinishedAtZeroIterations) { |
scoped_ptr<Animation> anim(CreateAnimation(0)); |
anim->SetRunState(Animation::Running, 0.0); |