55 lines
1.5 KiB
HTML
55 lines
1.5 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
<script>
|
|
|
|
description("Tests that the GeolocationClient only starts updating when the page becomes visible");
|
|
window.jsTestIsAsync = true;
|
|
|
|
function geolocationWatchFunction()
|
|
{
|
|
}
|
|
|
|
function checkNotUpdatingAndShowPage()
|
|
{
|
|
shouldBeFalse("testRunner.isGeolocationProviderActive()");
|
|
debug("Changing page visibility to 'visible'");
|
|
testRunner.setPageVisibility("visible");
|
|
}
|
|
|
|
function onVisibilityChange() {
|
|
debug("Page visibility changed to " + !document.hidden);
|
|
if (document.hidden) {
|
|
shouldBeFalse("testRunner.isGeolocationProviderActive()");
|
|
debug("Adding Geolocation watcher");
|
|
navigator.geolocation.watchPosition(geolocationWatchFunction);
|
|
setTimeout(checkNotUpdatingAndShowPage, 50);
|
|
} else
|
|
shouldBecomeEqual("testRunner.isGeolocationProviderActive()", "true", finishJSTest);
|
|
}
|
|
|
|
document.addEventListener("visibilitychange", onVisibilityChange, false)
|
|
|
|
if (window.testRunner) {
|
|
testRunner.setGeolocationPermission(true);
|
|
testRunner.setMockGeolocationPosition(1, 2, 3);
|
|
}
|
|
|
|
function runTest()
|
|
{
|
|
debug("Page is initially visible");
|
|
shouldBeFalse("document.hidden");
|
|
shouldBeFalse("testRunner.isGeolocationProviderActive()");
|
|
|
|
debug("Changing page visibility to 'hidden'");
|
|
if (window.testRunner)
|
|
testRunner.setPageVisibility("hidden");
|
|
}
|
|
</script>
|
|
<script src="../../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|