| <!DOCTYPE html> | |
| <meta charset="utf-8"/> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src="/resources/testdriver.js?feature=bidi"></script> | |
| <script src="/resources/testdriver-vendor.js"></script> | |
| <script> | |
| promise_setup(async () => { | |
| // Ensure permission is granted before proceeding. | |
| await test_driver.bidi.permissions.set_permission({ | |
| descriptor: {name: "geolocation"}, | |
| state: "granted", | |
| }); | |
| }); | |
| promise_test(async (t) => { | |
| t.add_cleanup(async () => { | |
| await test_driver.bidi.emulation.set_geolocation_override( | |
| {coordinates: null}); | |
| }); | |
| const latitude = 51.478; | |
| const longitude = -0.166; | |
| const accuracy = 100; | |
| await test_driver.bidi.emulation.set_geolocation_override({ | |
| coordinates: {latitude, longitude, accuracy} | |
| }); | |
| const position = await new Promise( | |
| (resolve, reject) => | |
| window.navigator.geolocation.getCurrentPosition( | |
| position => resolve(position.coords.toJSON()), | |
| error => reject(error), | |
| {timeout: 200} | |
| )); | |
| assert_equals(position.latitude, latitude); | |
| assert_equals(position.longitude, longitude); | |
| assert_equals(position.accuracy, accuracy); | |
| }, "Tests Geolocation success callback"); | |
| </script> |