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

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

Issue 819953002: Mac: Update scrollbar size and input position during impl-overscroll (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Peure virtual Created 6 years 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
« no previous file with comments | « Source/web/WebViewImpl.cpp ('k') | public/platform/WebScrollbar.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/web/tests/WebInputEventConversionTest.cpp
diff --git a/Source/web/tests/WebInputEventConversionTest.cpp b/Source/web/tests/WebInputEventConversionTest.cpp
index fa506bcd4c0578ea5fc6d718c8d50c630f6b3c6f..8ee88877adbc4e721ed08fb971ab5a0f3ffab81c 100644
--- a/Source/web/tests/WebInputEventConversionTest.cpp
+++ b/Source/web/tests/WebInputEventConversionTest.cpp
@@ -729,6 +729,67 @@ TEST(WebInputEventConversionTest, PinchViewportOffset)
}
}
+TEST(WebInputEventConversionTest, ElasticOverscroll)
+{
+ const std::string baseURL("http://www.test4.com/");
+ const std::string fileName("fixed_layout.html");
+
+ URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(baseURL.c_str()), WebString::fromUTF8("fixed_layout.html"));
+ FrameTestHelpers::WebViewHelper webViewHelper;
+ WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(baseURL + fileName, true, 0, 0, setupVirtualViewportPinch);
+ int pageWidth = 640;
+ int pageHeight = 480;
+ webViewImpl->resize(WebSize(pageWidth, pageHeight));
+ webViewImpl->layout();
+
+ FrameView* view = toLocalFrame(webViewImpl->page()->mainFrame())->view();
+
+ FloatSize elasticOverscroll(10, -20);
+ view->setElasticOverscroll(elasticOverscroll);
+
+ // Just elastic overscroll.
+ {
+ WebMouseEvent webMouseEvent;
+ webMouseEvent.type = WebInputEvent::MouseMove;
+ webMouseEvent.x = 10;
+ webMouseEvent.y = 50;
+ webMouseEvent.windowX = 10;
+ webMouseEvent.windowY = 50;
+ webMouseEvent.globalX = 10;
+ webMouseEvent.globalY = 50;
+
+ PlatformMouseEventBuilder platformMouseBuilder(view, webMouseEvent);
+ EXPECT_EQ(webMouseEvent.x + elasticOverscroll.width(), platformMouseBuilder.position().x());
+ EXPECT_EQ(webMouseEvent.y + elasticOverscroll.height(), platformMouseBuilder.position().y());
+ EXPECT_EQ(webMouseEvent.globalX, platformMouseBuilder.globalPosition().x());
+ EXPECT_EQ(webMouseEvent.globalY, platformMouseBuilder.globalPosition().y());
+ }
+
+ // Elastic overscroll and pinch-zoom (this doesn't actually ever happen,
+ // but ensure that if it were to, the overscroll would be applied after the
+ // pinch-zoom).
+ float pageScale = 2;
+ webViewImpl->setPageScaleFactor(pageScale);
+ IntPoint pinchOffset(35, 60);
+ webViewImpl->page()->frameHost().pinchViewport().setLocation(pinchOffset);
+ {
+ WebMouseEvent webMouseEvent;
+ webMouseEvent.type = WebInputEvent::MouseMove;
+ webMouseEvent.x = 10;
+ webMouseEvent.y = 10;
+ webMouseEvent.windowX = 10;
+ webMouseEvent.windowY = 10;
+ webMouseEvent.globalX = 10;
+ webMouseEvent.globalY = 10;
+
+ PlatformMouseEventBuilder platformMouseBuilder(view, webMouseEvent);
+ EXPECT_EQ(webMouseEvent.x / pageScale + pinchOffset.x() + elasticOverscroll.width(), platformMouseBuilder.position().x());
+ EXPECT_EQ(webMouseEvent.y / pageScale + pinchOffset.y() + elasticOverscroll.height(), platformMouseBuilder.position().y());
+ EXPECT_EQ(webMouseEvent.globalX, platformMouseBuilder.globalPosition().x());
+ EXPECT_EQ(webMouseEvent.globalY, platformMouseBuilder.globalPosition().y());
+ }
+}
+
TEST(WebInputEventConversionTest, WebMouseWheelEventBuilder)
{
const std::string baseURL("http://www.test5.com/");
@@ -796,4 +857,5 @@ TEST(WebInputEventConversionTest, PlatformWheelEventBuilder)
EXPECT_TRUE(platformWheelBuilder.canScroll());
}
}
+
} // anonymous namespace
« no previous file with comments | « Source/web/WebViewImpl.cpp ('k') | public/platform/WebScrollbar.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698