| <!DOCTYPE html> |
| <html> |
| <script src="../../../../resources/js-test-pre.js"></script> |
| |
| <style type="text/css"> |
| ::-webkit-scrollbar { |
| width: 0px; |
| height: 0px; |
| } |
| |
| div { |
| line-height: 100px; |
| } |
| |
| #hoverme { |
| background-color: lightblue; |
| } |
| |
| #clickme { |
| background-color: lightgreen; |
| display: none; |
| } |
| |
| #dontclickme { |
| background-color: yellow; |
| } |
| |
| #hoverme:hover #clickme { |
| display: block; |
| } |
| </style> |
| |
| <body style="margin:0"> |
| |
| <div id='hoverme'>Hover over me |
| <div id='clickme'>Click me</div> |
| </div> |
| <div id='dontclickme'>Don't click me</div> |
| |
| <p id="description"></p> |
| <p>See https://bugs.webkit.org/show_bug.cgi?id=103283 for details.</p> |
| |
| <div id="console"></div> |
| |
| <script> |
| description("Tests that a gesture tap is dispatched before the hover state on the active element is cleared."); |
| |
| var clickMe = document.getElementById('clickme'); |
| var dontClickMe = document.getElementById('dontclickme'); |
| var clickMeCount = 0; |
| var dontClickMeCount = 0; |
| |
| function runTests() |
| { |
| if (!window.eventSender) { |
| debug('This test requires DRT.'); |
| return; |
| } |
| |
| if (!eventSender.gestureTapDown || !eventSender.gestureTap) { |
| debug('GestureTapDown or GestureTap is not supported by this platform'); |
| return; |
| } |
| |
| clickMe.addEventListener("click", function() { clickMeCount++; }, false); |
| dontClickMe.addEventListener("click", function() { dontClickMeCount++; }, false); |
| |
| debug("The Click Me div should not be visible."); |
| shouldBe("clickMe.offsetTop", "0"); |
| |
| debug("The Click Me div should be visible after a GestureTapDown on the Hover Over Me div."); |
| shouldBe(document.elementFromPoint(50, 50).id, "hoverme"); |
| eventSender.gestureTapDown(50, 50); |
| shouldBe("clickMe.offsetTop", "100"); |
| |
| debug("Tapping on the Click Me div should dispatch a click to the Click Me div and not to the Don't Click Me div and the Click Me div should still be visible."); |
| shouldBe(document.elementFromPoint(150, 150).id, "clickme"); |
| eventSender.gestureTap(150, 150); |
| shouldBe("clickMeCount", "1"); |
| shouldBe("dontClickMeCount", "0"); |
| shouldBe("clickMe.offsetTop", "100"); |
| } |
| |
| runTests(); |
| </script> |
| <script src="../../../../resources/js-test-post.js"></script> |
| </body> |
| </html> |