tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_geolocation_timeout.js (1418B)


      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  var georesponse = {
     10    status: "OK",
     11    location: {
     12      lat: 42,
     13      lng: 42,
     14    },
     15    accuracy: 42,
     16  };
     17  var position = JSON.stringify(georesponse);
     18  response.processAsync();
     19  response.setStatusLine("1.0", 200, "OK");
     20  response.setHeader("Cache-Control", "no-cache", false);
     21  response.setHeader("Content-Type", "aplication/x-javascript", false);
     22  do_timeout(5000, function () {
     23    response.write(position);
     24    response.finish();
     25  });
     26 }
     27 
     28 function successCallback() {
     29  Assert.ok(false);
     30  do_test_finished();
     31 }
     32 
     33 function errorCallback() {
     34  Assert.ok(true);
     35  do_test_finished();
     36 }
     37 
     38 function run_test() {
     39  do_test_pending();
     40 
     41  if (Services.appinfo.processType == Ci.nsIXULRuntime.PROCESS_TYPE_DEFAULT) {
     42    httpserver = new HttpServer();
     43    httpserver.registerPathHandler("/geo", geoHandler);
     44    httpserver.start(-1);
     45    Services.prefs.setBoolPref("geo.provider.network.scan", false);
     46    Services.prefs.setCharPref(
     47      "geo.provider.network.url",
     48      "http://localhost:" + httpserver.identity.primaryPort + "/geo"
     49    );
     50  }
     51 
     52  geolocation = Cc["@mozilla.org/geolocation;1"].getService(Ci.nsISupports);
     53  geolocation.getCurrentPosition(successCallback, errorCallback, {
     54    timeout: 2000,
     55  });
     56 }