Bug 1539614 [wpt PR 16077] - HTML: move textarea tests together, a=testonly
[gecko.git] / testing / web-platform / tests / webusb / usbDevice-worker.https.html
blob119f5d6688235e396db1d118cec8b61324e46d8a
1 <!DOCTYPE html>
2 <script src="/resources/testharness.js"></script>
3 <script src="/resources/testharnessreport.js"></script>
4 <script src="/webusb/resources/fake-devices.js"></script>
5 <script src="/webusb/resources/usb-helpers.js"></script>
6 <script>
7 'use strict';
9 async function connectInWorker() {
10 let worker = new Worker('/webusb/resources/open-in-worker.js');
11 let opened = false;
13 await navigator.usb.test.attachToContext(worker);
14 function nextWorkerMessage() {
15 return new Promise(resolve => worker.addEventListener(
16 'message', e => resolve(e.data)));
18 worker.postMessage({ type: 'Ready' });
20 assert_equals('Ready', (await nextWorkerMessage()).type);
21 let fakeDevice = navigator.usb.test.addFakeDevice(fakeDeviceInit);
22 let closedPromise = new Promise(resolve => fakeDevice.onclose = resolve)
23 .then(() => assert_true(opened));
25 assert_equals('Success', (await nextWorkerMessage()).type);
26 opened = true;
27 return { worker, closedPromise };
30 usb_test(async () => {
31 let { worker, closedPromise } = await connectInWorker();
32 worker.terminate();
33 await closedPromise;
34 }, 'terminating worker disconnects device.');
35 </script>