1 description("Tests that when Geolocation permission has been denied prior to a call to a Geolocation method, the error callback is invoked with code PERMISSION_DENIED, when the Geolocation service encounters an error.");
3 if (!window.testRunner || !window.internals)
4 debug('This test can not run without testRunner or internals');
6 internals.setGeolocationClientMock(document);
7 internals.setGeolocationPermission(document, false);
8 internals.setGeolocationPosition(document, 51.478, -0.166, 100);
11 navigator.geolocation.getCurrentPosition(function(p) {
12 testFailed('Success callback invoked unexpectedly');
16 shouldBe('error.code', 'error.PERMISSION_DENIED');
17 shouldBe('error.message', '"User denied Geolocation"');
22 function continueTest()
24 // Make another request, with permission already denied.
25 internals.setGeolocationPositionUnavailableError(document, 'test');
27 navigator.geolocation.getCurrentPosition(function(p) {
28 testFailed('Success callback invoked unexpectedly');
32 shouldBe('error.code', 'error.PERMISSION_DENIED');
33 shouldBe('error.message', '"User denied Geolocation"');
38 window.jsTestIsAsync = true;