| Index: third_party/WebKit/Source/platform/scroll/ScrollAnimatorTest.cpp
|
| diff --git a/third_party/WebKit/Source/platform/scroll/ScrollAnimatorTest.cpp b/third_party/WebKit/Source/platform/scroll/ScrollAnimatorTest.cpp
|
| index 679f5a6e598f7cd7b292fba1d710d8fb06348147..ae0d60ce79fd39a3fe4e0e8ddda83041bb842157 100644
|
| --- a/third_party/WebKit/Source/platform/scroll/ScrollAnimatorTest.cpp
|
| +++ b/third_party/WebKit/Source/platform/scroll/ScrollAnimatorTest.cpp
|
| @@ -519,4 +519,33 @@ TEST(ScrollAnimatorTest, CancellingCompositorAnimation)
|
| ThreadHeap::collectAllGarbage();
|
| }
|
|
|
| +// This test verifies that ImplOnlyAnimationUpdates get cleared once they're
|
| +// pushed to compositor animation host.
|
| +TEST(ScrollAnimatorTest, ImplOnlyAnimationUpdatesCleared)
|
| +{
|
| + MockScrollableArea* scrollableArea = MockScrollableArea::create(true);
|
| + TestScrollAnimator* scrollAnimator = new TestScrollAnimator(scrollableArea, getMockedTime);
|
| +
|
| + EXPECT_CALL(*scrollableArea, registerForAnimation()).Times(2);
|
| +
|
| + EXPECT_EQ(scrollAnimator->m_runState, ScrollAnimatorCompositorCoordinator::RunState::Idle);
|
| + EXPECT_FALSE(scrollAnimator->hasAnimationThatRequiresService());
|
| + EXPECT_TRUE(scrollAnimator->m_implOnlyAnimationUpdates.empty());
|
| +
|
| + scrollAnimator->updateImplOnlyAnimationWithAdjustment(FloatSize(100.f, 100.f));
|
| + scrollAnimator->updateImplOnlyAnimationWithAdjustment(FloatSize(10.f, -10.f));
|
| +
|
| + EXPECT_TRUE(scrollAnimator->hasAnimationThatRequiresService());
|
| + EXPECT_EQ(2U, scrollAnimator->m_implOnlyAnimationUpdates.size());
|
| +
|
| + scrollAnimator->updateCompositorAnimations();
|
| +
|
| + EXPECT_EQ(scrollAnimator->m_runState, ScrollAnimatorCompositorCoordinator::RunState::Idle);
|
| + EXPECT_FALSE(scrollAnimator->hasAnimationThatRequiresService());
|
| + EXPECT_TRUE(scrollAnimator->m_implOnlyAnimationUpdates.empty());
|
| +
|
| + // Forced GC in order to finalize objects depending on the mock object.
|
| + ThreadHeap::collectAllGarbage();
|
| +}
|
| +
|
| } // namespace blink
|
|
|