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

Unified Diff: Source/core/animation/AnimationClockTest.cpp

Issue 369793003: Make the web-animations engine use the passed in blink::WebFrameTime values. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fixing the tests under the release build. Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/animation/AnimationClockTest.cpp
diff --git a/Source/core/animation/AnimationClockTest.cpp b/Source/core/animation/AnimationClockTest.cpp
index 89412585331072bc0e902da99d193b2fcdad4e71..9d973dad544e14ad93ef0294dd2d65e431531e56 100644
--- a/Source/core/animation/AnimationClockTest.cpp
+++ b/Source/core/animation/AnimationClockTest.cpp
@@ -41,103 +41,86 @@ namespace {
class AnimationAnimationClockTest : public ::testing::Test {
public:
AnimationAnimationClockTest()
- : animationClock(mockTimeFunction)
+ : animationClock()
{ }
+
protected:
- virtual void SetUp()
+ blink::WebFrameTime createFrameTime(double currentFrameMonotonic, double nextFrameMonotonic)
{
- mockTime = 0;
- animationClock.resetTimeForTesting();
+ // AnimationClock doesn't use the first two fields (lastFrameTime and
+ // renderDeadline).
+ return blink::WebFrameTime(
+ blink::WebFrameTime::Undefined(),
+ blink::WebFrameTime::Undefined(),
+ currentFrameMonotonic,
+ nextFrameMonotonic);
}
- static double mockTimeFunction()
+ virtual void SetUp()
{
- return mockTime;
+ animationClock.clearTimeForTesting();
+ animationClock.updateTime(createFrameTime(0, 0));
}
- static double mockTime;
AnimationClock animationClock;
};
-double AnimationAnimationClockTest::mockTime;
-
TEST_F(AnimationAnimationClockTest, TimeIsGreaterThanZeroForUnitTests)
{
AnimationClock clock;
+ clock.resetTimeForTesting();
+
// unit tests outside core/animation shouldn't need to do anything to get
// a non-zero currentTime().
+ double lastTime = clock.currentTime();
EXPECT_GT(clock.currentTime(), 0);
+
+ clock.tickTimeForTesting();
+ EXPECT_GT(clock.currentTime(), lastTime);
}
TEST_F(AnimationAnimationClockTest, TimeDoesNotChange)
{
- animationClock.updateTime(100);
+ animationClock.updateTime(createFrameTime(100, 200));
EXPECT_EQ(100, animationClock.currentTime());
EXPECT_EQ(100, animationClock.currentTime());
}
TEST_F(AnimationAnimationClockTest, TimeAdvancesWhenUpdated)
{
- animationClock.updateTime(100);
+ animationClock.updateTime(createFrameTime(100, 200));
EXPECT_EQ(100, animationClock.currentTime());
- animationClock.updateTime(200);
+ animationClock.updateTime(createFrameTime(200, 300));
EXPECT_EQ(200, animationClock.currentTime());
}
TEST_F(AnimationAnimationClockTest, TimeAdvancesToTaskTime)
{
- animationClock.updateTime(100);
+ animationClock.updateTime(createFrameTime(100, 150));
EXPECT_EQ(100, animationClock.currentTime());
- mockTime = 150;
AnimationClock::notifyTaskStart();
- EXPECT_GE(animationClock.currentTime(), mockTime);
-}
-
-TEST_F(AnimationAnimationClockTest, TimeAdvancesToTaskTimeOnlyWhenRequired)
-{
- animationClock.updateTime(100);
- EXPECT_EQ(100, animationClock.currentTime());
+ EXPECT_EQ(animationClock.currentTime(), 150);
AnimationClock::notifyTaskStart();
- animationClock.updateTime(125);
- EXPECT_EQ(125, animationClock.currentTime());
+ EXPECT_EQ(animationClock.currentTime(), 150);
}
TEST_F(AnimationAnimationClockTest, UpdateTimeIsMonotonic)
{
- animationClock.updateTime(100);
+ animationClock.updateTime(createFrameTime(100, 150));
EXPECT_EQ(100, animationClock.currentTime());
+#ifndef NDEBUG
+ EXPECT_DEATH({
+ animationClock.updateTime(createFrameTime(50, 150));
+ }, "");
- // Update can't go backwards.
- animationClock.updateTime(50);
- EXPECT_EQ(100, animationClock.currentTime());
-
- mockTime = 50;
AnimationClock::notifyTaskStart();
- EXPECT_EQ(100, animationClock.currentTime());
-
- mockTime = 150;
- AnimationClock::notifyTaskStart();
- EXPECT_GE(animationClock.currentTime(), mockTime);
-
- // Update can't go backwards after advance to estimate.
- animationClock.updateTime(100);
- EXPECT_GE(animationClock.currentTime(), mockTime);
-}
-
-TEST_F(AnimationAnimationClockTest, CurrentTimeUpdatesTask)
-{
- animationClock.updateTime(100);
- EXPECT_EQ(100, animationClock.currentTime());
-
- mockTime = 100;
- AnimationClock::notifyTaskStart();
- EXPECT_EQ(100, animationClock.currentTime());
-
- mockTime = 150;
- EXPECT_EQ(100, animationClock.currentTime());
+ EXPECT_DEATH({
+ animationClock.updateTime(createFrameTime(149, 150));
+ }, "");
+#endif
}
}

Powered by Google App Engine
This is Rietveld 408576698