<!DOCTYPE HTML> <html> <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=526326 --> <head> <title>Test for watchPosition </title> <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="geolocation_common.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> </head> <body> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=526326">Mozilla Bug 526326</a> <p id="display"></p> <div id="content" style="display: none"> </div> <pre id="test"> <script class="testbody" type="text/javascript"> SimpleTest.waitForExplicitFinish(); // ensure we are using the right testing provider resume_geolocationProvider(function() { force_prompt(true, test1); }); var watchID; var times = 0; function errorCallback(err) { ok(err.code == err.TIMEOUT, "ensure error is a timeout."); times++; // make sure we got at least 3 times errorCallback if (times >= 3) { navigator.geolocation.clearWatch(watchID); resume_geolocationProvider(function() { set_network_request_cache_enabled(true, function() { SimpleTest.finish(); } ); }); } } function successCallback(position) { ok(1, "on success"); // Now that we got a success callback, lets try to ensure // that we get a timeout error. // The network cache is already off, now stop the sjs from reponding to requests stop_geolocationProvider(function(){}); } var options = { maximumAge: 0, timeout: 1000 }; function test1() { set_network_request_cache_enabled(false, function() { watchID = navigator.geolocation.watchPosition(successCallback, errorCallback, options); }); } </script> </pre> </body> </html>