diff options
Diffstat (limited to '')
-rw-r--r-- | dom/tests/mochitest/geolocation/test_manyWatchConcurrent.html | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/dom/tests/mochitest/geolocation/test_manyWatchConcurrent.html b/dom/tests/mochitest/geolocation/test_manyWatchConcurrent.html new file mode 100644 index 0000000000..8d22e442cb --- /dev/null +++ b/dom/tests/mochitest/geolocation/test_manyWatchConcurrent.html @@ -0,0 +1,60 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=482260 +--> +<head> + <title>Test for watchPosition </title> + <script 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=482260">Mozilla Bug 482260</a> +<p id="display"></p> +<div id="content" style="display: none"> + +</div> +<pre id="test"> +<script class="testbody" type="text/javascript"> +"use strict"; + +SimpleTest.waitForExplicitFinish(); + +resume_geolocationProvider(function() { + force_prompt(true, test1); +}); + +var successCallbackCalled = 0; +var failureCallbackCalled = 0; +const totalResults = 100; + +function test1() { + for (var x = 0; x < totalResults; x++) { + let watchID = navigator.geolocation.watchPosition( + position => { + check_geolocation(position); + successCallbackCalled++; + watchCallback(watchID); + }, + error => { + failureCallbackCalled++; + watchCallback(watchID); + } + ); + } +} + +function watchCallback(watchID) { + navigator.geolocation.clearWatch(watchID); + if (successCallbackCalled + failureCallbackCalled != totalResults) + return; + is(failureCallbackCalled, 0, "no failure callbacks should have been received"); + SimpleTest.finish(); +} + +</script> +</pre> +</body> +</html> |