| // 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); |
| let inEndpoint = new USBEndpoint( |
| alternateInterface, alternateInterface.endpoints[0].endpointNumber, 'in'); |
| let outEndpoint = new USBEndpoint( |
| alternateInterface, |
| alternateInterface.endpoints[1].endpointNumber, |
| 'out'); |
| assertDeviceInfoEquals( |
| inEndpoint, |
| fakeDeviceInit.configurations[1].interfaces[0].alternates[1] |
| .endpoints[0]); |
| assertDeviceInfoEquals( |
| outEndpoint, |
| fakeDeviceInit.configurations[1].interfaces[0].alternates[1] |
| .endpoints[1]); |
| }, 'Can construct a USBEndpoint.'); |
| |
| 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); |
| try { |
| let endpoint = new USBEndpoint( |
| alternateInterface, alternateInterface.endpoints.length, 'in'); |
| assert_unreached('USBEndpoint should reject an invalid endpoint number'); |
| } catch (error) { |
| assert_equals(error.name, 'RangeError'); |
| } |
| }, 'Constructing a USBEndpoint with an invalid endpoint number throws a ' + |
| 'range error.'); |