revocation.https.html (2041B)
1 <!DOCTYPE html> 2 <meta charset="utf-8" /> 3 <title>Permissions API - Revocation Tests</title> 4 <link rel="help" href="https://www.w3.org/TR/permissions/" /> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 <script src="/resources/testdriver.js"></script> 8 <script src="/resources/testdriver-vendor.js"></script> 9 10 <body> 11 <script> 12 promise_test(async (t) => { 13 await test_driver.set_permission( 14 { name: "geolocation" }, 15 "granted" 16 ); 17 const status = await navigator.permissions.query({ 18 name: "geolocation", 19 }); 20 assert_equals( 21 status.state, 22 "granted", 23 'Initial state is "granted"' 24 ); 25 26 const p = new Promise((resolve) => { 27 status.addEventListener("change", resolve, { once: true }); 28 }); 29 30 await test_driver.set_permission({ name: "geolocation" }, "prompt"); 31 await p; 32 33 assert_equals(status.state, "prompt", 'Now in "prompt" state'); 34 }, 'Transition "granted" -> "prompt" fires a "change" event'); 35 36 promise_test(async (t) => { 37 await test_driver.set_permission( 38 { name: "geolocation" }, 39 "granted" 40 ); 41 const status = await navigator.permissions.query({ 42 name: "geolocation", 43 }); 44 assert_equals( 45 status.state, 46 "granted", 47 'Initial state is "granted"' 48 ); 49 50 const p = new Promise((resolve) => { 51 status.addEventListener("change", resolve, { once: true }); 52 }); 53 54 await test_driver.set_permission({ name: "geolocation" }, "denied"); 55 await p; 56 assert_equals(status.state, "denied", 'Now in "denied" state'); 57 }, 'Transition "granted" -> "denied" fires a "change" event'); 58 </script> 59 </body>