tor-browser

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

usbInterface.https.any.js (2259B)


      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 usb_test(async () => {
      7  let { device } =  await getFakeDevice();
      8  let configuration = new USBConfiguration(
      9      device, device.configurations[1].configurationValue);
     10  let usbInterface = new USBInterface(
     11      configuration, configuration.interfaces[0].interfaceNumber);
     12  assertDeviceInfoEquals(
     13      usbInterface, fakeDeviceInit.configurations[1].interfaces[0]);
     14 }, 'Can construct a USBInterface.');
     15 
     16 usb_test(async () => {
     17  let { device } =  await getFakeDevice();
     18  let configuration = new USBConfiguration(
     19      device, device.configurations[1].configurationValue);
     20  try {
     21    let usbInterface = new USBInterface(
     22        configuration, configuration.interfaces.length);
     23    assert_unreached('USBInterface should reject an invalid interface number');
     24  } catch (error) {
     25    assert_equals(error.name, 'RangeError');
     26  }
     27 }, 'Constructing a USBInterface with an invalid interface number ' +
     28    'throws a range error.');
     29 
     30 usb_test(async () => {
     31  let { device } =  await getFakeDevice();
     32  await device.open();
     33  await device.selectConfiguration(2);
     34  let configuration = new USBConfiguration(
     35      device, device.configurations[1].configurationValue);
     36  let usbInterface = new USBInterface(
     37      configuration, configuration.interfaces[0].interfaceNumber);
     38  assert_equals(usbInterface.alternate.alternateSetting, 0);
     39 }, 'The alternate attribute of USBInterface returns the one with ' +
     40   'bAlternateSetting 0 if the interface has not been claimed.');
     41 
     42 usb_test(async () => {
     43  let { device } =  await getFakeDevice();
     44  await device.open();
     45  await device.selectConfiguration(2);
     46  await device.claimInterface(0);
     47  let configuration = new USBConfiguration(
     48    device, device.configurations[1].configurationValue);
     49  let usbInterface = new USBInterface(
     50    configuration, configuration.interfaces[0].interfaceNumber);
     51  assert_equals(usbInterface.alternate.alternateSetting, 0);
     52  await device.selectAlternateInterface(0, 1);
     53  assert_equals(usbInterface.alternate.alternateSetting, 1);
     54 }, 'The alternate attribute of USBInterface returns the active alternate ' +
     55   'interface.');