forked from LeenkxTeam/Kmake
35 lines
982 B
JavaScript
35 lines
982 B
JavaScript
|
|
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 t.step_wait(() => arrived, `Didn't get event ${eventName} on ${target.localName}`);
|
||
|
|
assert_equals(cancelable, expectCancelable);
|
||
|
|
});
|
||
|
|
}
|