blob: 280cc0c39c0aa13776e776c7377ef2d73218fce5 [file] [log] [blame]
<script src="../../../../resources/js-test.js"></script>
<script src="../../../../resources/ui-helper.js"></script>
<script>
jsTestIsAsync = true;
touchEndEventCount = 0;
async function runTest()
{
window.addEventListener("touchstart", function(event) {
event.preventDefault();
testPassed(`touchstart on window - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`);
}, false);
window.addEventListener("touchend", function(event) {
event.preventDefault();
testPassed(`touchend on window - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`);
touchEndEventCount++;
}, false);
document.addEventListener("touchstart", function(event) {
event.preventDefault();
testPassed(`touchstart on document - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`);
}, false);
document.addEventListener("touchend", function(event) {
event.preventDefault();
testPassed(`touchend on document - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`);
touchEndEventCount++;
}, false);
document.documentElement.addEventListener("touchstart", function(event) {
event.preventDefault();
testPassed(`touchstart on documentElement - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`);
}, false);
document.documentElement.addEventListener("touchend", function(event) {
event.preventDefault();
testPassed(`touchend on documentElement - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`);
touchEndEventCount++;
}, false);
let body = document.querySelector("body");
body.addEventListener("touchstart", function(event) {
event.preventDefault();
testPassed(`touchstart on body - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`);
}, false);
body.addEventListener("touchend", function(event) {
event.preventDefault();
testPassed(`touchend on body - cancelable: ${event.cancelable} defaultPrevented: ${event.defaultPrevented}`);
touchEndEventCount++;
}, false);
if (window.testRunner && testRunner.runUIScript) {
description("This test verifies that touchstart and touchend event listeners are passive by default on 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">
</body>