Commit f89e4a58 authored by Wanming Lin's avatar Wanming Lin Committed by Commit Bot

[sensor] Set permissions in WPT tests

Thanks to the new set_permission method on test_runner, this CL
makes sure the sensor WPT tests with first granted permission and
adds tests for sensor permission status.

Change-Id: Id72e60f92043986c3fe3517faf0c79716a1f03c8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2104654Reviewed-by: default avatarRaphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: default avatarReilly Grant <reillyg@chromium.org>
Commit-Queue: Wanming Lin <wanming.lin@intel.com>
Cr-Commit-Position: refs/heads/master@{#751207}
parent 55a34e32
<!DOCTYPE html>
<meta charset=utf-8>
<title>sensor: permission</title>
<link rel="help" href="https://w3c.github.io/sensors/"/>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script>
"use strict";
for (const entry of ['accelerometer', 'gyroscope',
'magnetometer', 'ambient-light-sensor']) {
promise_test(async t => {
await test_driver.set_permission({ name: entry }, 'denied', false);
const status = await navigator.permissions.query({ name: entry });
assert_class_string(status, "PermissionStatus");
assert_equals(status.state, "denied");
}, `Deny ${entry} permission should work.`);
promise_test(async t => {
await test_driver.set_permission({ name: entry }, 'granted', false);
const status = await navigator.permissions.query({ name: entry });
assert_class_string(status, "PermissionStatus");
assert_equals(status.state, "granted");
}, `Grant ${entry} permission should work.`);
};
</script>
\ No newline at end of file
......@@ -20,6 +20,8 @@ const loadChromiumResources = async () => {
'/gen/mojo/public/mojom/base/string16.mojom.js',
'/gen/services/device/public/mojom/sensor.mojom.js',
'/gen/services/device/public/mojom/sensor_provider.mojom.js',
'/resources/testdriver.js',
'/resources/testdriver-vendor.js',
'/resources/chromium/generic_sensor_mocks.js',
];
......
......@@ -309,18 +309,15 @@ var GenericSensorTest = (() => {
Object.freeze(this); // Make it immutable.
}
initialize() {
async initialize() {
if (testInternal.initialized)
throw new Error('Call reset() before initialize().');
if (window.testRunner) {
// Grant sensor permissions for Chromium testrunner.
['accelerometer', 'gyroscope',
'magnetometer', 'ambient-light-sensor'].forEach((entry) => {
window.testRunner.setPermission(entry, 'granted',
location.origin, location.origin);
});
}
// Grant sensor permissions for Chromium testdriver.
for (const entry of ['accelerometer', 'gyroscope',
'magnetometer', 'ambient-light-sensor']) {
await test_driver.set_permission({ name: entry }, 'granted', false);
};
testInternal.sensorProvider = new MockSensorProvider;
testInternal.initialized = true;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment