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 // Prime the Geolocation instance by denying permission.
4 if (window.layoutTestController) {
5 layoutTestController.setGeolocationPermission(false);
6 layoutTestController.setMockGeolocationPosition(51.478, -0.166, 100);
8 debug('This test can not be run without the LayoutTestController');
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 if (window.layoutTestController)
26 layoutTestController.setMockGeolocationError(2, 'test');
28 navigator.geolocation.getCurrentPosition(function(p) {
29 testFailed('Success callback invoked unexpectedly');
33 shouldBe('error.code', 'error.PERMISSION_DENIED');
34 shouldBe('error.message', '"User denied Geolocation"');
39 window.jsTestIsAsync = true;