| Index: third_party/WebKit/LayoutTests/fast/dom/Geolocation/watch.html
|
| diff --git a/third_party/WebKit/LayoutTests/fast/dom/Geolocation/watch.html b/third_party/WebKit/LayoutTests/fast/dom/Geolocation/watch.html
|
| index eaee2d4999d70fa9feab4cc52f5d6f9c643c0609..b78305d0ffc6f79e799e5c54fd29d2f62b530367 100644
|
| --- a/third_party/WebKit/LayoutTests/fast/dom/Geolocation/watch.html
|
| +++ b/third_party/WebKit/LayoutTests/fast/dom/Geolocation/watch.html
|
| @@ -6,6 +6,70 @@
|
| <script src="resources/geolocation-mock.js"></script>
|
| </head>
|
| <body>
|
| -<script src="script-tests/watch.js"></script>
|
| +<script>
|
| +description("Tests that watchPosition correctly reports position updates and errors from the Geolocation service.");
|
| +
|
| +var mockLatitude = 51.478;
|
| +var mockLongitude = -0.166;
|
| +var mockAccuracy = 100.0;
|
| +
|
| +var mockMessage = 'test';
|
| +
|
| +var position;
|
| +var error;
|
| +
|
| +function checkPosition(p) {
|
| + position = p;
|
| + shouldBe('position.coords.latitude', 'mockLatitude');
|
| + shouldBe('position.coords.longitude', 'mockLongitude');
|
| + shouldBe('position.coords.accuracy', 'mockAccuracy');
|
| + debug('');
|
| +}
|
| +
|
| +function checkError(e) {
|
| + error = e;
|
| + shouldBe('error.code', 'error.POSITION_UNAVAILABLE');
|
| + shouldBe('error.message', 'mockMessage');
|
| + debug('');
|
| +}
|
| +
|
| +geolocationServiceMock.then(mock => {
|
| + mock.setGeolocationPermission(true);
|
| + mock.setGeolocationPosition(mockLatitude, mockLongitude, mockAccuracy);
|
| +
|
| + var state = 0;
|
| + navigator.geolocation.watchPosition(function(p) {
|
| + switch (state++) {
|
| + case 0:
|
| + checkPosition(p);
|
| + mock.setGeolocationPosition(++mockLatitude, ++mockLongitude, ++mockAccuracy);
|
| + break;
|
| + case 1:
|
| + checkPosition(p);
|
| + mock.setGeolocationPositionUnavailableError(mockMessage);
|
| + break;
|
| + case 3:
|
| + checkPosition(p);
|
| + finishJSTest();
|
| + break;
|
| + default:
|
| + testFailed('Success callback invoked unexpectedly');
|
| + finishJSTest();
|
| + }
|
| + }, function(e) {
|
| + switch (state++) {
|
| + case 2:
|
| + checkError(e);
|
| + mock.setGeolocationPosition(++mockLatitude, ++mockLongitude, ++mockAccuracy);
|
| + break;
|
| + default:
|
| + testFailed('Error callback invoked unexpectedly');
|
| + finishJSTest();
|
| + }
|
| + });
|
| +});
|
| +
|
| +window.jsTestIsAsync = true;
|
| +</script>
|
| </body>
|
| </html>
|
|
|