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>
9 async
function connectInWorker() {
10 let worker
= new Worker('/webusb/resources/open-in-worker.js');
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
);
27 return { worker
, closedPromise
};
30 usb_test(async () => {
31 let { worker
, closedPromise
} = await
connectInWorker();
34 }, 'terminating worker disconnects device.');