Chromium Code Reviews| Index: Source/web/tests/WebInputEventConversionTest.cpp |
| diff --git a/Source/web/tests/WebInputEventConversionTest.cpp b/Source/web/tests/WebInputEventConversionTest.cpp |
| index fa506bcd4c0578ea5fc6d718c8d50c630f6b3c6f..8ec2f745aac50b02ba095f0c0887ce0f92af689e 100644 |
| --- a/Source/web/tests/WebInputEventConversionTest.cpp |
| +++ b/Source/web/tests/WebInputEventConversionTest.cpp |
| @@ -729,6 +729,64 @@ 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(); |
| + view->setElasticOverscroll(FloatSize(10, -20)); |
|
Ken Russell (switch to Gerrit)
2014/12/22 23:46:08
Please factor the FloatSize into a separate variab
ccameron
2014/12/22 23:57:23
Done.
ccameron
2014/12/22 23:57:23
Done.
|
| + |
| + // 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(20, platformMouseBuilder.position().x()); |
| + EXPECT_EQ(30, platformMouseBuilder.position().y()); |
|
Ken Russell (switch to Gerrit)
2014/12/22 23:46:08
Would be better if these constants referred to the
ccameron
2014/12/22 23:57:23
Done.
|
| + EXPECT_EQ(10, platformMouseBuilder.globalPosition().x()); |
| + EXPECT_EQ(50, 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). |
| + webViewImpl->setPageScaleFactor(2); |
| + 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(5 + pinchOffset.x() + 10, platformMouseBuilder.position().x()); |
| + EXPECT_EQ(5 + pinchOffset.y() - 20, platformMouseBuilder.position().y()); |
|
Ken Russell (switch to Gerrit)
2014/12/22 23:46:08
In particular, it would be better if the "+10" and
|
| + EXPECT_EQ(10, platformMouseBuilder.globalPosition().x()); |
| + EXPECT_EQ(10, platformMouseBuilder.globalPosition().y()); |
| + } |
| +} |
| + |
| TEST(WebInputEventConversionTest, WebMouseWheelEventBuilder) |
| { |
| const std::string baseURL("http://www.test5.com/"); |
| @@ -796,4 +854,5 @@ TEST(WebInputEventConversionTest, PlatformWheelEventBuilder) |
| EXPECT_TRUE(platformWheelBuilder.canScroll()); |
| } |
| } |
| + |
| } // anonymous namespace |