Chromium Code Reviews| Index: third_party/WebKit/Source/web/tests/WebFrameTest.cpp |
| diff --git a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp |
| index d123a03ceffb17247de312433aaba890b5e7b4b9..1525a93661764deac91d9914bb81e38c4089f344 100644 |
| --- a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp |
| +++ b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp |
| @@ -10833,7 +10833,7 @@ TEST_F(WebFrameTest, MouseOverDifferntNodeClearsTooltip) { |
| } |
| // Makes sure that mouse hover over an overlay scrollbar doesn't activate |
| -// elements below unless the scrollbar is faded out. |
| +// elements below(not the scrollbar's parent) unless the scrollbar is faded out. |
|
bokan
2017/02/02 23:29:26
I'd change this to "except the Element that owns t
|
| TEST_F(WebFrameTest, MouseOverLinkAndOverlayScrollbar) { |
| FrameTestHelpers::WebViewHelper webViewHelper; |
| webViewHelper.initialize(true, nullptr, nullptr, nullptr, |
| @@ -10995,6 +10995,61 @@ TEST_F(WebFrameTest, MouseOverCustomScrollbar) { |
| EXPECT_EQ(hitTestResult.scrollbar()->hoveredPart(), ScrollbarPart::ThumbPart); |
| } |
| +// Makes sure that mouse hover over a scrollbar also hover the element owns the |
| +// scrollbar. |
| +TEST_F(WebFrameTest, MouseOverScrollbarAndParentElement) { |
| + registerMockedHttpURLLoad("scrollbar-and-element-hover.html"); |
| + FrameTestHelpers::WebViewHelper webViewHelper; |
| + WebViewImpl* webView = webViewHelper.initializeAndLoad( |
| + m_baseURL + "scrollbar-and-element-hover.html"); |
| + |
| + webViewHelper.resize(WebSize(200, 200)); |
| + |
| + webView->updateAllLifecyclePhases(); |
| + |
| + Document* document = toLocalFrame(webView->page()->mainFrame())->document(); |
| + |
| + Element* scrollbarDiv = document->getElementById("scrollbar"); |
| + EXPECT_TRUE(scrollbarDiv); |
| + |
| + // Ensure hittest only has DIV. |
| + HitTestResult hitTestResult = webView->coreHitTestResultAt(WebPoint(1, 1)); |
| + |
| + EXPECT_TRUE(hitTestResult.innerElement()); |
| + EXPECT_FALSE(hitTestResult.scrollbar()); |
| + |
| + // Mouse over DIV. |
| + WebMouseEvent mouseMoveOverDiv( |
| + WebInputEvent::MouseMove, WebFloatPoint(1, 1), WebFloatPoint(1, 1), |
| + WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, |
| + TimeTicks::Now().InSeconds()); |
| + mouseMoveOverDiv.setFrameScale(1); |
| + document->frame()->eventHandler().handleMouseMoveEvent( |
| + mouseMoveOverDiv, Vector<WebMouseEvent>()); |
| + |
| + // DIV :hover. |
| + EXPECT_EQ(document->hoverNode(), scrollbarDiv); |
| + |
| + // Ensure hittest has DIV and scrollbar. |
| + hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 5)); |
| + |
| + EXPECT_TRUE(hitTestResult.innerElement()); |
| + EXPECT_TRUE(hitTestResult.scrollbar()); |
| + EXPECT_FALSE(hitTestResult.scrollbar()->isCustomScrollbar()); |
| + |
| + // Mouse over scrollbar. |
| + WebMouseEvent mouseMoveOverDivAndScrollbar( |
| + WebInputEvent::MouseMove, WebFloatPoint(175, 5), WebFloatPoint(175, 5), |
| + WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, |
| + TimeTicks::Now().InSeconds()); |
| + mouseMoveOverDivAndScrollbar.setFrameScale(1); |
| + document->frame()->eventHandler().handleMouseMoveEvent( |
| + mouseMoveOverDivAndScrollbar, Vector<WebMouseEvent>()); |
| + |
| + // Not change the DIV :hover. |
| + EXPECT_EQ(document->hoverNode(), scrollbarDiv); |
| +} |
|
bokan
2017/02/02 23:29:26
I think it'll work, but please add to this test ca
|
| + |
| TEST_F(WebFrameTest, MouseReleaseUpdatesScrollbarHoveredPart) { |
| registerMockedHttpURLLoad("custom-scrollbar-hover.html"); |
| FrameTestHelpers::WebViewHelper webViewHelper; |