| OLD | NEW |
| 1 'use strict'; | 1 'use strict'; |
| 2 | 2 |
| 3 // Wraps callback and calls reject_func if callback throws an error. | 3 // Wraps callback and calls reject_func if callback throws an error. |
| 4 class CallbackWrapper { | 4 class CallbackWrapper { |
| 5 constructor(callback, reject_func) { | 5 constructor(callback, reject_func) { |
| 6 this.wrapper_func_ = (args) => { | 6 this.wrapper_func_ = (args) => { |
| 7 try { | 7 try { |
| 8 callback(args); | 8 callback(args); |
| 9 } catch(e) { | 9 } catch(e) { |
| 10 reject_func(e); | 10 reject_func(e); |
| 11 } | 11 } |
| 12 } | 12 } |
| 13 } | 13 } |
| 14 | 14 |
| 15 get callback() { | 15 get callback() { |
| 16 return this.wrapper_func_; | 16 return this.wrapper_func_; |
| 17 } | 17 } |
| 18 } | 18 } |
| 19 | 19 |
| 20 function sensor_mocks(mojo) { | 20 function sensor_mocks(mojo) { |
| 21 return define('Generic Sensor API mocks', [ | 21 return define('Generic Sensor API mocks', [ |
| 22 'mojo/public/js/core', | 22 'mojo/public/js/core', |
| 23 'mojo/public/js/bindings', | 23 'mojo/public/js/bindings', |
| 24 'device/generic_sensor/public/interfaces/sensor_provider.mojom', | 24 'device/generic_sensor/public/interfaces/sensor_provider.mojom', |
| 25 'device/generic_sensor/public/interfaces/sensor.mojom', | 25 'device/generic_sensor/public/interfaces/sensor.mojom', |
| 26 ], (core, bindings, sensor_provider, sensor) => { | 26 'services/device/public/interfaces/constants.mojom', |
| 27 ], (core, bindings, sensor_provider, sensor, deviceConstants) => { |
| 27 | 28 |
| 28 // Helper function that returns resolved promise with result. | 29 // Helper function that returns resolved promise with result. |
| 29 function sensorResponse(success) { | 30 function sensorResponse(success) { |
| 30 return Promise.resolve({success}); | 31 return Promise.resolve({success}); |
| 31 } | 32 } |
| 32 | 33 |
| 33 // Class that mocks Sensor interface defined in sensor.mojom | 34 // Class that mocks Sensor interface defined in sensor.mojom |
| 34 class MockSensor { | 35 class MockSensor { |
| 35 constructor(sensorRequest, handle, offset, size, reportingMode) { | 36 constructor(sensorRequest, handle, offset, size, reportingMode) { |
| 36 this.client_ = null; | 37 this.client_ = null; |
| (...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 353 this.max_frequency_ = frequency; | 354 this.max_frequency_ = frequency; |
| 354 } | 355 } |
| 355 | 356 |
| 356 // Sets the minimum frequency for a concrete sensor. | 357 // Sets the minimum frequency for a concrete sensor. |
| 357 setMinimumSupportedFrequency(frequency) { | 358 setMinimumSupportedFrequency(frequency) { |
| 358 this.min_frequency_ = frequency; | 359 this.min_frequency_ = frequency; |
| 359 } | 360 } |
| 360 } | 361 } |
| 361 | 362 |
| 362 let mockSensorProvider = new MockSensorProvider; | 363 let mockSensorProvider = new MockSensorProvider; |
| 363 mojo.frameInterfaces.addInterfaceOverrideForTesting( | 364 mojo.connector.addInterfaceOverrideForTesting( |
| 365 deviceConstants.kServiceName, |
| 364 sensor_provider.SensorProvider.name, | 366 sensor_provider.SensorProvider.name, |
| 365 pipe => { | 367 pipe => { |
| 366 mockSensorProvider.bindToPipe(pipe); | 368 mockSensorProvider.bindToPipe(pipe); |
| 367 }); | 369 }); |
| 368 | 370 |
| 369 return Promise.resolve({ | 371 return Promise.resolve({ |
| 370 mockSensorProvider: mockSensorProvider, | 372 mockSensorProvider: mockSensorProvider, |
| 371 }); | 373 }); |
| 372 }); | 374 }); |
| 373 } | 375 } |
| 374 | 376 |
| 375 function sensor_test(func, name, properties) { | 377 function sensor_test(func, name, properties) { |
| 376 mojo_test(mojo => sensor_mocks(mojo).then(sensor => { | 378 mojo_test(mojo => sensor_mocks(mojo).then(sensor => { |
| 377 // Clean up and reset mock sensor stubs asynchronously, so that the blink | 379 // Clean up and reset mock sensor stubs asynchronously, so that the blink |
| 378 // side closes its proxies and notifies JS sensor objects before new test is | 380 // side closes its proxies and notifies JS sensor objects before new test is |
| 379 // started. | 381 // started. |
| 380 let onSuccess = () => { | 382 let onSuccess = () => { |
| 381 sensor.mockSensorProvider.reset(); | 383 sensor.mockSensorProvider.reset(); |
| 382 return new Promise((resolve, reject) => { setTimeout(resolve, 0); }); | 384 return new Promise((resolve, reject) => { setTimeout(resolve, 0); }); |
| 383 }; | 385 }; |
| 384 | 386 |
| 385 let onFailure = error => { | 387 let onFailure = error => { |
| 386 sensor.mockSensorProvider.reset(); | 388 sensor.mockSensorProvider.reset(); |
| 387 return new Promise((resolve, reject) => { setTimeout(() => {reject(error);
}, 0); }); | 389 return new Promise((resolve, reject) => { setTimeout(() => {reject(error);
}, 0); }); |
| 388 }; | 390 }; |
| 389 | 391 |
| 390 return Promise.resolve(func(sensor)).then(onSuccess, onFailure); | 392 return Promise.resolve(func(sensor)).then(onSuccess, onFailure); |
| 391 }), name, properties); | 393 }), name, properties); |
| 392 } | 394 } |
| OLD | NEW |