Chromium Code Reviews| Index: Source/core/animation/AnimationClockTest.cpp |
| diff --git a/Source/core/animation/AnimationClockTest.cpp b/Source/core/animation/AnimationClockTest.cpp |
| index 7e54cde9876530b9e86b72f61c95ff99063dff96..a359e9937128c2ccb7381dcc3a102a4d2f99296a 100644 |
| --- a/Source/core/animation/AnimationClockTest.cpp |
| +++ b/Source/core/animation/AnimationClockTest.cpp |
| @@ -42,46 +42,55 @@ class AnimationAnimationClockTest : public ::testing::Test { |
| protected: |
| virtual void SetUp() |
| { |
| - animationClock = AnimationClock::create(mockTimeFunction); |
| - mockTime = 200; |
| + animationClock = AnimationClock(); |
| + animationClock.resetTimeForTesting(); |
| } |
| - static double mockTimeFunction() |
| - { |
| - return mockTime; |
| - } |
| - |
| - static double mockTime; |
| - OwnPtr<AnimationClock> animationClock; |
| + AnimationClock animationClock; |
| }; |
| -double AnimationAnimationClockTest::mockTime; |
| +TEST_F(AnimationAnimationClockTest, TimeDoesNotChange) |
| +{ |
| + animationClock.updateTime(100); |
| + EXPECT_EQ(100, animationClock.currentTime()); |
| + EXPECT_EQ(100, animationClock.currentTime()); |
|
shans
2014/04/30 20:43:07
maybe insert an artificial pause between these two
|
| +} |
| + |
| +TEST_F(AnimationAnimationClockTest, TimeAdvancesWhenUpdated) |
| +{ |
| + animationClock.updateTime(100); |
| + EXPECT_EQ(100, animationClock.currentTime()); |
| + |
| + animationClock.updateTime(200); |
| + EXPECT_EQ(200, animationClock.currentTime()); |
| +} |
| -TEST_F(AnimationAnimationClockTest, CurrentTime) |
| +TEST_F(AnimationAnimationClockTest, TimeAdvancesToTaskTime) |
| { |
| - // Current time should not advance until minTimeBeforeUnsynchronizedTick has elapsed |
| - EXPECT_EQ(200, animationClock->currentTime()); |
| - mockTime = 200 + minTimeBeforeUnsynchronizedAnimationClockTick / 2.0; |
| - EXPECT_EQ(200, animationClock->currentTime()); |
| + animationClock.updateTime(100); |
| + EXPECT_EQ(100, animationClock.currentTime()); |
| - mockTime = 200 + minTimeBeforeUnsynchronizedAnimationClockTick; |
| - EXPECT_EQ(mockTime, animationClock->currentTime()); |
| + AnimationClock::notifyTaskStartTime(150); |
| + EXPECT_EQ(150, animationClock.currentTime()); |
| } |
| -TEST_F(AnimationAnimationClockTest, UpdateTime) |
| +TEST_F(AnimationAnimationClockTest, TimeAdvancesToTaskTimeOnlyWhenRequired) |
| { |
| - animationClock->updateTime(100); |
| - EXPECT_EQ(100, animationClock->currentTime()); |
| - mockTime = 200; |
| - EXPECT_EQ(100, animationClock->currentTime()); |
| - |
| - animationClock->unfreeze(); |
| - EXPECT_EQ(200, animationClock->currentTime()); |
| - |
| - animationClock->updateTime(300); |
| - EXPECT_EQ(300, animationClock->currentTime()); |
| - mockTime = 400; |
| - EXPECT_EQ(300, animationClock->currentTime()); |
| + animationClock.updateTime(100); |
| + EXPECT_EQ(100, animationClock.currentTime()); |
| + |
| + AnimationClock::notifyTaskStartTime(150); |
| + animationClock.updateTime(125); |
| + EXPECT_EQ(125, animationClock.currentTime()); |
| +} |
| + |
| +TEST_F(AnimationAnimationClockTest, UpdateTimeIsMonotonic) |
| +{ |
| + animationClock.updateTime(100); |
| + EXPECT_EQ(100, animationClock.currentTime()); |
| + |
| + animationClock.updateTime(50); |
| + EXPECT_EQ(100, animationClock.currentTime()); |
| } |
| } |