| <!DOCTYPE html> | |
| <meta charset="utf-8" /> | |
| <title>Permissions API - Revocation Tests</title> | |
| <link rel="help" href="https://www.w3.org/TR/permissions/" /> | |
| <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> | |
| <body> | |
| <script> | |
| promise_test(async (t) => { | |
| await test_driver.set_permission( | |
| { name: "geolocation" }, | |
| "granted" | |
| ); | |
| const status = await navigator.permissions.query({ | |
| name: "geolocation", | |
| }); | |
| assert_equals( | |
| status.state, | |
| "granted", | |
| 'Initial state is "granted"' | |
| ); | |
| const p = new Promise((resolve) => { | |
| status.addEventListener("change", resolve, { once: true }); | |
| }); | |
| await test_driver.set_permission({ name: "geolocation" }, "prompt"); | |
| await p; | |
| assert_equals(status.state, "prompt", 'Now in "prompt" state'); | |
| }, 'Transition "granted" -> "prompt" fires a "change" event'); | |
| promise_test(async (t) => { | |
| await test_driver.set_permission( | |
| { name: "geolocation" }, | |
| "granted" | |
| ); | |
| const status = await navigator.permissions.query({ | |
| name: "geolocation", | |
| }); | |
| assert_equals( | |
| status.state, | |
| "granted", | |
| 'Initial state is "granted"' | |
| ); | |
| const p = new Promise((resolve) => { | |
| status.addEventListener("change", resolve, { once: true }); | |
| }); | |
| await test_driver.set_permission({ name: "geolocation" }, "denied"); | |
| await p; | |
| assert_equals(status.state, "denied", 'Now in "denied" state'); | |
| }, 'Transition "granted" -> "denied" fires a "change" event'); | |
| </script> | |
| </body> |