- From: Wanming Lin via GitHub <sysbot+gh@w3.org>
- Date: Fri, 14 Sep 2018 08:58:34 +0000
- To: public-device-apis-log@w3.org
Probably defining following 4 methods to WPT's testdriver.js respectively corresponding to extension commands defined in this spec.
```
test_driver.create_sensor(sensorType, configurations) //no return value
test_driver.get_sensor(sensorType) //return serialized mock sensor properties
test_driver.update_sensor_reading(sensorType, readingValues) //no return value
test_driver.delete_sensor(sensorType) //no return value
```
Then override them in Chromium's testdriver-vendor.js with [mock mojo interface](https://chromium.googlesource.com/chromium/src.git/+/master/third_party/WebKit/LayoutTests/http/tests/resources/sensor-helpers.js),
1. override `test_driver.create_sensor(sensorType, configurations)`:
```
window.test_driver_internal.create_sensor = function(sensorType, configurations) {
return new Promise(function(resolve, reject) {
if (window.chrome) {
let sensorProvider = sensorMocks();
sensorProvider.initialize(configurations.sensorType);
if(configurations.connected == false)
sensorProvider.setGetSensorShouldFail(true);
if(configurations.maxSamplingFrequency != null)
sensorProvider.setMaximumSupportedFrequency(configurations.maxSamplingFrequency);
...
resolve();
} else {
reject(new Error("error"));
}
});
};
```
2. override `test_driver.get_sensor(sensorType)`:
```
let mockSensor = sensorProvider.getCreatedSensor(sensorType);
let samplingFrequency= mockSensor.getSamplingFrequency();
let ...
let serializedSensor = {RequestedSamplingFrequency: samplingFrequency, maxSamplingFrequency: ....};
return new Promise(resolve(serializedSensor));
```
3. override `test_driver.update_sensor_reading(sensorType, readingValues)`:
```
let mockSensor = sensorProvider.getCreatedSensor(sensorType),
mockSensor.setUpdateSensorReadingFunction(updateReading(readingValues));
```
4. override `test_driver.delete_sensor(sensorType)`:
` sensorProvider.reset(sensorType);`
Here comes up with a problem, that "create mock sensor" command(`test_driver.create_sensor(sensorType, configurations)`) do not return a mock sensor instance, while in Chromium's testdriver-vendor.js it definitely needs returning a `sensorProvider` instance, then pass it to rest methods. Is that possible to restore it in somewhere as a global variable? Do you have any good idea?
--
GitHub Notification of comment by Honry
Please view or discuss this issue at https://github.com/w3c/sensors/pull/369#issuecomment-421281618 using your GitHub account
Received on Friday, 14 September 2018 08:58:36 UTC