|
1 function test() { |
|
2 var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); |
|
3 let baseProvider = "http://mochi.test:8888/browser/dom/tests/browser/network_geolocation.sjs"; |
|
4 prefs.setCharPref("geo.wifi.uri", baseProvider + "?desired_access_token=fff"); |
|
5 |
|
6 prefs.setBoolPref("geo.prompt.testing", true); |
|
7 prefs.setBoolPref("geo.prompt.testing.allow", true); |
|
8 var origScanValue = true; // same default in NetworkGeolocationProvider.js. |
|
9 try { |
|
10 origScanValue = prefs.getBoolPref("geo.wifi.scan"); |
|
11 } catch(ex) {} |
|
12 prefs.setBoolPref("geo.wifi.scan", false); |
|
13 |
|
14 const testPageURL = "http://mochi.test:8888/browser/" + |
|
15 "dom/tests/browser/browser_geolocation_privatebrowsing_page.html"; |
|
16 waitForExplicitFinish(); |
|
17 |
|
18 var windowsToClose = []; |
|
19 function testOnWindow(aIsPrivate, aCallback) { |
|
20 let win = OpenBrowserWindow({private: aIsPrivate}); |
|
21 let gotLoad = false; |
|
22 let gotActivate = |
|
23 (Cc["@mozilla.org/focus-manager;1"].getService(Ci.nsIFocusManager).activeWindow == win); |
|
24 if (!gotActivate) { |
|
25 win.addEventListener("activate", function onActivate() { |
|
26 info("got activate"); |
|
27 win.removeEventListener("activate", onActivate, true); |
|
28 gotActivate = true; |
|
29 if (gotLoad) { |
|
30 windowsToClose.push(win); |
|
31 win.BrowserChromeTest.runWhenReady(function() { aCallback(win) }); |
|
32 } |
|
33 }, true); |
|
34 } else { |
|
35 info("Was activated"); |
|
36 } |
|
37 win.addEventListener("load", function onLoad() { |
|
38 info("Got load"); |
|
39 win.removeEventListener("load", onLoad, true); |
|
40 gotLoad = true; |
|
41 if (gotActivate) { |
|
42 windowsToClose.push(win); |
|
43 setTimeout(function() { aCallback(win) }, 1000); |
|
44 } |
|
45 }, true); |
|
46 } |
|
47 |
|
48 testOnWindow(false, function(aNormalWindow) { |
|
49 aNormalWindow.gBrowser.selectedBrowser.addEventListener("georesult", function load(ev) { |
|
50 aNormalWindow.gBrowser.selectedBrowser.removeEventListener("georesult", load, false); |
|
51 is(ev.detail, 200, "unexpected access token"); |
|
52 |
|
53 prefs.setCharPref("geo.wifi.uri", baseProvider + "?desired_access_token=ggg"); |
|
54 |
|
55 testOnWindow(true, function(aPrivateWindow) { |
|
56 aPrivateWindow.gBrowser.selectedBrowser.addEventListener("georesult", function load2(ev) { |
|
57 aPrivateWindow.gBrowser.selectedBrowser.removeEventListener("georesult", load2, false); |
|
58 is(ev.detail, 200, "unexpected access token"); |
|
59 |
|
60 prefs.setCharPref("geo.wifi.uri", baseProvider + "?expected_access_token=fff"); |
|
61 |
|
62 testOnWindow(false, function(aAnotherNormalWindow) { |
|
63 aAnotherNormalWindow.gBrowser.selectedBrowser.addEventListener("georesult", function load3(ev) { |
|
64 aAnotherNormalWindow.gBrowser.selectedBrowser.removeEventListener("georesult", load3, false); |
|
65 is(ev.detail, 200, "unexpected access token"); |
|
66 prefs.setBoolPref("geo.prompt.testing", false); |
|
67 prefs.setBoolPref("geo.prompt.testing.allow", false); |
|
68 prefs.setBoolPref("geo.wifi.scan", origScanValue); |
|
69 windowsToClose.forEach(function(win) { |
|
70 win.close(); |
|
71 }); |
|
72 finish(); |
|
73 }, false, true); |
|
74 aAnotherNormalWindow.content.location = testPageURL; |
|
75 }); |
|
76 }, false, true); |
|
77 aPrivateWindow.content.location = testPageURL; |
|
78 }); |
|
79 }, false, true); |
|
80 aNormalWindow.content.location = testPageURL; |
|
81 }); |
|
82 } |