OLD | NEW |
1 description("Tests that when a watch times out and is cleared from the error cal
lback, there is no crash. This a regression test for https://bugs.webkit.org/sho
w_bug.cgi?id=32111."); | 1 description("Tests that when a watch times out and is cleared from the error cal
lback, there is no crash. This a regression test for https://bugs.webkit.org/sho
w_bug.cgi?id=32111."); |
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.0); | |
8 | 5 |
9 var error; | 6 var error; |
10 var watchId = navigator.geolocation.watchPosition(function() { | 7 |
11 testFailed('Success callback invoked unexpectedly'); | 8 geolocationServiceMock.then(mock => { |
12 finishJSTest(); | 9 mock.setGeolocationPosition(51.478, -0.166, 100.0); |
13 }, function(e) { | 10 |
14 error = e; | 11 var watchId = navigator.geolocation.watchPosition(function() { |
15 shouldBe('error.code', 'error.TIMEOUT'); | 12 testFailed('Success callback invoked unexpectedly'); |
16 shouldBe('error.message', '"Timeout expired"'); | 13 finishJSTest(); |
17 navigator.geolocation.clearWatch(watchId); | 14 }, function(e) { |
18 window.setTimeout(finishJSTest, 0); | 15 error = e; |
19 }, { | 16 shouldBe('error.code', 'error.TIMEOUT'); |
20 timeout: 0 | 17 shouldBe('error.message', '"Timeout expired"'); |
| 18 navigator.geolocation.clearWatch(watchId); |
| 19 window.setTimeout(finishJSTest, 0); |
| 20 }, { |
| 21 timeout: 0 |
| 22 }); |
21 }); | 23 }); |
22 | 24 |
23 | |
24 window.jsTestIsAsync = true; | 25 window.jsTestIsAsync = true; |
OLD | NEW |