gecko-dev/dom/tests/browser/browser_geolocation_privatebrowsing_perwindowpb.js

61 lines
2.5 KiB
JavaScript

function test() {
var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
let baseProvider = "http://mochi.test:8888/browser/dom/tests/browser/network_geolocation.sjs";
prefs.setCharPref("geo.wifi.uri", baseProvider + "?desired_access_token=fff");
prefs.setBoolPref("geo.prompt.testing", true);
prefs.setBoolPref("geo.prompt.testing.allow", true);
const testPageURL = "http://mochi.test:8888/browser/" +
"dom/tests/browser/browser_geolocation_privatebrowsing_page.html";
waitForExplicitFinish();
var windowsToClose = [];
function testOnWindow(aIsPrivate, aCallback) {
var win = OpenBrowserWindow({private: aIsPrivate});
win.addEventListener("load", function onLoad() {
win.removeEventListener("load", onLoad, false);
windowsToClose.push(win);
executeSoon(function() { aCallback(win); });
}, false);
}
registerCleanupFunction(function () {
windowsToClose.forEach(function(win) {
win.close();
});
});
testOnWindow(false, function(aNormalWindow) {
aNormalWindow.gBrowser.selectedBrowser.addEventListener("georesult", function load(ev) {
aNormalWindow.gBrowser.selectedBrowser.removeEventListener("georesult", load, false);
is(ev.detail, 200, "unexpected access token");
prefs.setCharPref("geo.wifi.uri", baseProvider + "?desired_access_token=ggg");
testOnWindow(true, function(aPrivateWindow) {
aPrivateWindow.gBrowser.selectedBrowser.addEventListener("georesult", function load2(ev) {
aPrivateWindow.gBrowser.selectedBrowser.removeEventListener("georesult", load2, false);
is(ev.detail, 200, "unexpected access token");
prefs.setCharPref("geo.wifi.uri", baseProvider + "?expected_access_token=fff");
testOnWindow(false, function(aAnotherNormalWindow) {
aAnotherNormalWindow.gBrowser.selectedBrowser.addEventListener("georesult", function load3(ev) {
aAnotherNormalWindow.gBrowser.selectedBrowser.removeEventListener("georesult", load3, false);
is(ev.detail, 200, "unexpected access token");
prefs.setBoolPref("geo.prompt.testing", false);
prefs.setBoolPref("geo.prompt.testing.allow", false);
finish();
}, false, true);
aAnotherNormalWindow.content.location = testPageURL;
});
}, false, true);
aPrivateWindow.content.location = testPageURL;
});
}, false, true);
aNormalWindow.content.location = testPageURL;
});
}