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

Side by Side Diff: third_party/WebKit/Source/web/tests/WebFrameTest.cpp

Issue 2797173002: Document::hoverNode() is always an Element. (Closed)
Patch Set: Documentation hovered node -> hovered element. Created 3 years, 8 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 unified diff | Download patch
« no previous file with comments | « third_party/WebKit/Source/core/input/EventHandler.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 10788 matching lines...) Expand 10 before | Expand all | Expand 10 after
10799 WebMouseEvent mouseMoveOverLinkEvent( 10799 WebMouseEvent mouseMoveOverLinkEvent(
10800 WebInputEvent::MouseMove, 10800 WebInputEvent::MouseMove,
10801 WebFloatPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5), 10801 WebFloatPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5),
10802 WebFloatPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5), 10802 WebFloatPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5),
10803 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, 10803 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
10804 TimeTicks::Now().InSeconds()); 10804 TimeTicks::Now().InSeconds());
10805 mouseMoveOverLinkEvent.setFrameScale(1); 10805 mouseMoveOverLinkEvent.setFrameScale(1);
10806 document->frame()->eventHandler().handleMouseMoveEvent( 10806 document->frame()->eventHandler().handleMouseMoveEvent(
10807 mouseMoveOverLinkEvent, Vector<WebMouseEvent>()); 10807 mouseMoveOverLinkEvent, Vector<WebMouseEvent>());
10808 10808
10809 EXPECT_EQ(document->hoverNode(), 10809 EXPECT_EQ(document->hoverElement(),
10810 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); 10810 document->frame()->chromeClient().lastSetTooltipNodeForTesting());
10811 EXPECT_EQ(div1Tag, 10811 EXPECT_EQ(div1Tag,
10812 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); 10812 document->frame()->chromeClient().lastSetTooltipNodeForTesting());
10813 10813
10814 Element* div2Tag = document->getElementById("div2"); 10814 Element* div2Tag = document->getElementById("div2");
10815 10815
10816 WebMouseEvent mouseMoveEvent( 10816 WebMouseEvent mouseMoveEvent(
10817 WebInputEvent::MouseMove, 10817 WebInputEvent::MouseMove,
10818 WebFloatPoint(div2Tag->offsetLeft() + 5, div2Tag->offsetTop() + 5), 10818 WebFloatPoint(div2Tag->offsetLeft() + 5, div2Tag->offsetTop() + 5),
10819 WebFloatPoint(div2Tag->offsetLeft() + 5, div2Tag->offsetTop() + 5), 10819 WebFloatPoint(div2Tag->offsetLeft() + 5, div2Tag->offsetTop() + 5),
10820 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, 10820 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
10821 TimeTicks::Now().InSeconds()); 10821 TimeTicks::Now().InSeconds());
10822 mouseMoveEvent.setFrameScale(1); 10822 mouseMoveEvent.setFrameScale(1);
10823 document->frame()->eventHandler().handleMouseMoveEvent( 10823 document->frame()->eventHandler().handleMouseMoveEvent(
10824 mouseMoveEvent, Vector<WebMouseEvent>()); 10824 mouseMoveEvent, Vector<WebMouseEvent>());
10825 10825
10826 EXPECT_EQ(document->hoverNode(), 10826 EXPECT_EQ(document->hoverElement(),
10827 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); 10827 document->frame()->chromeClient().lastSetTooltipNodeForTesting());
10828 EXPECT_EQ(div2Tag, 10828 EXPECT_EQ(div2Tag,
10829 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); 10829 document->frame()->chromeClient().lastSetTooltipNodeForTesting());
10830 } 10830 }
10831 10831
10832 // Makes sure that mouse hover over an overlay scrollbar doesn't activate 10832 // Makes sure that mouse hover over an overlay scrollbar doesn't activate
10833 // elements below(except the Element that owns the scrollbar) unless the 10833 // elements below(except the Element that owns the scrollbar) unless the
10834 // scrollbar is faded out. 10834 // scrollbar is faded out.
10835 TEST_F(WebFrameTest, MouseOverLinkAndOverlayScrollbar) { 10835 TEST_F(WebFrameTest, MouseOverLinkAndOverlayScrollbar) {
10836 FrameTestHelpers::WebViewHelper webViewHelper; 10836 FrameTestHelpers::WebViewHelper webViewHelper;
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
10894 10894
10895 WebMouseEvent mousePressEvent( 10895 WebMouseEvent mousePressEvent(
10896 WebInputEvent::MouseDown, WebFloatPoint(18, aTag->offsetTop()), 10896 WebInputEvent::MouseDown, WebFloatPoint(18, aTag->offsetTop()),
10897 WebFloatPoint(18, aTag->offsetTop()), WebPointerProperties::Button::Left, 10897 WebFloatPoint(18, aTag->offsetTop()), WebPointerProperties::Button::Left,
10898 0, WebInputEvent::Modifiers::LeftButtonDown, 10898 0, WebInputEvent::Modifiers::LeftButtonDown,
10899 TimeTicks::Now().InSeconds()); 10899 TimeTicks::Now().InSeconds());
10900 mousePressEvent.setFrameScale(1); 10900 mousePressEvent.setFrameScale(1);
10901 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent); 10901 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent);
10902 10902
10903 EXPECT_FALSE(document->activeHoverElement()); 10903 EXPECT_FALSE(document->activeHoverElement());
10904 EXPECT_FALSE(document->hoverNode()); 10904 EXPECT_FALSE(document->hoverElement());
10905 10905
10906 WebMouseEvent mouseReleaseEvent( 10906 WebMouseEvent mouseReleaseEvent(
10907 WebInputEvent::MouseUp, WebFloatPoint(18, aTag->offsetTop()), 10907 WebInputEvent::MouseUp, WebFloatPoint(18, aTag->offsetTop()),
10908 WebFloatPoint(18, aTag->offsetTop()), WebPointerProperties::Button::Left, 10908 WebFloatPoint(18, aTag->offsetTop()), WebPointerProperties::Button::Left,
10909 0, WebInputEvent::Modifiers::LeftButtonDown, 10909 0, WebInputEvent::Modifiers::LeftButtonDown,
10910 TimeTicks::Now().InSeconds()); 10910 TimeTicks::Now().InSeconds());
10911 mouseReleaseEvent.setFrameScale(1); 10911 mouseReleaseEvent.setFrameScale(1);
10912 document->frame()->eventHandler().handleMouseReleaseEvent(mouseReleaseEvent); 10912 document->frame()->eventHandler().handleMouseReleaseEvent(mouseReleaseEvent);
10913 10913
10914 // Mouse over disabled overlay scrollbar. Mouse cursor should be hand and has 10914 // Mouse over disabled overlay scrollbar. Mouse cursor should be hand and has
(...skipping 10 matching lines...) Expand all
10925 document->frame()->eventHandler().handleMouseMoveEvent( 10925 document->frame()->eventHandler().handleMouseMoveEvent(
10926 mouseMoveEvent, Vector<WebMouseEvent>()); 10926 mouseMoveEvent, Vector<WebMouseEvent>());
10927 10927
10928 EXPECT_EQ( 10928 EXPECT_EQ(
10929 Cursor::Type::Hand, 10929 Cursor::Type::Hand,
10930 document->frame()->chromeClient().lastSetCursorForTesting().getType()); 10930 document->frame()->chromeClient().lastSetCursorForTesting().getType());
10931 10931
10932 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent); 10932 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent);
10933 10933
10934 EXPECT_TRUE(document->activeHoverElement()); 10934 EXPECT_TRUE(document->activeHoverElement());
10935 EXPECT_TRUE(document->hoverNode()); 10935 EXPECT_TRUE(document->hoverElement());
10936 10936
10937 document->frame()->eventHandler().handleMouseReleaseEvent(mouseReleaseEvent); 10937 document->frame()->eventHandler().handleMouseReleaseEvent(mouseReleaseEvent);
10938 } 10938 }
10939 10939
10940 // Makes sure that mouse hover over an custom scrollbar doesn't change the 10940 // Makes sure that mouse hover over an custom scrollbar doesn't change the
10941 // activate elements. 10941 // activate elements.
10942 TEST_F(WebFrameTest, MouseOverCustomScrollbar) { 10942 TEST_F(WebFrameTest, MouseOverCustomScrollbar) {
10943 registerMockedHttpURLLoad("custom-scrollbar-hover.html"); 10943 registerMockedHttpURLLoad("custom-scrollbar-hover.html");
10944 FrameTestHelpers::WebViewHelper webViewHelper; 10944 FrameTestHelpers::WebViewHelper webViewHelper;
10945 WebViewImpl* webView = webViewHelper.initializeAndLoad( 10945 WebViewImpl* webView = webViewHelper.initializeAndLoad(
(...skipping 17 matching lines...) Expand all
10963 // Mouse over DIV 10963 // Mouse over DIV
10964 WebMouseEvent mouseMoveOverDiv( 10964 WebMouseEvent mouseMoveOverDiv(
10965 WebInputEvent::MouseMove, WebFloatPoint(1, 1), WebFloatPoint(1, 1), 10965 WebInputEvent::MouseMove, WebFloatPoint(1, 1), WebFloatPoint(1, 1),
10966 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, 10966 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
10967 TimeTicks::Now().InSeconds()); 10967 TimeTicks::Now().InSeconds());
10968 mouseMoveOverDiv.setFrameScale(1); 10968 mouseMoveOverDiv.setFrameScale(1);
10969 document->frame()->eventHandler().handleMouseMoveEvent( 10969 document->frame()->eventHandler().handleMouseMoveEvent(
10970 mouseMoveOverDiv, Vector<WebMouseEvent>()); 10970 mouseMoveOverDiv, Vector<WebMouseEvent>());
10971 10971
10972 // DIV :hover 10972 // DIV :hover
10973 EXPECT_EQ(document->hoverNode(), scrollbarDiv); 10973 EXPECT_EQ(document->hoverElement(), scrollbarDiv);
10974 10974
10975 // Ensure hittest has DIV and scrollbar 10975 // Ensure hittest has DIV and scrollbar
10976 hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 1)); 10976 hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 1));
10977 10977
10978 EXPECT_TRUE(hitTestResult.innerElement()); 10978 EXPECT_TRUE(hitTestResult.innerElement());
10979 EXPECT_TRUE(hitTestResult.scrollbar()); 10979 EXPECT_TRUE(hitTestResult.scrollbar());
10980 EXPECT_TRUE(hitTestResult.scrollbar()->isCustomScrollbar()); 10980 EXPECT_TRUE(hitTestResult.scrollbar()->isCustomScrollbar());
10981 10981
10982 // Mouse over scrollbar 10982 // Mouse over scrollbar
10983 WebMouseEvent mouseMoveOverDivAndScrollbar( 10983 WebMouseEvent mouseMoveOverDivAndScrollbar(
10984 WebInputEvent::MouseMove, WebFloatPoint(175, 1), WebFloatPoint(175, 1), 10984 WebInputEvent::MouseMove, WebFloatPoint(175, 1), WebFloatPoint(175, 1),
10985 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, 10985 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
10986 TimeTicks::Now().InSeconds()); 10986 TimeTicks::Now().InSeconds());
10987 mouseMoveOverDivAndScrollbar.setFrameScale(1); 10987 mouseMoveOverDivAndScrollbar.setFrameScale(1);
10988 document->frame()->eventHandler().handleMouseMoveEvent( 10988 document->frame()->eventHandler().handleMouseMoveEvent(
10989 mouseMoveOverDivAndScrollbar, Vector<WebMouseEvent>()); 10989 mouseMoveOverDivAndScrollbar, Vector<WebMouseEvent>());
10990 10990
10991 // Custom not change the DIV :hover 10991 // Custom not change the DIV :hover
10992 EXPECT_EQ(document->hoverNode(), scrollbarDiv); 10992 EXPECT_EQ(document->hoverElement(), scrollbarDiv);
10993 EXPECT_EQ(hitTestResult.scrollbar()->hoveredPart(), ScrollbarPart::ThumbPart); 10993 EXPECT_EQ(hitTestResult.scrollbar()->hoveredPart(), ScrollbarPart::ThumbPart);
10994 } 10994 }
10995 10995
10996 // Makes sure that mouse hover over an overlay scrollbar doesn't hover iframe 10996 // Makes sure that mouse hover over an overlay scrollbar doesn't hover iframe
10997 // below. 10997 // below.
10998 TEST_F(WebFrameTest, MouseOverScrollbarAndIFrame) { 10998 TEST_F(WebFrameTest, MouseOverScrollbarAndIFrame) {
10999 registerMockedHttpURLLoad("scrollbar-and-iframe-hover.html"); 10999 registerMockedHttpURLLoad("scrollbar-and-iframe-hover.html");
11000 FrameTestHelpers::WebViewHelper webViewHelper; 11000 FrameTestHelpers::WebViewHelper webViewHelper;
11001 WebViewImpl* webView = webViewHelper.initializeAndLoad( 11001 WebViewImpl* webView = webViewHelper.initializeAndLoad(
11002 m_baseURL + "scrollbar-and-iframe-hover.html"); 11002 m_baseURL + "scrollbar-and-iframe-hover.html");
(...skipping 15 matching lines...) Expand all
11018 // Mouse over IFRAME. 11018 // Mouse over IFRAME.
11019 WebMouseEvent mouseMoveOverIFrame( 11019 WebMouseEvent mouseMoveOverIFrame(
11020 WebInputEvent::MouseMove, WebFloatPoint(5, 5), WebFloatPoint(5, 5), 11020 WebInputEvent::MouseMove, WebFloatPoint(5, 5), WebFloatPoint(5, 5),
11021 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, 11021 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
11022 TimeTicks::Now().InSeconds()); 11022 TimeTicks::Now().InSeconds());
11023 mouseMoveOverIFrame.setFrameScale(1); 11023 mouseMoveOverIFrame.setFrameScale(1);
11024 document->frame()->eventHandler().handleMouseMoveEvent( 11024 document->frame()->eventHandler().handleMouseMoveEvent(
11025 mouseMoveOverIFrame, Vector<WebMouseEvent>()); 11025 mouseMoveOverIFrame, Vector<WebMouseEvent>());
11026 11026
11027 // IFRAME hover. 11027 // IFRAME hover.
11028 EXPECT_EQ(document->hoverNode(), iframe); 11028 EXPECT_EQ(document->hoverElement(), iframe);
11029 11029
11030 // Ensure hittest has scrollbar. 11030 // Ensure hittest has scrollbar.
11031 hitTestResult = webView->coreHitTestResultAt(WebPoint(195, 5)); 11031 hitTestResult = webView->coreHitTestResultAt(WebPoint(195, 5));
11032 EXPECT_FALSE(hitTestResult.innerElement()); 11032 EXPECT_FALSE(hitTestResult.innerElement());
11033 EXPECT_TRUE(hitTestResult.scrollbar()); 11033 EXPECT_TRUE(hitTestResult.scrollbar());
11034 EXPECT_TRUE(hitTestResult.scrollbar()->enabled()); 11034 EXPECT_TRUE(hitTestResult.scrollbar()->enabled());
11035 11035
11036 // Mouse over scrollbar. 11036 // Mouse over scrollbar.
11037 WebMouseEvent mouseMoveOverIFrameAndScrollbar( 11037 WebMouseEvent mouseMoveOverIFrameAndScrollbar(
11038 WebInputEvent::MouseMove, WebFloatPoint(195, 5), WebFloatPoint(195, 5), 11038 WebInputEvent::MouseMove, WebFloatPoint(195, 5), WebFloatPoint(195, 5),
11039 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, 11039 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
11040 TimeTicks::Now().InSeconds()); 11040 TimeTicks::Now().InSeconds());
11041 mouseMoveOverIFrameAndScrollbar.setFrameScale(1); 11041 mouseMoveOverIFrameAndScrollbar.setFrameScale(1);
11042 document->frame()->eventHandler().handleMouseMoveEvent( 11042 document->frame()->eventHandler().handleMouseMoveEvent(
11043 mouseMoveOverIFrameAndScrollbar, Vector<WebMouseEvent>()); 11043 mouseMoveOverIFrameAndScrollbar, Vector<WebMouseEvent>());
11044 11044
11045 // IFRAME not hover. 11045 // IFRAME not hover.
11046 EXPECT_NE(document->hoverNode(), iframe); 11046 EXPECT_NE(document->hoverElement(), iframe);
11047 11047
11048 // Disable the Scrollbar. 11048 // Disable the Scrollbar.
11049 webView->mainFrameImpl()->frameView()->setScrollbarsHidden(true); 11049 webView->mainFrameImpl()->frameView()->setScrollbarsHidden(true);
11050 11050
11051 // Ensure hittest has IFRAME and no scrollbar. 11051 // Ensure hittest has IFRAME and no scrollbar.
11052 hitTestResult = webView->coreHitTestResultAt(WebPoint(196, 5)); 11052 hitTestResult = webView->coreHitTestResultAt(WebPoint(196, 5));
11053 11053
11054 EXPECT_TRUE(hitTestResult.innerElement()); 11054 EXPECT_TRUE(hitTestResult.innerElement());
11055 EXPECT_FALSE(hitTestResult.scrollbar()); 11055 EXPECT_FALSE(hitTestResult.scrollbar());
11056 11056
11057 // Mouse over disabled scrollbar. 11057 // Mouse over disabled scrollbar.
11058 WebMouseEvent mouseMoveOverIFrameAndDisabledScrollbar( 11058 WebMouseEvent mouseMoveOverIFrameAndDisabledScrollbar(
11059 WebInputEvent::MouseMove, WebFloatPoint(196, 5), WebFloatPoint(196, 5), 11059 WebInputEvent::MouseMove, WebFloatPoint(196, 5), WebFloatPoint(196, 5),
11060 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, 11060 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
11061 TimeTicks::Now().InSeconds()); 11061 TimeTicks::Now().InSeconds());
11062 mouseMoveOverIFrameAndDisabledScrollbar.setFrameScale(1); 11062 mouseMoveOverIFrameAndDisabledScrollbar.setFrameScale(1);
11063 document->frame()->eventHandler().handleMouseMoveEvent( 11063 document->frame()->eventHandler().handleMouseMoveEvent(
11064 mouseMoveOverIFrameAndDisabledScrollbar, Vector<WebMouseEvent>()); 11064 mouseMoveOverIFrameAndDisabledScrollbar, Vector<WebMouseEvent>());
11065 11065
11066 // IFRAME hover. 11066 // IFRAME hover.
11067 EXPECT_EQ(document->hoverNode(), iframe); 11067 EXPECT_EQ(document->hoverElement(), iframe);
11068 } 11068 }
11069 11069
11070 // Makes sure that mouse hover over a scrollbar also hover the element owns the 11070 // Makes sure that mouse hover over a scrollbar also hover the element owns the
11071 // scrollbar. 11071 // scrollbar.
11072 TEST_F(WebFrameTest, MouseOverScrollbarAndParentElement) { 11072 TEST_F(WebFrameTest, MouseOverScrollbarAndParentElement) {
11073 registerMockedHttpURLLoad("scrollbar-and-element-hover.html"); 11073 registerMockedHttpURLLoad("scrollbar-and-element-hover.html");
11074 FrameTestHelpers::WebViewHelper webViewHelper; 11074 FrameTestHelpers::WebViewHelper webViewHelper;
11075 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(false); 11075 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(false);
11076 WebViewImpl* webView = webViewHelper.initializeAndLoad( 11076 WebViewImpl* webView = webViewHelper.initializeAndLoad(
11077 m_baseURL + "scrollbar-and-element-hover.html"); 11077 m_baseURL + "scrollbar-and-element-hover.html");
(...skipping 25 matching lines...) Expand all
11103 // Mouse over DIV. 11103 // Mouse over DIV.
11104 WebMouseEvent mouseMoveOverDiv( 11104 WebMouseEvent mouseMoveOverDiv(
11105 WebInputEvent::MouseMove, WebFloatPoint(1, 1), WebFloatPoint(1, 1), 11105 WebInputEvent::MouseMove, WebFloatPoint(1, 1), WebFloatPoint(1, 1),
11106 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, 11106 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
11107 TimeTicks::Now().InSeconds()); 11107 TimeTicks::Now().InSeconds());
11108 mouseMoveOverDiv.setFrameScale(1); 11108 mouseMoveOverDiv.setFrameScale(1);
11109 document->frame()->eventHandler().handleMouseMoveEvent( 11109 document->frame()->eventHandler().handleMouseMoveEvent(
11110 mouseMoveOverDiv, Vector<WebMouseEvent>()); 11110 mouseMoveOverDiv, Vector<WebMouseEvent>());
11111 11111
11112 // DIV :hover. 11112 // DIV :hover.
11113 EXPECT_EQ(document->hoverNode(), parentDiv); 11113 EXPECT_EQ(document->hoverElement(), parentDiv);
11114 11114
11115 // Ensure hittest has DIV and scrollbar. 11115 // Ensure hittest has DIV and scrollbar.
11116 hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 5)); 11116 hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 5));
11117 11117
11118 EXPECT_TRUE(hitTestResult.innerElement()); 11118 EXPECT_TRUE(hitTestResult.innerElement());
11119 EXPECT_TRUE(hitTestResult.scrollbar()); 11119 EXPECT_TRUE(hitTestResult.scrollbar());
11120 EXPECT_FALSE(hitTestResult.scrollbar()->isCustomScrollbar()); 11120 EXPECT_FALSE(hitTestResult.scrollbar()->isCustomScrollbar());
11121 EXPECT_TRUE(hitTestResult.scrollbar()->enabled()); 11121 EXPECT_TRUE(hitTestResult.scrollbar()->enabled());
11122 11122
11123 // Mouse over scrollbar. 11123 // Mouse over scrollbar.
11124 WebMouseEvent mouseMoveOverDivAndScrollbar( 11124 WebMouseEvent mouseMoveOverDivAndScrollbar(
11125 WebInputEvent::MouseMove, WebFloatPoint(175, 5), WebFloatPoint(175, 5), 11125 WebInputEvent::MouseMove, WebFloatPoint(175, 5), WebFloatPoint(175, 5),
11126 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, 11126 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
11127 TimeTicks::Now().InSeconds()); 11127 TimeTicks::Now().InSeconds());
11128 mouseMoveOverDivAndScrollbar.setFrameScale(1); 11128 mouseMoveOverDivAndScrollbar.setFrameScale(1);
11129 document->frame()->eventHandler().handleMouseMoveEvent( 11129 document->frame()->eventHandler().handleMouseMoveEvent(
11130 mouseMoveOverDivAndScrollbar, Vector<WebMouseEvent>()); 11130 mouseMoveOverDivAndScrollbar, Vector<WebMouseEvent>());
11131 11131
11132 // Not change the DIV :hover. 11132 // Not change the DIV :hover.
11133 EXPECT_EQ(document->hoverNode(), parentDiv); 11133 EXPECT_EQ(document->hoverElement(), parentDiv);
11134 11134
11135 // Disable the Scrollbar by remove the childDiv. 11135 // Disable the Scrollbar by remove the childDiv.
11136 childDiv->remove(); 11136 childDiv->remove();
11137 webView->updateAllLifecyclePhases(); 11137 webView->updateAllLifecyclePhases();
11138 11138
11139 // Ensure hittest has DIV and no scrollbar. 11139 // Ensure hittest has DIV and no scrollbar.
11140 hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 5)); 11140 hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 5));
11141 11141
11142 EXPECT_TRUE(hitTestResult.innerElement()); 11142 EXPECT_TRUE(hitTestResult.innerElement());
11143 EXPECT_TRUE(hitTestResult.scrollbar()); 11143 EXPECT_TRUE(hitTestResult.scrollbar());
11144 EXPECT_FALSE(hitTestResult.scrollbar()->enabled()); 11144 EXPECT_FALSE(hitTestResult.scrollbar()->enabled());
11145 EXPECT_LT(hitTestResult.innerElement()->clientWidth(), 180); 11145 EXPECT_LT(hitTestResult.innerElement()->clientWidth(), 180);
11146 11146
11147 // Mouse over disabled scrollbar. 11147 // Mouse over disabled scrollbar.
11148 document->frame()->eventHandler().handleMouseMoveEvent( 11148 document->frame()->eventHandler().handleMouseMoveEvent(
11149 mouseMoveOverDivAndScrollbar, Vector<WebMouseEvent>()); 11149 mouseMoveOverDivAndScrollbar, Vector<WebMouseEvent>());
11150 11150
11151 // Not change the DIV :hover. 11151 // Not change the DIV :hover.
11152 EXPECT_EQ(document->hoverNode(), parentDiv); 11152 EXPECT_EQ(document->hoverElement(), parentDiv);
11153 } 11153 }
11154 11154
11155 TEST_F(WebFrameTest, MouseReleaseUpdatesScrollbarHoveredPart) { 11155 TEST_F(WebFrameTest, MouseReleaseUpdatesScrollbarHoveredPart) {
11156 registerMockedHttpURLLoad("custom-scrollbar-hover.html"); 11156 registerMockedHttpURLLoad("custom-scrollbar-hover.html");
11157 FrameTestHelpers::WebViewHelper webViewHelper; 11157 FrameTestHelpers::WebViewHelper webViewHelper;
11158 WebViewImpl* webView = webViewHelper.initializeAndLoad( 11158 WebViewImpl* webView = webViewHelper.initializeAndLoad(
11159 m_baseURL + "custom-scrollbar-hover.html"); 11159 m_baseURL + "custom-scrollbar-hover.html");
11160 11160
11161 webViewHelper.resize(WebSize(200, 200)); 11161 webViewHelper.resize(WebSize(200, 200));
11162 11162
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
11598 FrameTestHelpers::loadFrame(localFrame, "data:text/html,some page"); 11598 FrameTestHelpers::loadFrame(localFrame, "data:text/html,some page");
11599 11599
11600 // Local frame with remote parent should have transparent baseBackgroundColor. 11600 // Local frame with remote parent should have transparent baseBackgroundColor.
11601 Color color = localFrame->frameView()->baseBackgroundColor(); 11601 Color color = localFrame->frameView()->baseBackgroundColor();
11602 EXPECT_EQ(Color::transparent, color); 11602 EXPECT_EQ(Color::transparent, color);
11603 11603
11604 view->close(); 11604 view->close();
11605 } 11605 }
11606 11606
11607 } // namespace blink 11607 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/input/EventHandler.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698