| <!DOCTYPE html> | |
| <meta charset="utf-8" /> | |
| <title>Geolocation Test: getCurrentPosition location access denied</title> | |
| <link rel="help" href="http://www.w3.org/TR/geolocation-API/#privacy_for_uas" /> | |
| <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> | |
| <script> | |
| promise_test(async (t) => { | |
| t.add_cleanup(() => { | |
| return test_driver.set_permission({ name: "geolocation" }, "prompt"); | |
| }); | |
| await test_driver.set_permission({ name: "geolocation" }, "denied"); | |
| const error = await new Promise((resolve, reject) => { | |
| let calledAsync = false; | |
| navigator.geolocation.getCurrentPosition(reject, t.step_func((error) => { | |
| assert_true(calledAsync, "Expected callback to be called asynchronously"); | |
| resolve(error); | |
| })); | |
| calledAsync = true; | |
| }); | |
| assert_true( | |
| error instanceof GeolocationPositionError, | |
| "should be a GeolocationPositionError" | |
| ); | |
| assert_equals(error.code, error.PERMISSION_DENIED); | |
| }, "User denies access, check that error callback is called with correct code"); | |
| </script> |