Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!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});
});
await test_driver.bidi.emulation.set_geolocation_override({
error: {type: "positionUnavailable"}
});
const error = await new Promise(
(resolve, reject) =>
window.navigator.geolocation.getCurrentPosition(
() => reject("Unexpected success callback"),
error => resolve({
code: error.code,
message: error.message,
PERMISSION_DENIED: error.PERMISSION_DENIED,
POSITION_UNAVAILABLE: error.POSITION_UNAVAILABLE,
TIMEOUT: error.TIMEOUT
}),
{timeout: 1000}
));
assert_equals(error.code, 2);
// The message value is not specified.
assert_not_equals(error.message, undefined);
assert_equals(error.PERMISSION_DENIED, 1);
assert_equals(error.POSITION_UNAVAILABLE, 2);
assert_equals(error.TIMEOUT, 3);
}, "Tests Geolocation error callback");
</script>