45 lines
1.7 KiB
HTML
45 lines
1.7 KiB
HTML
<!DOCTYPE html>
|
|
<title>EyeDropper Test: abort signal</title>
|
|
<link rel="author" title="Ionel Popescu" href="mailto:iopopesc@microsoft.com">
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="/resources/testdriver.js"></script>
|
|
<script src="/resources/testdriver-actions.js"></script>
|
|
<script src="/resources/testdriver-vendor.js"></script>
|
|
|
|
<button id="eyedropperbutton">Open eyedropper!</button>
|
|
|
|
<script>
|
|
function clickOn(element) {
|
|
const actions = new test_driver.Actions();
|
|
return actions.pointerMove(0, 0, {origin: element})
|
|
.pointerDown({button: actions.ButtonType.LEFT})
|
|
.pointerUp({button: actions.ButtonType.LEFT})
|
|
.send();
|
|
}
|
|
|
|
promise_test(async t => {
|
|
const eyeDropperButton = document.getElementById("eyedropperbutton");
|
|
eyeDropperButton.addEventListener("click", async () => {
|
|
let eyeDropper = new EyeDropper();
|
|
let controller = new AbortController();
|
|
controller.abort();
|
|
await promise_rejects_dom(t, "AbortError", eyeDropper.open({signal: controller.signal}));
|
|
});
|
|
await clickOn(eyeDropperButton);
|
|
}, "Calling EyeDropper.open with signal's aborted flag set should directly throw AbortError");
|
|
|
|
promise_test(async t => {
|
|
const eyeDropperButton = document.getElementById("eyedropperbutton");
|
|
eyeDropperButton.addEventListener("click", () => {
|
|
let eyeDropper = new EyeDropper();
|
|
let controller = new AbortController();
|
|
this.step_timeout(() => {
|
|
controller.abort();
|
|
}, 500);
|
|
promise_rejects_dom(t, "AbortError", eyeDropper.open({signal: controller.signal}));
|
|
});
|
|
await clickOn(eyeDropperButton);
|
|
}, "Calling abort should dismiss the eyedropper");
|
|
|
|
</script>
|