Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(224)

Side by Side Diff: third_party/WebKit/LayoutTests/usb/resources/usb-helpers.js

Issue 2816663002: Ensure tests don't depend on fake devices being added synchronously (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 'use strict'; 1 'use strict';
2 2
3 function usb_test(func, name, properties) { 3 function usb_test(func, name, properties) {
4 promise_test(() => { 4 promise_test(() => {
5 return navigator.usb.test.initialize().then(() => { 5 return navigator.usb.test.initialize().then(() => {
6 let testResult = func(); 6 let testResult = func();
7 let cleanup = () => { 7 let cleanup = () => {
8 navigator.usb.test.reset(); 8 navigator.usb.test.reset();
9 }; 9 };
10 testResult.then(cleanup, cleanup); 10 testResult.then(cleanup, cleanup);
11 return testResult; 11 return testResult;
12 }); 12 });
13 }, name, properties); 13 }, name, properties);
14 } 14 }
15 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 function getConnectedDevice(deviceInit) {
ortuno 2017/04/12 03:31:07 Comment what the function does. Optional: You mig
Reilly Grant (use Gerrit) 2017/04/12 22:47:07 Done.
30 let promise = connectionEventPromise('connect');
31 navigator.usb.test.addFakeDevice(deviceInit);
32 return promise;
33 }
34
16 function assertRejectsWithError(promise, name, message) { 35 function assertRejectsWithError(promise, name, message) {
17 return promise.then(() => { 36 return promise.then(() => {
18 assert_unreached('expected promise to reject with ' + name); 37 assert_unreached('expected promise to reject with ' + name);
19 }, error => { 38 }, error => {
20 assert_equals(error.name, name); 39 assert_equals(error.name, name);
21 if (message !== undefined) 40 if (message !== undefined)
22 assert_equals(error.message, message); 41 assert_equals(error.message, message);
23 }); 42 });
24 } 43 }
25 44
(...skipping 30 matching lines...) Expand all
56 }); 75 });
57 } 76 }
58 77
59 function runGarbageCollection() { 78 function runGarbageCollection() {
60 // Run gc() as a promise. 79 // Run gc() as a promise.
61 return new Promise((resolve, reject) => { 80 return new Promise((resolve, reject) => {
62 GCController.collect(); 81 GCController.collect();
63 setTimeout(resolve, 0); 82 setTimeout(resolve, 0);
64 }); 83 });
65 } 84 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698