permissions-iframe.https.html (2201B)
1 <!doctype html> 2 <meta charset=utf-8> 3 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testdriver.js"></script> 6 <script src="/resources/testdriver-vendor.js"></script> 7 <!-- no testharnessreport.js --> 8 <script src="../helpers.js"></script> 9 <div id=log></div> 10 <script> 11 "use strict"; 12 13 test_driver.set_test_context(window.top); 14 15 promise_test(async t => { 16 const permission = await navigator.permissions.query({name: "storage-access"}); 17 assert_equals(permission.name, "storage-access"); 18 assert_equals(permission.state, "prompt"); 19 }, "Permission default state can be queried"); 20 21 promise_test(async t => { 22 t.add_cleanup(async () => { 23 await test_driver.set_permission({ name: 'storage-access' }, 'prompt'); 24 }); 25 await test_driver.set_permission({ name: 'storage-access' }, 'granted'); 26 27 const permission = await navigator.permissions.query({name: "storage-access"}); 28 assert_equals(permission.name, "storage-access"); 29 assert_equals(permission.state, "granted"); 30 }, "Permission granted state can be queried"); 31 32 promise_test(async t => { 33 t.add_cleanup(async () => { 34 await test_driver.set_permission({ name: 'storage-access' }, 'prompt'); 35 }); 36 await test_driver.set_permission({ name: 'storage-access' }, 'denied'); 37 38 const permission = await navigator.permissions.query({name: "storage-access"}); 39 assert_equals(permission.name, "storage-access"); 40 assert_equals(permission.state, "prompt"); 41 42 await test_driver.set_permission({ name: 'storage-access' }, 'prompt'); 43 }, "Permission denied state is hidden"); 44 45 promise_test(async t => { 46 t.add_cleanup(async () => { 47 await test_driver.set_permission({ name: 'storage-access' }, 'prompt'); 48 }); 49 50 const permission = await navigator.permissions.query({name: "storage-access"}); 51 52 const p = new Promise(resolve => { 53 permission.addEventListener("change", (event) => resolve(event), { once: true }); 54 }); 55 56 await test_driver.set_permission({ name: 'storage-access' }, 'granted'); 57 await document.requestStorageAccess(); 58 59 const event = await p; 60 61 assert_equals(event.target.name, "storage-access"); 62 assert_equals(event.target.state, "granted"); 63 }, "Permission state can be observed"); 64 65 </script>