Chromium Code Reviews| Index: Source/web/tests/WebFrameTest.cpp |
| diff --git a/Source/web/tests/WebFrameTest.cpp b/Source/web/tests/WebFrameTest.cpp |
| index 4351904cb1b84dd03fb324d86810f34742c2a423..5d38467c054f4323f158872a3bb95700540a5a89 100644 |
| --- a/Source/web/tests/WebFrameTest.cpp |
| +++ b/Source/web/tests/WebFrameTest.cpp |
| @@ -237,6 +237,34 @@ protected: |
| return frame->nodeImage(*element); |
| } |
| + WebGestureEvent generateEvent(WebInputEvent::Type type, int deltaX = 0, int deltaY = 0) |
| + { |
| + WebGestureEvent event; |
| + event.type = type; |
| + event.x = 100; |
| + event.y = 100; |
| + if (type == WebInputEvent::GestureScrollUpdate) { |
| + event.data.scrollUpdate.deltaX = deltaX; |
| + event.data.scrollUpdate.deltaY = deltaY; |
| + } |
| + return event; |
| + } |
| + |
| + void ScrollBegin(FrameTestHelpers::WebViewHelper* webViewHelper) |
| + { |
| + webViewHelper->webViewImpl()->handleInputEvent(generateEvent(WebInputEvent::GestureScrollBegin)); |
| + } |
| + |
| + void ScrollUpdate(FrameTestHelpers::WebViewHelper* webViewHelper, float deltaX, float deltaY) |
| + { |
| + webViewHelper->webViewImpl()->handleInputEvent(generateEvent(WebInputEvent::GestureScrollUpdate, deltaX, deltaY)); |
| + } |
| + |
| + void ScrollEnd(FrameTestHelpers::WebViewHelper* webViewHelper) |
| + { |
| + webViewHelper->webViewImpl()->handleInputEvent(generateEvent(WebInputEvent::GestureScrollEnd)); |
| + } |
| + |
| std::string m_baseURL; |
| std::string m_notBaseURL; |
| std::string m_chromeURL; |
| @@ -6215,6 +6243,102 @@ TEST_F(WebFrameTest, FullscreenLayerNonScrollable) |
| ASSERT_TRUE(webScrollLayer->userScrollableVertical()); |
| } |
| +TEST_F(WebFrameTest, OverscrollGlowAnimation) |
| +{ |
| + FakeCompositingWebViewClient client; |
| + registerMockedHttpURLLoad("mainthread-scrolling.html"); |
| + FrameTestHelpers::WebViewHelper webViewHelper; |
| + WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "mainthread-scrolling.html", true, 0, &client, configureAndroid); |
| + webViewImpl->settings()->setThreadedScrollingEnabled(false); |
|
majidvp
2015/05/14 21:08:39
Do you really need this?
MuVen
2015/05/26 09:58:35
Not requried.
|
| + webViewImpl->layout(); |
| + |
| + ScrollBegin(&webViewHelper); |
| + |
| + ScrollUpdate(&webViewHelper, 0, -13); |
| + FloatSize unUsedDelta = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().unusedDeltaForTesting(); |
| + FloatSize accumulatedRootOverscroll = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().accumulatedRootOverscrollForTesting(); |
| + EXPECT_EQ(0, unUsedDelta.width()); |
| + EXPECT_EQ(13, unUsedDelta.height()); |
| + EXPECT_EQ(0, accumulatedRootOverscroll.width()); |
| + EXPECT_EQ(13, accumulatedRootOverscroll.height()); |
| + |
| + ScrollUpdate(&webViewHelper, 0, -13); |
| + unUsedDelta = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().unusedDeltaForTesting(); |
| + accumulatedRootOverscroll = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().accumulatedRootOverscrollForTesting(); |
| + EXPECT_EQ(0, unUsedDelta.width()); |
| + EXPECT_EQ(13, unUsedDelta.height()); |
| + EXPECT_EQ(0, accumulatedRootOverscroll.width()); |
| + EXPECT_EQ(26, accumulatedRootOverscroll.height()); |
| + |
| + ScrollUpdate(&webViewHelper, -20, -13); |
| + unUsedDelta = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().unusedDeltaForTesting(); |
| + accumulatedRootOverscroll = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().accumulatedRootOverscrollForTesting(); |
| + EXPECT_EQ(20, unUsedDelta.width()); |
| + EXPECT_EQ(13, unUsedDelta.height()); |
| + EXPECT_EQ(20, accumulatedRootOverscroll.width()); |
| + EXPECT_EQ(39, accumulatedRootOverscroll.height()); |
| + |
| + ScrollEnd(&webViewHelper); |
| + unUsedDelta = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().unusedDeltaForTesting(); |
| + accumulatedRootOverscroll = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().accumulatedRootOverscrollForTesting(); |
| + EXPECT_EQ(0, unUsedDelta.width()); |
| + EXPECT_EQ(0, unUsedDelta.height()); |
| + EXPECT_EQ(0, accumulatedRootOverscroll.width()); |
| + EXPECT_EQ(0, accumulatedRootOverscroll.height()); |
| +} |
| + |
| +TEST_F(WebFrameTest, OverscrollGlowAnimationForInnerScroll) |
| +{ |
| + FakeCompositingWebViewClient client; |
| + registerMockedHttpURLLoad("mainthread-inner-overscroll.html"); |
| + FrameTestHelpers::WebViewHelper webViewHelper; |
| + WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "mainthread-inner-overscroll.html", true, 0, &client, configureAndroid); |
| + webViewImpl->settings()->setThreadedScrollingEnabled(false); |
| + webViewImpl->layout(); |
| + |
| + ScrollBegin(&webViewHelper); |
| + |
| + ScrollUpdate(&webViewHelper, 0, 13); |
| + FloatSize unUsedDelta = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().unusedDeltaForTesting(); |
| + FloatSize accumulatedRootOverscroll = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().accumulatedRootOverscrollForTesting(); |
| + EXPECT_EQ(0, unUsedDelta.width()); |
| + EXPECT_EQ(-13, unUsedDelta.height()); |
| + EXPECT_EQ(0, accumulatedRootOverscroll.width()); |
| + EXPECT_EQ(-13, accumulatedRootOverscroll.height()); |
| + |
| + ScrollUpdate(&webViewHelper, 0, 13); |
| + unUsedDelta = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().unusedDeltaForTesting(); |
| + accumulatedRootOverscroll = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().accumulatedRootOverscrollForTesting(); |
| + EXPECT_EQ(0, unUsedDelta.width()); |
| + EXPECT_EQ(-13, unUsedDelta.height()); |
| + EXPECT_EQ(0, accumulatedRootOverscroll.width()); |
| + EXPECT_EQ(-26, accumulatedRootOverscroll.height()); |
| + |
| + ScrollUpdate(&webViewHelper, 13, 13); |
| + unUsedDelta = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().unusedDeltaForTesting(); |
| + accumulatedRootOverscroll = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().accumulatedRootOverscrollForTesting(); |
| + EXPECT_EQ(-13, unUsedDelta.width()); |
| + EXPECT_EQ(-13, unUsedDelta.height()); |
| + EXPECT_EQ(-13, accumulatedRootOverscroll.width()); |
| + EXPECT_EQ(-39, accumulatedRootOverscroll.height()); |
| + |
| + ScrollUpdate(&webViewHelper, 13, 0); |
| + unUsedDelta = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().unusedDeltaForTesting(); |
| + accumulatedRootOverscroll = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().accumulatedRootOverscrollForTesting(); |
| + EXPECT_EQ(-13, unUsedDelta.width()); |
| + EXPECT_EQ(0, unUsedDelta.height()); |
| + EXPECT_EQ(-26, accumulatedRootOverscroll.width()); |
| + EXPECT_EQ(-39, accumulatedRootOverscroll.height()); |
| + |
| + ScrollEnd(&webViewHelper); |
| + unUsedDelta = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().unusedDeltaForTesting(); |
| + accumulatedRootOverscroll = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().accumulatedRootOverscrollForTesting(); |
| + EXPECT_EQ(0, unUsedDelta.width()); |
| + EXPECT_EQ(0, unUsedDelta.height()); |
| + EXPECT_EQ(0, accumulatedRootOverscroll.width()); |
| + EXPECT_EQ(0, accumulatedRootOverscroll.height()); |
| +} |
| + |
| TEST_F(WebFrameTest, FullscreenMainFrame) |
| { |
| FakeCompositingWebViewClient client; |