// META: script=/resources/test-only-api.js // META: script=/webusb/resources/fake-devices.js // META: script=/webusb/resources/usb-helpers.js 'use strict'; usb_test(async () => { let { device } = await getFakeDevice(); let configuration = new USBConfiguration( device, device.configurations[1].configurationValue); let usbInterface = new USBInterface( configuration, configuration.interfaces[0].interfaceNumber); let alternateInterface = new USBAlternateInterface( usbInterface, usbInterface.alternates[1].alternateSetting); assertDeviceInfoEquals( alternateInterface, fakeDeviceInit.configurations[1].interfaces[0].alternates[1]); }, 'Can construct a USBAlternateInterface.'); usb_test(async () => { let { device } = await getFakeDevice(); let configuration = new USBConfiguration( device, device.configurations[1].configurationValue); let usbInterface = new USBInterface( configuration, configuration.interfaces[0].interfaceNumber); try { let alternateInterface = new USBAlternateInterface( usbInterface, usbInterface.alternates.length); assert_unreached( 'USBAlternateInterface should reject an invalid alternate setting'); } catch (error) { assert_equals(error.name, 'RangeError'); } }, 'Constructing a USBAlternateInterface with an invalid alternate setting ' + 'throws a range error.');