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.');