| 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;
|
|
|