Chromium Code Reviews| Index: LayoutTests/fast/events/touch/gesture/gesture-tap-mouse-events-between-frames.html |
| diff --git a/LayoutTests/fast/events/touch/gesture/gesture-tap-mouse-events-between-frames.html b/LayoutTests/fast/events/touch/gesture/gesture-tap-mouse-events-between-frames.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..0feb40344bbb1684ef56c6b1a4eabd3d7e4a27f3 |
| --- /dev/null |
| +++ b/LayoutTests/fast/events/touch/gesture/gesture-tap-mouse-events-between-frames.html |
| @@ -0,0 +1,126 @@ |
| +<!DOCTYPE HTML> |
| +<script src="../../../../resources/js-test.js"></script> |
| +<script src="../../resources/record-events.js"></script> |
| +<style> |
| +div { |
| + margin: 10px; |
| + padding: 50px; |
| + float: left; |
| +} |
| +#console { |
| + padding: 0px; |
| + float: none; |
| +} |
| +#frame { |
| + margin: 0px; |
| + border: 0px; |
| + width: 400px; |
| + height: 400px; |
| +} |
| +</style> |
| + |
| +<div id="lightgreen" style="background-color:lightgreen"> |
| + <div id="green" style="background-color:green;"> |
| + </div> |
| +</div> |
| +<iframe src='resources/gesture-tap-mouse-events-between-frames-iframe.html' id='frame'></iframe> |
| +<div id="console"></div> |
| + |
| +<script> |
| +description("Verifies that mouse events are fired on tapping of gesture across frames in the correct order."); |
|
mustaq
2015/06/16 14:50:44
Nit: double space before "are"
Miyoung Shin(c)
2015/06/20 21:08:29
Done.
|
| + |
| +var frame = document.getElementById("frame"); |
| +var greenEnterOrder = [ |
| + ["green", "mouseover"], |
| + ["lightgreen", "mouseover"], |
| + ["lightgreen", "mouseenter"], |
| + ["green", "mouseenter"]]; |
| + |
| +var greenLeaveOrder = [ |
| + ["green", "mouseout"], |
| + ["lightgreen", "mouseout"], |
| + ["green", "mouseleave"], |
| + ["lightgreen", "mouseleave"]]; |
| + |
| +var pinkEnterOrder = [ |
| + ["deeppink", "mouseover"], |
| + ["lightpink", "mouseover"], |
| + ["lightpink", "mouseenter"], |
| + ["deeppink", "mouseenter"]]; |
| + |
| +var pinkLeaveOrder = [ |
| + ["deeppink", "mouseout"], |
| + ["lightpink", "mouseout"], |
| + ["deeppink", "mouseleave"], |
| + ["lightpink", "mouseleave"]]; |
| + |
| +function getElementById(id) |
| +{ |
| + var element = document.getElementById(id); |
| + if (element == null) |
| + element = frame.contentDocument.getElementById(id); |
| + return element; |
| +} |
| + |
| +function init() { |
| + var ids = ["lightgreen", "green", "lightpink", "deeppink"]; |
| + |
| + var elements = []; |
| + ids.forEach(function(id) { |
| + var element = getElementById(id); |
| + elements.push(element); |
| + }); |
| + registerElementsAndEventsToRecord(elements, ["mouseover", "mouseout", "mouseenter", "mouseleave"]); |
| +} |
| + |
| +function doGesture(id, base) |
| +{ |
| + debug("-- sending gestureTap to " + id + " --"); |
| + var element = getElementById(id); |
| + |
| + var x = base.x + element.offsetLeft + element.offsetWidth / 2; |
| + var y = base.y + element.offsetTop + element.offsetHeight / 2; |
| + eventSender.gestureTap(x, y); |
| +} |
| + |
| +function runTests() |
| +{ |
| + init(); |
| + if (window.eventSender) { |
| + debug("--- Tap tests ---"); |
| + |
| + var expectedOrder = []; |
| + beginRecordingEvents(); |
| + doGesture("green", {x: 0, y: 0}); |
| + expectedOrder = expectedOrder.concat(greenEnterOrder); |
| + checkThatEventsFiredInOrder(expectedOrder); |
| + |
| + doGesture("green", {x: 0, y: 0}); |
| + debug("There should not be any mouse event."); |
| + checkThatEventsFiredInOrder(expectedOrder); |
| + |
| + doGesture("deeppink", {x: frame.offsetLeft, y: frame.offsetTop}); |
| + expectedOrder = expectedOrder.concat(greenLeaveOrder, pinkEnterOrder); |
| + checkThatEventsFiredInOrder(expectedOrder); |
| + |
| + doGesture("deeppink", {x: frame.offsetLeft, y: frame.offsetTop}); |
| + debug("There should not be any mouse event."); |
| + checkThatEventsFiredInOrder(expectedOrder); |
| + |
| + doGesture("green", {x: 0, y: 0}); |
| + expectedOrder = expectedOrder.concat(pinkLeaveOrder, greenEnterOrder); |
| + checkThatEventsFiredInOrder(expectedOrder); |
| + endRecordingEvents(); |
| + } else { |
| + debug("This test requires eventSender"); |
| + } |
| + finishJSTest(); |
| +} |
| + |
| +if (window.testRunner) { |
| + window.jsTestIsAsync = true; |
| + testRunner.waitUntilDone(); |
| +} |
| + |
| +window.onload = runTests; |
| +</script> |