OLD | NEW |
1 description("Tests that when a position is available, no callbacks are invoked u
ntil permission is denied."); | 1 description("Tests that when a position is available, no callbacks are invoked u
ntil permission is denied."); |
2 | 2 |
3 if (!window.testRunner || !window.internals) | 3 if (!window.testRunner || !window.mojo) |
4 debug('This test can not run without testRunner or internals'); | 4 debug('This test can not run without testRunner or mojo'); |
5 | |
6 internals.setGeolocationClientMock(document); | |
7 internals.setGeolocationPosition(document, 51.478, -0.166, 100); | |
8 | |
9 var permissionSet = false; | |
10 | |
11 function denyPermission() { | |
12 permissionSet = true; | |
13 internals.setGeolocationPermission(document, false); | |
14 } | |
15 | 5 |
16 var error; | 6 var error; |
17 navigator.geolocation.getCurrentPosition(function() { | 7 |
18 testFailed('Success callback invoked unexpectedly'); | 8 geolocationServiceMock.then(mock => { |
19 finishJSTest(); | 9 mock.setGeolocationPosition(51.478, -0.166, 100); |
20 }, function(e) { | 10 |
21 if (permissionSet) { | 11 var permissionSet = false; |
22 error = e; | 12 |
23 shouldBe('error.code', 'error.PERMISSION_DENIED'); | 13 function denyPermission() { |
24 shouldBe('error.message', '"User denied Geolocation"'); | 14 permissionSet = true; |
| 15 mock.setGeolocationPermission(false); |
| 16 } |
| 17 |
| 18 navigator.geolocation.getCurrentPosition(function() { |
| 19 testFailed('Success callback invoked unexpectedly'); |
25 finishJSTest(); | 20 finishJSTest(); |
26 return; | 21 }, function(e) { |
27 } | 22 if (permissionSet) { |
28 testFailed('Error callback invoked unexpectedly'); | 23 error = e; |
29 finishJSTest(); | 24 shouldBe('error.code', 'error.PERMISSION_DENIED'); |
| 25 shouldBe('error.message', '"User denied Geolocation"'); |
| 26 finishJSTest(); |
| 27 return; |
| 28 } |
| 29 testFailed('Error callback invoked unexpectedly'); |
| 30 finishJSTest(); |
| 31 }); |
| 32 window.setTimeout(denyPermission, 100); |
30 }); | 33 }); |
31 window.setTimeout(denyPermission, 100); | |
32 | 34 |
33 window.jsTestIsAsync = true; | 35 window.jsTestIsAsync = true; |
OLD | NEW |