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 e0f29e0435a4f515670f4dd4677c72e592abf204..976a456e9e33db9bf47cdd81cfa1c5b35f723157 100644 |
--- a/third_party/WebKit/Source/platform/scroll/ScrollAnimatorTest.cpp |
+++ b/third_party/WebKit/Source/platform/scroll/ScrollAnimatorTest.cpp |
@@ -88,6 +88,16 @@ public: |
animator = scrollAnimator; |
} |
+ bool shouldScrollOnMainThread() const override |
+ { |
+ return m_scrollOnMainThread; |
+ } |
+ |
+ void setScrollOnMainThread(bool scrollOnMainThread) |
+ { |
+ m_scrollOnMainThread = scrollOnMainThread; |
+ } |
+ |
DoublePoint scrollPositionDouble() const override |
{ |
if (animator) |
@@ -114,6 +124,7 @@ private: |
: m_scrollAnimatorEnabled(scrollAnimatorEnabled) { } |
bool m_scrollAnimatorEnabled; |
+ bool m_scrollOnMainThread = false; |
Member<ScrollAnimator> animator; |
}; |
@@ -157,6 +168,7 @@ static void reset(ScrollAnimator& scrollAnimator) |
TEST(ScrollAnimatorTest, MainThreadStates) |
{ |
MockScrollableArea* scrollableArea = MockScrollableArea::create(true); |
+ scrollableArea->setScrollOnMainThread(true); |
ScrollAnimator* scrollAnimator = new ScrollAnimator(scrollableArea, getMockedTime); |
EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1)) |
@@ -164,7 +176,8 @@ TEST(ScrollAnimatorTest, MainThreadStates) |
EXPECT_CALL(*scrollableArea, maximumScrollPosition()).Times(AtLeast(1)) |
.WillRepeatedly(Return(IntPoint(1000, 1000))); |
EXPECT_CALL(*scrollableArea, setScrollOffset(_, _)).Times(2); |
- EXPECT_CALL(*scrollableArea, registerForAnimation()).Times(2); |
+ // Once from userScroll. |
+ EXPECT_CALL(*scrollableArea, registerForAnimation()).Times(1); |
EXPECT_CALL(*scrollableArea, scheduleAnimation()).Times(AtLeast(1)) |
.WillRepeatedly(Return(true)); |
@@ -176,7 +189,7 @@ TEST(ScrollAnimatorTest, MainThreadStates) |
// WaitingToSendToCompositor |
scrollAnimator->userScroll(ScrollByLine, FloatSize(10, 0)); |
EXPECT_EQ(scrollAnimator->m_runState, |
- ScrollAnimatorCompositorCoordinator::RunState::WaitingToSendToCompositor); |
+ ScrollAnimatorCompositorCoordinator::RunState::RunningOnMainThread); |
// RunningOnMainThread |
gMockedTime += 0.05; |
@@ -199,6 +212,9 @@ TEST(ScrollAnimatorTest, MainThreadStates) |
ScrollAnimatorCompositorCoordinator::RunState::Idle); |
reset(*scrollAnimator); |
+ |
+ // Forced GC in order to finalize objects depending on the mock object. |
+ ThreadHeap::collectAllGarbage(); |
} |
TEST(ScrollAnimatorTest, MainThreadEnabled) |