tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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();