Index: Source/web/tests/WebFrameTest.cpp |
diff --git a/Source/web/tests/WebFrameTest.cpp b/Source/web/tests/WebFrameTest.cpp |
index 8ee7b11a0a43541080c98ce9f35233f410ca1262..d2098db868a7067546a13fe64ea18f754d98bccb 100644 |
--- a/Source/web/tests/WebFrameTest.cpp |
+++ b/Source/web/tests/WebFrameTest.cpp |
@@ -7273,4 +7273,55 @@ TEST_F(WebFrameTest, CrossDomainAccessErrorsUseCallingWindow) |
popupWebViewHelper.reset(); |
} |
+TEST_F(WebFrameTest, OverscrollGlowAnimation) |
+{ |
+ UseMockScrollbarSettings mockScrollbarSettings; |
+ registerMockedHttpURLLoad("mainthread_scrolling.html"); |
+ |
+ FixedLayoutTestWebViewClient client; |
+ client.m_screenInfo.deviceScaleFactor = 1; |
+ int viewportWidth = 640; |
+ int viewportHeight = 480; |
+ |
+ FrameTestHelpers::WebViewHelper webViewHelper; |
+ |
+ webViewHelper.initializeAndLoad(m_baseURL + "mainthread_scrolling.html", true, 0, &client, configureAndroid); |
+ // set view height to zero so that if the height of the view is not |
+ // successfully updated during later resizes touch events will fail |
+ // (as in not hit content included in the view) |
+ webViewHelper.webView()->resize(WebSize(viewportWidth, 0)); |
+ webViewHelper.webView()->layout(); |
+ |
majidvp
2015/05/07 16:35:30
Why do you need this resize here?
|
+ webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); |
+ webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
+ |
majidvp
2015/05/07 16:35:30
Again resize does not make sense to me.
|
+ IntPoint hitPoint = IntPoint(5, 5); |
+ |
+ PlatformGestureEvent gestureEventSB(PlatformEvent::Type::GestureScrollBegin, hitPoint, hitPoint, IntSize(0, 0), 0, false, false, false, false); |
+ webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().handleGestureEvent(gestureEventSB); |
majidvp
2015/05/07 16:35:30
I think it is better to have webView handle the ge
|
+ |
+ PlatformGestureEvent gestureEventSU1(PlatformEvent::Type::GestureScrollUpdate, hitPoint, hitPoint, IntSize(0, 0), 0, false, false, false, false); |
+ gestureEventSU1.setScrollGestureData(0, -13, 0, 0, false, false); |
+ webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().handleGestureEvent(gestureEventSU1); |
+ 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()); |
+ |
+ PlatformGestureEvent gestureEventSU2(PlatformEvent::Type::GestureScrollUpdate, hitPoint, hitPoint, IntSize(0, 0), 0, false, false, false, false); |
+ gestureEventSU2.setScrollGestureData(0, -13, 0, 0, false, false); |
+ webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().handleGestureEvent(gestureEventSU2); |
+ 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()); |
majidvp
2015/05/07 16:35:30
This tests the simple case where we have overscrol
|
+ |
+ PlatformGestureEvent gestureEventSE(PlatformEvent::Type::GestureScrollEnd, hitPoint, hitPoint, IntSize(0, 0), 0, false, false, false, false); |
+ webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().handleGestureEvent(gestureEventSE); |
+} |
+ |
} // namespace blink |