| OLD | NEW | 
|    1 'use strict'; |    1 'use strict'; | 
|    2  |    2  | 
|    3 // Sometimes we need to test that using either the name, alias, or UUID |    3 // Sometimes we need to test that using either the name, alias, or UUID | 
|    4 // produces the same result. The following objects help us do that. |    4 // produces the same result. The following objects help us do that. | 
|    5 var generic_access = { |    5 var generic_access = { | 
|    6   alias: 0x1800, |    6   alias: 0x1800, | 
|    7   name: 'generic_access', |    7   name: 'generic_access', | 
|    8   uuid: '00001800-0000-1000-8000-00805f9b34fb' |    8   uuid: '00001800-0000-1000-8000-00805f9b34fb' | 
|    9 }; |    9 }; | 
|   10 var device_name = { |   10 var device_name = { | 
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  125 } |  125 } | 
|  126  |  126  | 
|  127 function runGarbageCollection() |  127 function runGarbageCollection() | 
|  128 { |  128 { | 
|  129   // Run gc() as a promise. |  129   // Run gc() as a promise. | 
|  130   return new Promise( |  130   return new Promise( | 
|  131       function(resolve, reject) { |  131       function(resolve, reject) { | 
|  132         GCController.collect(); |  132         GCController.collect(); | 
|  133         setTimeout(resolve, 0); |  133         setTimeout(resolve, 0); | 
|  134       }); |  134       }); | 
|  135   return Promise.resolve(); |  | 
|  136 } |  135 } | 
 |  136  | 
 |  137 // Creates |num_listeners| promises. Each adds an event listener | 
 |  138 // to object. The promises resolve once the object fires |event| but | 
 |  139 // reject if the event is fired before |object|.|func|() resolves. | 
 |  140 // Returns a promise that fulfills with the result of |object|.|func()| | 
 |  141 // and |event.target.value| of each of the other promises. | 
 |  142 function assert_event_fires_after_promise(object, func, event, num_listeners) { | 
 |  143   num_listeners = num_listeners !== undefined ? num_listeners : 1; | 
 |  144  | 
 |  145   if (object[func] === undefined) { | 
 |  146     return Promise.reject('Function \'' + func + '\' not available in object.'); | 
 |  147   } | 
 |  148   let should_resolve = false; | 
 |  149   let event_promises = []; | 
 |  150   for (let i = 0; i < num_listeners; i++) { | 
 |  151     event_promises.push(new Promise((resolve, reject) => { | 
 |  152       let event_listener = (e) => { | 
 |  153         object.removeEventListener(event, event_listener); | 
 |  154         if (should_resolve) { | 
 |  155           resolve(e.target.value); | 
 |  156         } else { | 
 |  157           reject(event + ' was triggered before the promise resolved.'); | 
 |  158         } | 
 |  159       }; | 
 |  160       object.addEventListener(event, event_listener); | 
 |  161     })); | 
 |  162   } | 
 |  163   return object[func]().then(result => { | 
 |  164     should_resolve = true; | 
 |  165     return Promise.all([result, ...event_promises]); | 
 |  166   }); | 
 |  167 } | 
 |  168  | 
 |  169 // Returns a promise that resolves after 100ms unless | 
 |  170 // the the event is fired on the object in which case | 
 |  171 // the promise rejects. | 
 |  172 function assert_no_events(object, event_name) { | 
 |  173   return new Promise((resolve, reject) => { | 
 |  174     let event_listener = (e) => { | 
 |  175       object.removeEventListener(event_name, event_listener); | 
 |  176       assert_unreached('Object should not fire an event.'); | 
 |  177     }; | 
 |  178     object.addEventListener(event_name, event_listener); | 
 |  179     // TODO(ortuno): Remove timeout. | 
 |  180     // http://crbug.com/543884 | 
 |  181     setTimeout(() => { | 
 |  182       object.removeEventListener(event_name, event_listener); | 
 |  183       resolve(); | 
 |  184     }, 100); | 
 |  185   }); | 
 |  186 } | 
| OLD | NEW |