eye-dropper-abort-signal.tentative.https.html (1767B)
1 <!DOCTYPE html> 2 <title>EyeDropper Test: abort signal</title> 3 <link rel="author" title="Ionel Popescu" href="mailto:iopopesc@microsoft.com"> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <script src="/resources/testdriver.js"></script> 7 <script src="/resources/testdriver-actions.js"></script> 8 <script src="/resources/testdriver-vendor.js"></script> 9 10 <button id="eyedropperbutton">Open eyedropper!</button> 11 12 <script> 13 function clickOn(element) { 14 const actions = new test_driver.Actions(); 15 return actions.pointerMove(0, 0, {origin: element}) 16 .pointerDown({button: actions.ButtonType.LEFT}) 17 .pointerUp({button: actions.ButtonType.LEFT}) 18 .send(); 19 } 20 21 promise_test(async t => { 22 const eyeDropperButton = document.getElementById("eyedropperbutton"); 23 eyeDropperButton.addEventListener("click", async () => { 24 let eyeDropper = new EyeDropper(); 25 let controller = new AbortController(); 26 controller.abort(); 27 await promise_rejects_dom(t, "AbortError", eyeDropper.open({signal: controller.signal})); 28 }); 29 await clickOn(eyeDropperButton); 30 }, "Calling EyeDropper.open with signal's aborted flag set should directly throw AbortError"); 31 32 promise_test(async t => { 33 const eyeDropperButton = document.getElementById("eyedropperbutton"); 34 eyeDropperButton.addEventListener("click", () => { 35 let eyeDropper = new EyeDropper(); 36 let controller = new AbortController(); 37 this.step_timeout(() => { 38 controller.abort(); 39 }, 500); 40 promise_rejects_dom(t, "AbortError", eyeDropper.open({signal: controller.signal})); 41 }); 42 await clickOn(eyeDropperButton); 43 }, "Calling abort should dismiss the eyedropper"); 44 45 </script>