| OLD | NEW |
| (Empty) |
| 1 'use strict'; | |
| 2 | |
| 3 function usb_test(func, name, properties) { | |
| 4 promise_test(() => { | |
| 5 return navigator.usb.test.initialize().then(() => { | |
| 6 let testResult = func(); | |
| 7 let cleanup = () => { | |
| 8 navigator.usb.test.reset(); | |
| 9 }; | |
| 10 testResult.then(cleanup, cleanup); | |
| 11 return testResult; | |
| 12 }); | |
| 13 }, name, properties); | |
| 14 } | |
| 15 | |
| 16 // Returns a promise that is resolved when the next USBConnectionEvent of the | |
| 17 // given type is received. | |
| 18 function connectionEventPromise(eventType) { | |
| 19 return new Promise(resolve => { | |
| 20 let eventHandler = e => { | |
| 21 assert_true(e instanceof USBConnectionEvent); | |
| 22 navigator.usb.removeEventListener(eventType, eventHandler); | |
| 23 resolve(e.device); | |
| 24 }; | |
| 25 navigator.usb.addEventListener(eventType, eventHandler); | |
| 26 }); | |
| 27 } | |
| 28 | |
| 29 // Creates a fake device and returns a promise that resolves once the | |
| 30 // 'connect' event is fired for the fake device. The promise is resolved with | |
| 31 // an object containing the fake USB device and the corresponding USBDevice. | |
| 32 function getFakeDevice() { | |
| 33 let promise = connectionEventPromise('connect'); | |
| 34 let fakeDevice = navigator.usb.test.addFakeDevice(fakeDeviceInit); | |
| 35 return promise.then(device => { | |
| 36 return { device: device, fakeDevice: fakeDevice }; | |
| 37 }); | |
| 38 } | |
| 39 | |
| 40 // Disconnects the given device and returns a promise that is resolved when it | |
| 41 // is done. | |
| 42 function waitForDisconnect(fakeDevice) { | |
| 43 let promise = connectionEventPromise('disconnect'); | |
| 44 fakeDevice.disconnect(); | |
| 45 return promise; | |
| 46 } | |
| 47 | |
| 48 function assertRejectsWithError(promise, name, message) { | |
| 49 return promise.then(() => { | |
| 50 assert_unreached('expected promise to reject with ' + name); | |
| 51 }, error => { | |
| 52 assert_equals(error.name, name); | |
| 53 if (message !== undefined) | |
| 54 assert_equals(error.message, message); | |
| 55 }); | |
| 56 } | |
| 57 | |
| 58 function assertDeviceInfoEquals(usbDevice, deviceInit) { | |
| 59 for (var property in deviceInit) { | |
| 60 if (property == 'activeConfigurationValue') { | |
| 61 if (deviceInit.activeConfigurationValue == 0) { | |
| 62 assert_equals(usbDevice.configuration, null); | |
| 63 } else { | |
| 64 assert_equals(usbDevice.configuration.configurationValue, | |
| 65 deviceInit.activeConfigurationValue); | |
| 66 } | |
| 67 } else if (Array.isArray(deviceInit[property])) { | |
| 68 assert_equals(usbDevice[property].length, deviceInit[property].length); | |
| 69 for (var i = 0; i < usbDevice[property].length; ++i) | |
| 70 assertDeviceInfoEquals(usbDevice[property][i], deviceInit[property][i]); | |
| 71 } else { | |
| 72 assert_equals(usbDevice[property], deviceInit[property], property); | |
| 73 } | |
| 74 } | |
| 75 } | |
| 76 | |
| 77 // TODO(reillyg): Remove when jyasskin upstreams this to testharness.js: | |
| 78 // https://crbug.com/509058. | |
| 79 function callWithKeyDown(functionCalledOnKeyPress) { | |
| 80 return new Promise(resolve => { | |
| 81 function onKeyPress() { | |
| 82 document.removeEventListener('keypress', onKeyPress, false); | |
| 83 resolve(functionCalledOnKeyPress()); | |
| 84 } | |
| 85 document.addEventListener('keypress', onKeyPress, false); | |
| 86 | |
| 87 eventSender.keyDown(' ', []); | |
| 88 }); | |
| 89 } | |
| 90 | |
| 91 function runGarbageCollection() { | |
| 92 // Run gc() as a promise. | |
| 93 return new Promise((resolve, reject) => { | |
| 94 GCController.collect(); | |
| 95 setTimeout(resolve, 0); | |
| 96 }); | |
| 97 } | |
| OLD | NEW |