| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <script> |
| description("Tests that Geoposition timestamps are well-formed (non-zero and in the same units as Date.getTime)."); |
| |
| var mockLatitude = 51.478; |
| var mockLongitude = -0.166; |
| var mockAccuracy = 100.0; |
| |
| if (window.testRunner) { |
| testRunner.setGeolocationPermission(true); |
| testRunner.setMockGeolocationPosition(mockLatitude, mockLongitude, mockAccuracy); |
| } |
| |
| var now = new Date().getTime(); |
| shouldBeTrue('now != 0'); |
| var t = null; |
| var then = null; |
| |
| function checkPosition(p) { |
| t = p.timestamp; |
| var d = new Date(); |
| then = d.getTime(); |
| shouldBeTrue('t != 0'); |
| shouldBeTrue('then != 0'); |
| shouldBeTrue('now - 1 <= t'); // Avoid rounding errors |
| if (now - 1 > t) { |
| debug(" now - 1 = " + (now-1)); |
| debug(" t = " + t); |
| } |
| shouldBeTrue('t <= then + 1'); // Avoid rounding errors |
| finishJSTest(); |
| } |
| |
| navigator.geolocation.getCurrentPosition(checkPosition); |
| window.jsTestIsAsync = true; |
| </script> |
| <script src="../../../resources/js-test-post.js"></script> |
| </body> |
| </html> |