| Index: third_party/WebKit/LayoutTests/fast/dom/Geolocation/callback-exception.html
|
| diff --git a/third_party/WebKit/LayoutTests/fast/dom/Geolocation/callback-exception.html b/third_party/WebKit/LayoutTests/fast/dom/Geolocation/callback-exception.html
|
| index 9df309a3802f405c2b545bbc4fb6f55b167ecf23..33ca6245c90fb5b3acd85df6dd46e308fc2d4d3a 100644
|
| --- a/third_party/WebKit/LayoutTests/fast/dom/Geolocation/callback-exception.html
|
| +++ b/third_party/WebKit/LayoutTests/fast/dom/Geolocation/callback-exception.html
|
| @@ -6,6 +6,45 @@
|
| <script src="resources/geolocation-mock.js"></script>
|
| </head>
|
| <body>
|
| -<script src="script-tests/callback-exception.js"></script>
|
| +<script>
|
| +description("Tests that when an exception is thrown in the success callback, the error callback is not invoked. Note that this test throws an exception which is not caught.");
|
| +
|
| +var mockLatitude = 51.478;
|
| +var mockLongitude = -0.166;
|
| +var mockAccuracy = 100;
|
| +
|
| +var position;
|
| +
|
| +geolocationServiceMock.then(mock => {
|
| + mock.setGeolocationPermission(true);
|
| + mock.setGeolocationPosition(mockLatitude,
|
| + mockLongitude,
|
| + mockAccuracy);
|
| + navigator.geolocation.getCurrentPosition(function(p) {
|
| + position = p;
|
| + shouldBe('position.coords.latitude', 'mockLatitude');
|
| + shouldBe('position.coords.longitude', 'mockLongitude');
|
| + shouldBe('position.coords.accuracy', 'mockAccuracy');
|
| +
|
| + // Yield to allow for the error callback to be invoked. The timer
|
| + // must be started before the exception is thrown.
|
| + window.setTimeout(assertWeGotException, 0);
|
| + expectError();
|
| +
|
| + throw new Error('Exception in success callback');
|
| + }, function(e) {
|
| + testFailed('Error callback invoked unexpectedly');
|
| + finishJSTest();
|
| + });
|
| +});
|
| +
|
| +function assertWeGotException()
|
| +{
|
| + shouldHaveHadError();
|
| + finishJSTest();
|
| +}
|
| +
|
| +window.jsTestIsAsync = true;
|
| +</script>
|
| </body>
|
| </html>
|
|
|