usb.https.any.js (1800B)
1 // META: script=/resources/test-only-api.js 2 // META: script=/webusb/resources/fake-devices.js 3 // META: script=/webusb/resources/usb-helpers.js 4 'use strict'; 5 6 let usbDevice, devicesFirstTime, fakeDevice, removedDevice; 7 8 usb_test(() => getFakeDevice() 9 .then(_ => usbDevice = _.device) 10 .then(() => navigator.usb.getDevices()) 11 .then(devices => { 12 assert_equals(devices.length, 1); 13 assert_equals(usbDevice, devices[0]); 14 assertDeviceInfoEquals(devices[0], fakeDeviceInit); 15 }), 'getDevices returns devices that are connected'); 16 17 usb_test(() => getFakeDevice() 18 .then(() => navigator.usb.getDevices()) 19 .then(_ => devicesFirstTime = _) 20 .then(() => assert_equals(devicesFirstTime.length, 1)) 21 .then(() => navigator.usb.getDevices()) 22 .then(devicesSecondTime => assert_array_equals(devicesSecondTime, 23 devicesFirstTime)), 24 'getDevices returns the same objects for each USB device'); 25 26 usb_test(() => getFakeDevice() 27 .then(_ => usbDevice = _.device) 28 .then(() => assertDeviceInfoEquals(usbDevice, fakeDeviceInit)) 29 .then(() => usbDevice.open()) 30 .then(() => usbDevice.close()), 31 'onconnect event is trigged by adding a device'); 32 33 usb_test(() => getFakeDevice() 34 .then(_ => { 35 usbDevice = _.device; 36 fakeDevice = _.fakeDevice; 37 }) 38 .then(() => waitForDisconnect(fakeDevice)) 39 .then(_ => removedDevice = _) 40 .then(() => { 41 assertDeviceInfoEquals(removedDevice, fakeDeviceInit); 42 assert_equals(removedDevice, usbDevice); 43 }) 44 .then(() => removedDevice.open()) 45 .then(() => 46 assert_unreachable('should not be able to open a disconnected device'), 47 error => assert_equals(error.code, DOMException.NOT_FOUND_ERR)), 48 'ondisconnect event is triggered by removing a device'); 49 50 done();