Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / fast / dom / Geolocation / script-tests / reentrant-permission-denied.js
blobf1f003021cba0102b0d3546a65113b61ba250dac
1 description("Tests that reentrant calls to Geolocation methods from the error callback due to a PERMISSION_DENIED error are OK.");
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.0);
10 var error;
11 function checkPermissionError(e) {
12     error = e;
13     shouldBe('error.code', 'error.PERMISSION_DENIED');
14     shouldBe('error.message', '"User denied Geolocation"');
17 var errorCallbackInvoked = false;
18 navigator.geolocation.getCurrentPosition(function(p) {
19     testFailed('Success callback invoked unexpectedly');
20     finishJSTest();
21 }, function(e) {
22     if (errorCallbackInvoked) {
23         testFailed('Error callback invoked unexpectedly');
24         finishJSTest();
25     }
26     errorCallbackInvoked = true;
27     checkPermissionError(e);
28     continueTest();
29 });
31 function continueTest() {
32     navigator.geolocation.getCurrentPosition(function(p) {
33         testFailed('Success callback invoked unexpectedly');
34         finishJSTest();
35     }, function(e) {
36         checkPermissionError(e);
37         finishJSTest();
38     });
41 window.jsTestIsAsync = true;