Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

/* 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/. */
add_task(async function test_hide_popup_with_protections_panel_showing() {
await BrowserTestUtils.withNewTab(
async function (browser) {
// Request location permissions and wait for that prompt to appear.
let popupShownPromise = waitForNotificationPanel();
await SpecialPowers.spawn(browser, [], async function () {
content.navigator.geolocation.getCurrentPosition(() => {});
});
await popupShownPromise;
// Click on the icon for the protections panel, to show the panel.
popupShownPromise = BrowserTestUtils.waitForEvent(
window,
"popupshown",
true,
event => event.target == gProtectionsHandler._protectionsPopup
);
EventUtils.synthesizeMouseAtCenter(
document.getElementById("tracking-protection-icon-container"),
{}
);
await popupShownPromise;
// Make sure the location permission prompt closed.
Assert.ok(!PopupNotifications.isPanelOpen, "Geolocation popup is hidden");
// Close the protections panel.
let popupHidden = BrowserTestUtils.waitForEvent(
gProtectionsHandler._protectionsPopup,
"popuphidden"
);
gProtectionsHandler._protectionsPopup.hidePopup();
await popupHidden;
// Make sure the location permission prompt came back.
Assert.ok(PopupNotifications.isPanelOpen, "Geolocation popup is showing");
}
);
});