2014-07-15 11:26:33 +04:00
|
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
*/
|
|
|
|
"use strict";
|
|
|
|
|
|
|
|
const TEST_URI = "http://example.com/" +
|
|
|
|
"browser/dom/tests/browser/position.html";
|
|
|
|
|
|
|
|
add_task(function testDismissHanger() {
|
|
|
|
info("Check that location is not shared when dismissing the geolocation hanger");
|
|
|
|
|
|
|
|
let promisePanelShown = waitForPanelShow();
|
|
|
|
|
|
|
|
gBrowser.selectedTab = gBrowser.addTab(TEST_URI);
|
|
|
|
yield waitForPageLoad(gBrowser.selectedTab);
|
|
|
|
info("Page was loaded");
|
|
|
|
|
|
|
|
yield promisePanelShown;
|
|
|
|
info("Panel is shown");
|
|
|
|
|
|
|
|
// click outside the Geolocation hanger to dismiss it
|
|
|
|
window.document.getElementById("nav-bar").click();
|
|
|
|
info("Clicked outside the Geolocation panel to dismiss it");
|
|
|
|
|
|
|
|
let result = gBrowser.getBrowserForTab(gBrowser.selectedTab)
|
|
|
|
.contentDocument.body.innerHTML;
|
|
|
|
ok(result.contains("location..."), "Location is not shared");
|
|
|
|
});
|
|
|
|
|
|
|
|
add_task(function asyncCleanup() {
|
|
|
|
// close the tab
|
|
|
|
gBrowser.removeTab(gBrowser.selectedTab);
|
|
|
|
info("Cleanup: Closed the tab");
|
|
|
|
});
|
|
|
|
|
|
|
|
function waitForPageLoad(aTab) {
|
2014-10-28 00:45:18 +03:00
|
|
|
return new Promise(resolve => {
|
|
|
|
function onTabLoad(event) {
|
|
|
|
aTab.linkedBrowser.removeEventListener("load", onTabLoad, true);
|
|
|
|
info("Load tab event received");
|
|
|
|
resolve();
|
|
|
|
};
|
|
|
|
|
|
|
|
aTab.linkedBrowser.addEventListener("load", onTabLoad, true, true);
|
|
|
|
});
|
2014-07-15 11:26:33 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
function waitForPanelShow(aPanel) {
|
2014-10-28 00:45:18 +03:00
|
|
|
return new Promise(resolve => {
|
|
|
|
function onPopupShown(event) {
|
|
|
|
PopupNotifications.panel.removeEventListener("popupshown", onPopupShown, true);
|
|
|
|
info("Popup shown event received");
|
|
|
|
resolve();
|
|
|
|
}
|
|
|
|
|
|
|
|
PopupNotifications.panel.addEventListener("popupshown", onPopupShown, true, true);
|
|
|
|
});
|
2014-07-15 11:26:33 +04:00
|
|
|
}
|