65 lines
No EOL
2.1 KiB
HTML
65 lines
No EOL
2.1 KiB
HTML
<!doctype html>
|
|
<meta charset=utf-8>
|
|
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testdriver.js"></script>
|
|
<script src="/resources/testdriver-vendor.js"></script>
|
|
<!-- no testharnessreport.js -->
|
|
<script src="../helpers.js"></script>
|
|
<div id=log></div>
|
|
<script>
|
|
"use strict";
|
|
|
|
test_driver.set_test_context(window.top);
|
|
|
|
promise_test(async t => {
|
|
const permission = await navigator.permissions.query({name: "storage-access"});
|
|
assert_equals(permission.name, "storage-access");
|
|
assert_equals(permission.state, "prompt");
|
|
}, "Permission default state can be queried");
|
|
|
|
promise_test(async t => {
|
|
t.add_cleanup(async () => {
|
|
await test_driver.set_permission({ name: 'storage-access' }, 'prompt');
|
|
});
|
|
await test_driver.set_permission({ name: 'storage-access' }, 'granted');
|
|
|
|
const permission = await navigator.permissions.query({name: "storage-access"});
|
|
assert_equals(permission.name, "storage-access");
|
|
assert_equals(permission.state, "granted");
|
|
}, "Permission granted state can be queried");
|
|
|
|
promise_test(async t => {
|
|
t.add_cleanup(async () => {
|
|
await test_driver.set_permission({ name: 'storage-access' }, 'prompt');
|
|
});
|
|
await test_driver.set_permission({ name: 'storage-access' }, 'denied');
|
|
|
|
const permission = await navigator.permissions.query({name: "storage-access"});
|
|
assert_equals(permission.name, "storage-access");
|
|
assert_equals(permission.state, "prompt");
|
|
|
|
await test_driver.set_permission({ name: 'storage-access' }, 'prompt');
|
|
}, "Permission denied state is hidden");
|
|
|
|
promise_test(async t => {
|
|
t.add_cleanup(async () => {
|
|
await test_driver.set_permission({ name: 'storage-access' }, 'prompt');
|
|
});
|
|
|
|
const permission = await navigator.permissions.query({name: "storage-access"});
|
|
|
|
const p = new Promise(resolve => {
|
|
permission.addEventListener("change", (event) => resolve(event), { once: true });
|
|
});
|
|
|
|
await test_driver.set_permission({ name: 'storage-access' }, 'granted');
|
|
await document.requestStorageAccess();
|
|
|
|
const event = await p;
|
|
|
|
assert_equals(event.target.name, "storage-access");
|
|
assert_equals(event.target.state, "granted");
|
|
}, "Permission state can be observed");
|
|
|
|
</script> |