Index: LayoutTests/fast/events/touch/touch-pointer-events.html |
diff --git a/LayoutTests/fast/events/touch/touch-pointer-events.html b/LayoutTests/fast/events/touch/touch-pointer-events.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..309e2b4b9f7f2eb31f4501951b858b3edf53aa07 |
--- /dev/null |
+++ b/LayoutTests/fast/events/touch/touch-pointer-events.html |
@@ -0,0 +1,75 @@ |
+<!DOCTYPE HTML> |
+<script src="../../../resources/js-test.js"></script> |
+<style> |
+div { |
+ margin: 10px; |
+ padding: 50px; |
+ float: left; |
+} |
+#console { |
+ padding: 0px; |
+ float: none; |
+} |
+</style> |
+ |
+<div id="grey" style="background-color:grey"> |
+ <div id="lightgreen" style="background-color:lightgreen"> |
+ <div id="green" style="background-color:green;"> |
+ </div> |
+ </div> |
+</div> |
+ |
+<div id="console"></div> |
+ |
+<script> |
+description("Verifies that tapping on an element fires appropriate pointer events."); |
+ |
+function getPhaseString(event) { |
+ return event.eventPhase == 0 ? "none" : |
+ event.eventPhase == 1 ? "capturing" : |
+ event.eventPhase == 2 ? "target" : |
+ event.eventPhase == 3 ? "bubbling" : |
+ "error"; |
+} |
+ |
+function initListeners(preventDefault) { |
+ debug("-- adding event listeners with preventDefault=" + preventDefault + " --"); |
+ |
+ var eventNames = ["touchstart", "touchend", "touchmove", "pointerdown", "pointerup", "pointermove"]; |
+ |
+ ["grey", "lightgreen", "green"].forEach(function(id) { |
+ var targetDiv = document.getElementById(id); |
+ |
+ eventNames.forEach(function(eventName) { |
+ targetDiv.addEventListener(eventName, function(event) { |
+ debug(id + " received " + event.type + " at phase=" + getPhaseString(event)); |
+ if (preventDefault) |
+ event.preventDefault(); |
+ }); |
+ }) |
+ }); |
+} |
+ |
+function sendTouch(id) { |
+ var rect = document.getElementById(id).getBoundingClientRect(); |
+ var x = rect.left + 10; |
+ var y = rect.top + 10; |
+ |
+ debug("-- sending touch to " + id + " --"); |
+ |
+ eventSender.clearTouchPoints(); |
+ eventSender.addTouchPoint(x, y); |
+ eventSender.touchStart(); |
+ eventSender.updateTouchPoint(0, x+20, y+20); |
+ eventSender.touchEnd(); |
+} |
+ |
+if (window.eventSender) { |
+ initListeners(false); |
+ sendTouch("green"); |
+ initListeners(true); |
+ sendTouch("green"); |
+} else { |
+ debug("This test requires eventSender"); |
+} |
+</script> |