test_geolocation_provider_timeout.js (1041B)
1 const { HttpServer } = ChromeUtils.importESModule( 2 "resource://testing-common/httpd.sys.mjs" 3 ); 4 5 var httpserver = null; 6 var geolocation = null; 7 8 function geoHandler(metadata, response) { 9 response.processAsync(); 10 } 11 12 function successCallback() { 13 // The call shouldn't be sucessful. 14 Assert.ok(false); 15 do_test_finished(); 16 } 17 18 function errorCallback() { 19 Assert.ok(true); 20 do_test_finished(); 21 } 22 23 function run_test() { 24 do_test_pending(); 25 26 httpserver = new HttpServer(); 27 httpserver.registerPathHandler("/geo", geoHandler); 28 httpserver.start(-1); 29 Services.prefs.setCharPref( 30 "geo.provider.network.url", 31 "http://localhost:" + httpserver.identity.primaryPort + "/geo" 32 ); 33 Services.prefs.setBoolPref("geo.provider.network.scan", false); 34 35 // Setting timeout to a very low value to ensure time out will happen. 36 Services.prefs.setIntPref("geo.provider.network.timeout", 5); 37 38 geolocation = Cc["@mozilla.org/geolocation;1"].getService(Ci.nsISupports); 39 geolocation.getCurrentPosition(successCallback, errorCallback); 40 }