// META: timeout=long // META: script=/resources/WebIDLParser.js // META: script=/resources/idlharness.js // META: script=/resources/test-only-api.js // META: script=/webusb/resources/fake-devices.js // META: script=/webusb/resources/usb-helpers.js 'use strict'; idl_test( ['webusb'], ['permissions', 'html', 'dom'], async idl_array => { if (self.GLOBAL.isWindow()) { idl_array.add_objects({ Navigator: ['navigator'] }); } else if (self.GLOBAL.isWorker()) { idl_array.add_objects({ WorkerNavigator: ['navigator'] }); } idl_array.add_objects({ USB: ['navigator.usb'], USBAlternateInterface: ['usbAlternateInterface'], USBConfiguration: ['usbConfiguration'], USBConnectionEvent: ['usbConnectionEvent'], USBDevice: ['usbDevice'], USBEndpoint: ['usbEndpoint'], USBInterface: ['usbInterface'], USBInTransferResult: ['new USBInTransferResult("ok")'], USBOutTransferResult: ['new USBOutTransferResult("ok")'], USBIsochronousInTransferResult: ['new USBIsochronousInTransferResult([])'], USBIsochronousOutTransferResult: ['new USBIsochronousOutTransferResult([])'], USBIsochronousInTransferPacket: ['new USBIsochronousInTransferPacket("ok")'], USBIsochronousOutTransferPacket: ['new USBIsochronousOutTransferPacket("ok")'], }); return usb_test(async () => { // Ignored errors are surfaced in idlharness.js's test_object below. self.usbDevice = await getFakeDevice().device; self.usbConfiguration = usbDevice.configurations[0]; self.usbInterface = usbConfiguration.interfaces[0]; self.usbAlternateInterface = usbInterface.alternates[0]; self.usbEndpoint = usbAlternateInterface.endpoints[0]; self.usbConnectionEvent = new USBConnectionEvent('connect', { device: usbDevice }); }, 'USB device setup'); } );