blob: 1d898d8c7959c26e7e9932b67b3757d0be9fe3dc [file] [log] [blame]
function raf() {
return new Promise((resolve) => {
// rAF twice.
window.requestAnimationFrame(() => {
window.requestAnimationFrame(resolve);
});
});
}
async function runTest({target, eventName, passive, expectCancelable}) {
await raf();
let cancelable = null;
let arrived = false;
target.addEventListener(eventName, function (event) {
cancelable = event.cancelable;
arrived = true;
}, {passive:passive, once:true});
promise_test(async (t) => {
t.add_cleanup(() => {
document.querySelector('.remove-on-cleanup')?.remove();
});
const pos_x = Math.floor(window.innerWidth / 2);
const pos_y = Math.floor(window.innerHeight / 2);
const delta_x = 0;
const delta_y = 100;
await new test_driver.Actions()
.scroll(pos_x, pos_y, delta_x, delta_y).send();
await waitFor(() => arrived);
assert_equals(cancelable, expectCancelable);
});
}