forked from mirrors/gecko-dev
Automatic update from web-platform-tests geolocation: Fix PositionOptions.https.html This change fixes the PositionOptions.https.html Web Platform Tests by configuring the Geolocation API so that no location is available in web_tests. This allows, once 'geolocation' permission has been granted, the tests to run as expected. Follow-up work in this area could add a test_driver method to set a simulated geoposition and move the tests in web_tests/geolocation-api into external/wpt/geolocation-API. Bug: 745079 Change-Id: Ib916f6a2db779c39d6104db0d5a06af6751f7059 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2519932 Reviewed-by: Roger McFarlane <rogerm@chromium.org> Reviewed-by: danakj <danakj@chromium.org> Commit-Queue: Reilly Grant <reillyg@chromium.org> Cr-Commit-Position: refs/heads/master@{#825094} -- wpt-commits: 376a27a796d6dbf51c4c22077530f54d87378135 wpt-pr: 26405
101 lines
3.7 KiB
HTML
101 lines
3.7 KiB
HTML
<!DOCTYPE HTML>
|
|
<meta charset="utf-8">
|
|
<title>Geolocation Test: PositionOptions tests</title>
|
|
<link rel="help" href="http://www.w3.org/TR/geolocation-API/#position_options_interface">
|
|
<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 src='support.js'></script>
|
|
|
|
<script>
|
|
// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00123
|
|
test(function() {
|
|
try {
|
|
geo.getCurrentPosition(dummyFunction, null, {enableHighAccuracy: "boom"});
|
|
geo.getCurrentPosition(dummyFunction, null, {enableHighAccuracy: 321});
|
|
geo.getCurrentPosition(dummyFunction, null, {enableHighAccuracy: -Infinity});
|
|
geo.getCurrentPosition(dummyFunction, null, {enableHighAccuracy: {foo: 5}});
|
|
} catch(e) {
|
|
assert_unreached('An exception was thrown unexpectedly: ' + e.message);
|
|
}
|
|
}, 'Call getCurrentPosition with wrong type for enableHighAccuracy. No exception expected.');
|
|
|
|
// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00124
|
|
test(function() {
|
|
try {
|
|
geo.watchPosition(dummyFunction, null, {enableHighAccuracy: "boom"});
|
|
geo.watchPosition(dummyFunction, null, {enableHighAccuracy: 321});
|
|
geo.watchPosition(dummyFunction, null, {enableHighAccuracy: -Infinity});
|
|
geo.watchPosition(dummyFunction, null, {enableHighAccuracy: {foo: 5}});
|
|
} catch(e) {
|
|
assert_unreached('An exception was thrown unexpectedly: ' + e.message);
|
|
}
|
|
}, 'Call watchPosition with wrong type for enableHighAccuracy. No exception expected.');
|
|
|
|
// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00086, 00088, 00091 and 00092
|
|
promise_test(async function() {
|
|
await test_driver.set_permission({name: 'geolocation'}, 'granted');
|
|
|
|
var t86 = async_test('Set timeout and maximumAge to 0, check that timeout error raised (getCurrentPosition)'),
|
|
t88 = async_test('Set timeout and maximumAge to 0, check that timeout error raised (watchPosition)'),
|
|
t91 = async_test('Check that a negative timeout value is equivalent to a 0 timeout value (getCurrentLocation)'),
|
|
t92 = async_test('Check that a negative timeout value is equivalent to a 0 timeout value (watchPosition)');
|
|
|
|
try {
|
|
geo.getCurrentPosition(
|
|
t86.unreached_func('A success callback was invoked unexpectedly'),
|
|
t86.step_func_done(function(err) {
|
|
assert_equals(err.code, err.TIMEOUT);
|
|
}),
|
|
{timeout: 0, maximumAge: 0}
|
|
);
|
|
} catch(e) {
|
|
t86.step(function() {
|
|
assert_unreached('An exception was thrown unexpectedly: ' + e.message);
|
|
});
|
|
}
|
|
|
|
try {
|
|
geo.watchPosition(
|
|
t88.unreached_func('A success callback was invoked unexpectedly'),
|
|
t88.step_func_done(function(err) {
|
|
assert_equals(err.code, err.TIMEOUT);
|
|
}),
|
|
{timeout: 0, maximumAge: 0}
|
|
);
|
|
} catch(e) {
|
|
t88.step(function() {
|
|
assert_unreached('An exception was thrown unexpectedly: ' + e.message);
|
|
});
|
|
}
|
|
|
|
try {
|
|
geo.getCurrentPosition(
|
|
t91.unreached_func('A success callback was invoked unexpectedly'),
|
|
t91.step_func_done(function(err) {
|
|
assert_equals(err.code, err.TIMEOUT);
|
|
}),
|
|
{timeout:-1, maximumAge: 0}
|
|
);
|
|
} catch(e) {
|
|
t91.step(function() {
|
|
assert_unreached('An exception was thrown unexpectedly: ' + e.message);
|
|
});
|
|
}
|
|
|
|
try {
|
|
geo.watchPosition(
|
|
t92.unreached_func('A success callback was invoked unexpectedly'),
|
|
t92.step_func_done(function(err) {
|
|
assert_equals(err.code, err.TIMEOUT);
|
|
}),
|
|
{timeout: -1, maximumAge: 0}
|
|
);
|
|
} catch(e) {
|
|
t92.step(function() {
|
|
assert_unreached('An exception was thrown unexpectedly: ' + e.message);
|
|
});
|
|
}
|
|
}, 'PositionOptions tests');
|
|
</script>
|