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

Unified Diff: LayoutTests/fast/events/touch/gesture/gesture-tap-mouse-events-between-frames.html

Issue 1170513002: Update the mouse events on tapping of gesture across frames (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
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..af6ea5e62df4c42b73ce1b39a8575f2b06e3a6f4
--- /dev/null
+++ b/LayoutTests/fast/events/touch/gesture/gesture-tap-mouse-events-between-frames.html
@@ -0,0 +1,137 @@
+<!DOCTYPE HTML>
+<script src="../../../../resources/js-test.js"></script>
+<script src="../../resources/record-events.js"></script>
+<style>
+body { margin: 0px; }
+div.box { padding: 40px; }
+#yellow { background-color: yellow; }
+#console { padding: 0px; }
+iframe { margin: 0px; border: 0px; width: 100%; height: 320px; }
+</style>
+<div class="box" id="yellow"><iframe src='resources/gesture-tap-mouse-events-between-frames-iframe1.html' id='frameA'></iframe></div>
+<div id="console"></div>
+<script>
+description("Verifies that mouse events are fired on tapping of gesture across frames in the correct order.");
+var frameA, frameB, frameC, frameD, frameE;
+
+var yellowEnterOrder = [
+ ["yellow", "mouseover"],
+ ["yellow", "mouseenter"],
+ ["greenyellow", "mouseover"],
+ ["greenyellow", "mouseenter"]];
+
+var greenEnterOrder = [
+ ["limegreen", "mouseover"],
+ ["limegreen", "mouseenter"],
+ ["green", "mouseover"],
+ ["green", "mouseenter"]];
+
+var greenLeaveOrder = [
+ ["green", "mouseout"],
+ ["green", "mouseleave"],
+ ["limegreen", "mouseout"],
+ ["limegreen", "mouseleave"],
+ ["greenyellow", "mouseout"],
+ ["greenyellow", "mouseover"]];
+
+var pinkEnterOrder = [
+ ["pink", "mouseover"],
+ ["pink", "mouseenter"],
+ ["hotpink", "mouseover"],
+ ["hotpink", "mouseenter"]];
+
+var pinkLeaveOrder = [
+ ["hotpink", "mouseout"],
+ ["hotpink", "mouseleave"],
+ ["pink", "mouseout"],
+ ["pink", "mouseleave"],
+ ["greenyellow", "mouseout"],
+ ["greenyellow", "mouseover"]];
+
+function getElementById(obj)
+{
+ if (obj.frame)
+ return obj.frame.contentDocument.getElementById(obj.id);
+ return document.getElementById(obj.id);
+}
+
+function init() {
+ frameA = document.getElementById("frameA");
+ frameB = frameA.contentDocument.getElementById("frameB");
+ frameC = frameB.contentDocument.getElementById("frameC");
+ frameD = frameA.contentDocument.getElementById("frameD");
+ frameE = frameD.contentDocument.getElementById("frameE");
+
+ var ids = [
+ { id : "yellow" },
+ { id : "greenyellow", frame : frameA },
+ { id : "limegreen", frame: frameB },
+ { id : "green", frame: frameC },
+ { id : "pink", frame: frameD },
+ { id : "hotpink", frame: frameE }];
+
+ var elements = [];
+ ids.forEach(function(id) {
+ var element = getElementById(id);
+ elements.push(element);
+ });
+ registerElementsAndEventsToRecord(elements, ["mouseover", "mouseout", "mouseenter", "mouseleave"]);
+}
+
+function doGesture(obj, base)
+{
+ debug("-- sending gestureTap to " + obj.id + " --");
+ var element = getElementById( { id : obj.id, frame : obj.frame });
+
+ 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();
+
+ var greenX = frameA.offsetLeft + frameB.offsetLeft + frameC.offsetLeft;;
+ var greenY = frameA.offsetTop + frameB.offsetTop + frameC.offsetTop;;
+
+ doGesture({id: "green", frame: frameC}, {x: greenX, y: greenY});
+ expectedOrder = expectedOrder.concat(yellowEnterOrder, greenEnterOrder);
+ checkThatEventsFiredInOrder(expectedOrder);
+
+ doGesture({id: "green", frame: frameC}, {x: greenX, y: greenY});
+ debug("There should not be any mouse event.");
+ checkThatEventsFiredInOrder(expectedOrder);
+
+ var pinkX = frameA.offsetLeft + frameD.offsetLeft + frameE.offsetLeft;;
+ var pinkY = frameA.offsetTop + frameD.offsetTop + frameE.offsetTop;;
+ doGesture({id: "hotpink", frame: frameE }, {x: pinkX, y: pinkY});
+ expectedOrder = expectedOrder.concat(greenLeaveOrder, pinkEnterOrder);
+ checkThatEventsFiredInOrder(expectedOrder);
+
+ doGesture({id: "hotpink", frame: frameE }, {x: pinkX, y: pinkY});
+ debug("There should not be any mouse event.");
+ checkThatEventsFiredInOrder(expectedOrder);
+
+ doGesture({id: "green", frame: frameC}, {x: greenX, y: greenY});
+ 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>

Powered by Google App Engine
This is Rietveld 408576698