| <!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> |