fune/testing/web-platform/tests/generic-sensor
kaixinjxq 273f4577f8 Bug 1583093 [wpt PR 19214] - Modify ProximitySensor tests, a=testonly
Automatic update from web-platform-tests
Modify ProximitySensor tests (#19214)

* Modify ProximitySensor tests

- Support mock sensor
- Add verifyProSensorReading function

--

wpt-commits: ccd18e2437e2d2c1434bd0e9f4aca07796e01427
wpt-pr: 19214
2019-10-07 10:09:45 +00:00
..
resources
generic-sensor-feature-policy-test.sub.js
generic-sensor-iframe-tests.sub.js
generic-sensor-tests.js
idlharness.https.window.js
META.yml
README.md
SensorErrorEvent-constructor.https.html

The resources/generic-sensor-helpers.js tests require an implementation of the GenericSensorTest interface, which should emulate platform sensor backends. The GenericSensorTest interface is defined as:

  class MockSensor {
    // Sets fake data that is used to deliver sensor reading updates.
    async setSensorReading(FrozenArray<double> readingData);
    setStartShouldFail(boolean shouldFail); // Sets flag that forces sensor to fail.
    getSamplingFrequency(); // Return the sampling frequency.
  };

  class MockSensorProvider {
    // Sets flag that forces mock SensorProvider to fail when getSensor() is
    // invoked.
    setGetSensorShouldFail(DOMString sensorType, boolean shouldFail);
    // Sets flag that forces mock SensorProvider to permissions denied when
    // getSensor() is invoked.
    setPermissionsDenied(DOMString sensorType, boolean permissionsDenied);
    getCreatedSensor(DOMString sensorType); // Return `MockSensor` interface.
    setMaximumSupportedFrequency(double frequency); // Sets the maximum frequency.
    setMinimumSupportedFrequency(double frequency); // Sets the minimum frequency.
  }

  class GenericSensorTest {
    initialize();  // Sets up the testing environment.
    async reset(); // Frees the resources.
    getSensorProvider(); // Returns `MockSensorProvider` interface.
  };

The Chromium implementation of the GenericSensorTest interface is located in generic_sensor_mocks.js.

Other browser vendors should provide their own implementations of the GenericSensorTest interface.

Known issue: a WebDriver extension is a better approach for the Generic Sensor tests automation.