| <script src="../../../../resources/js-test.js"></script> |
| <script src="../../../../resources/ui-helper.js"></script> |
| <script> |
| jsTestIsAsync = true; |
| touchEndEventCount = 0; |
| |
| async function runTest() |
| { |
| let output = ""; |
| window.addEventListener("touchstart", function(event) { |
| event.preventDefault(); |
| testPassed(`touchstart on window - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`); |
| }, { "passive": false }); |
| |
| window.addEventListener("touchmove", function(event) { |
| event.preventDefault(); |
| testPassed(`touchmove on window - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`); |
| }, { "passive": false, "once": true }); |
| |
| window.addEventListener("touchend", function(event) { |
| event.preventDefault(); |
| testPassed(`touchend on window - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`); |
| touchEndEventCount++; |
| }, { "passive": false }); |
| |
| document.addEventListener("touchstart", function(event) { |
| event.preventDefault(); |
| testPassed(`touchstart on document - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`); |
| }, { "passive": false }); |
| |
| document.addEventListener("touchmove", function(event) { |
| event.preventDefault(); |
| testPassed(`touchmove on document - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`); |
| }, { "passive": false, "once": true }); |
| |
| document.addEventListener("touchend", function(event) { |
| event.preventDefault(); |
| testPassed(`touchend on document - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`); |
| touchEndEventCount++; |
| }, { "passive": false }); |
| |
| document.documentElement.addEventListener("touchstart", function(event) { |
| event.preventDefault(); |
| testPassed(`touchstart on documentElement - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`); |
| }, { "passive": false }); |
| |
| document.documentElement.addEventListener("touchmove", function(event) { |
| event.preventDefault(); |
| testPassed(`touchmove on documentElement - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`); |
| }, { "passive": false, "once": true }); |
| |
| document.documentElement.addEventListener("touchend", function(event) { |
| event.preventDefault(); |
| testPassed(`touchend on documentElement - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`); |
| touchEndEventCount++; |
| }, { "passive": false }); |
| |
| let body = document.querySelector("body"); |
| |
| body.addEventListener("touchstart", function(event) { |
| event.preventDefault(); |
| testPassed(`touchstart on body - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`); |
| }, { "passive": false }); |
| |
| body.addEventListener("touchmove", function(event) { |
| event.preventDefault(); |
| testPassed(`touchmove on body - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`); |
| }, { "passive": false, "once": true }); |
| |
| body.addEventListener("touchend", function(event) { |
| event.preventDefault(); |
| testPassed(`touchend on body - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`); |
| touchEndEventCount++; |
| }, { "passive": false }); |
| |
| if (window.testRunner && testRunner.runUIScript) { |
| description("This test verifies that active touchstart and touchend event listeners can be added to document, window, documentElement, and body. This test requires WebKitTestRunner."); |
| await UIHelper.dragFromPointToPoint(50, 250, 50, 30, 0.1); |
| await new Promise(resolve => shouldBecomeEqual("touchEndEventCount", "4", resolve)); |
| finishJSTest(); |
| } |
| } |
| |
| window.addEventListener('load', runTest, false); |
| </script> |
| <body style="height: 500vh"> |
| <div id=output> |
| This test requires UIScriptController to run. |
| </div> |
| </body> |