Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2100)

Unified Diff: Source/web/tests/WebFrameTest.cpp

Issue 1056983004: OverscrollGlow for mainThread-{BLINK CHANGES} (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: modified logic/tests Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698