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

Unified Diff: third_party/WebKit/Source/core/animation/DocumentTimelineTest.cpp

Issue 2960733004: Implement DocumentTimeline constructor (Closed)
Patch Set: Rebase Created 3 years, 6 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: third_party/WebKit/Source/core/animation/DocumentTimelineTest.cpp
diff --git a/third_party/WebKit/Source/core/animation/DocumentTimelineTest.cpp b/third_party/WebKit/Source/core/animation/DocumentTimelineTest.cpp
index cab0eae17e7bfa9534bedc8db9d0c9e15fc3ece6..d4bfd9db6f3072c89500cc5ab7678919805d546f 100644
--- a/third_party/WebKit/Source/core/animation/DocumentTimelineTest.cpp
+++ b/third_party/WebKit/Source/core/animation/DocumentTimelineTest.cpp
@@ -62,7 +62,7 @@ class AnimationDocumentTimelineTest : public ::testing::Test {
document->GetAnimationClock().ResetTimeForTesting();
element = Element::Create(QualifiedName::Null(), document.Get());
platform_timing = new MockPlatformTiming;
- timeline = DocumentTimeline::Create(document.Get(), platform_timing);
+ timeline = DocumentTimeline::Create(document.Get(), 0.0, platform_timing);
timeline->ResetForTesting();
ASSERT_EQ(0, timeline->CurrentTimeInternal());
}
@@ -162,6 +162,33 @@ TEST_F(AnimationDocumentTimelineTest, PlaybackRateNormal) {
EXPECT_FALSE(is_null);
}
+TEST_F(AnimationDocumentTimelineTest, PlaybackRateNormalWithOriginTime) {
+ double origin_time_in_ms = -1000000.0;
+ timeline = DocumentTimeline::Create(document.Get(), origin_time_in_ms,
+ platform_timing);
+ timeline->ResetForTesting();
+
+ bool is_null;
+
+ EXPECT_EQ(1.0, timeline->PlaybackRate());
+ EXPECT_EQ(-1000, timeline->ZeroTime());
+ EXPECT_EQ(1000, timeline->CurrentTimeInternal());
+ EXPECT_EQ(1000, timeline->CurrentTimeInternal(is_null));
+ EXPECT_FALSE(is_null);
+
+ document->GetAnimationClock().UpdateTime(100);
+ EXPECT_EQ(-1000, timeline->ZeroTime());
+ EXPECT_EQ(1100, timeline->CurrentTimeInternal());
+ EXPECT_EQ(1100, timeline->CurrentTimeInternal(is_null));
+ EXPECT_FALSE(is_null);
+
+ document->GetAnimationClock().UpdateTime(200);
+ EXPECT_EQ(-1000, timeline->ZeroTime());
+ EXPECT_EQ(1200, timeline->CurrentTimeInternal());
+ EXPECT_EQ(1200, timeline->CurrentTimeInternal(is_null));
+ EXPECT_FALSE(is_null);
+}
+
TEST_F(AnimationDocumentTimelineTest, PlaybackRatePause) {
bool is_null;
@@ -188,6 +215,46 @@ TEST_F(AnimationDocumentTimelineTest, PlaybackRatePause) {
EXPECT_FALSE(is_null);
}
+TEST_F(AnimationDocumentTimelineTest, PlaybackRatePauseWithOriginTime) {
+ bool is_null;
+
+ double origin_time_in_ms = -1000000.0;
+ timeline = DocumentTimeline::Create(document.Get(), origin_time_in_ms,
+ platform_timing);
+ timeline->ResetForTesting();
+
+ EXPECT_EQ(-1000, timeline->ZeroTime());
+ EXPECT_EQ(1000, timeline->CurrentTimeInternal());
+ EXPECT_EQ(1000, timeline->CurrentTimeInternal(is_null));
+ EXPECT_FALSE(is_null);
+
+ document->GetAnimationClock().UpdateTime(100);
+ EXPECT_EQ(-1000, timeline->ZeroTime());
+ EXPECT_EQ(1100, timeline->CurrentTimeInternal());
+ EXPECT_EQ(1100, timeline->CurrentTimeInternal(is_null));
+ EXPECT_FALSE(is_null);
+
+ timeline->SetPlaybackRate(0.0);
+ EXPECT_EQ(0.0, timeline->PlaybackRate());
+ document->GetAnimationClock().UpdateTime(200);
+ EXPECT_EQ(1100, timeline->ZeroTime());
+ EXPECT_EQ(1100, timeline->CurrentTimeInternal());
+ EXPECT_EQ(1100, timeline->CurrentTimeInternal(is_null));
+
+ timeline->SetPlaybackRate(1.0);
+ EXPECT_EQ(1.0, timeline->PlaybackRate());
+ EXPECT_EQ(-900, timeline->ZeroTime());
+ EXPECT_EQ(1100, timeline->CurrentTimeInternal());
+ EXPECT_EQ(1100, timeline->CurrentTimeInternal(is_null));
+
+ document->GetAnimationClock().UpdateTime(400);
+ EXPECT_EQ(-900, timeline->ZeroTime());
+ EXPECT_EQ(1300, timeline->CurrentTimeInternal());
+ EXPECT_EQ(1300, timeline->CurrentTimeInternal(is_null));
+
+ EXPECT_FALSE(is_null);
+}
+
TEST_F(AnimationDocumentTimelineTest, PlaybackRateSlow) {
bool is_null;
@@ -240,6 +307,45 @@ TEST_F(AnimationDocumentTimelineTest, PlaybackRateFast) {
EXPECT_FALSE(is_null);
}
+TEST_F(AnimationDocumentTimelineTest, PlaybackRateFastWithOriginTime) {
+ bool is_null;
+
+ double origin_time_in_ms = -1000000.0;
+ timeline = DocumentTimeline::Create(document.Get(), origin_time_in_ms,
+ platform_timing);
+ timeline->ResetForTesting();
+
+ document->GetAnimationClock().UpdateTime(100);
+ EXPECT_EQ(-1000, timeline->ZeroTime());
+ EXPECT_EQ(1100, timeline->CurrentTimeInternal());
+ EXPECT_EQ(1100, timeline->CurrentTimeInternal(is_null));
+ EXPECT_FALSE(is_null);
+
+ timeline->SetPlaybackRate(2.0);
+ EXPECT_EQ(2.0, timeline->PlaybackRate());
+ EXPECT_EQ(-450, timeline->ZeroTime());
+ EXPECT_EQ(1100, timeline->CurrentTimeInternal());
+ EXPECT_EQ(1100, timeline->CurrentTimeInternal(is_null));
+
+ document->GetAnimationClock().UpdateTime(300);
+ EXPECT_EQ(-450, timeline->ZeroTime());
+ EXPECT_EQ(1500, timeline->CurrentTimeInternal());
+ EXPECT_EQ(1500, timeline->CurrentTimeInternal(is_null));
+
+ timeline->SetPlaybackRate(1.0);
+ EXPECT_EQ(1.0, timeline->PlaybackRate());
+ EXPECT_EQ(-1200, timeline->ZeroTime());
+ EXPECT_EQ(1500, timeline->CurrentTimeInternal());
+ EXPECT_EQ(1500, timeline->CurrentTimeInternal(is_null));
+
+ document->GetAnimationClock().UpdateTime(400);
+ EXPECT_EQ(-1200, timeline->ZeroTime());
+ EXPECT_EQ(1600, timeline->CurrentTimeInternal());
+ EXPECT_EQ(1600, timeline->CurrentTimeInternal(is_null));
+
+ EXPECT_FALSE(is_null);
+}
+
TEST_F(AnimationDocumentTimelineTest, PauseForTesting) {
float seek_time = 1;
timing.fill_mode = Timing::FillMode::FORWARDS;

Powered by Google App Engine
This is Rietveld 408576698