blob: ff57b270287d0bd4ff69b1c76805beec4f8a2b06 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
<!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>
|