Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / fast / dom / Geolocation / script-tests / permission-denied-already-error.js
blob252d4128a229bcd6b8b6ceb302dc79d430cfc729
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);
10 var error;
11 navigator.geolocation.getCurrentPosition(function(p) {
12     testFailed('Success callback invoked unexpectedly');
13     finishJSTest();
14 }, function(e) {
15     error = e;
16     shouldBe('error.code', 'error.PERMISSION_DENIED');
17     shouldBe('error.message', '"User denied Geolocation"');
18     debug('');
19     continueTest();
20 });
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');
29         finishJSTest();
30     }, function(e) {
31         error = e;
32         shouldBe('error.code', 'error.PERMISSION_DENIED');
33         shouldBe('error.message', '"User denied Geolocation"');
34         finishJSTest();
35     });
38 window.jsTestIsAsync = true;