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

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

Issue 2698083007: Port device_generic_sensor to be hosted in Device Service. (Closed)
Patch Set: Port device_generic_sensor to be hosted in Device Service. 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 // 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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698