summaryrefslogtreecommitdiffstats
path: root/dom/tests/browser/browser_bug1008941_dismissGeolocationHanger.js
blob: ae339e1d8dad722941b0abe91b9796f9d8666cc6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* 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 =
  // eslint-disable-next-line no-useless-concat
  "https://example.com/" + "browser/dom/tests/browser/position.html";

add_task(async function testDismissHanger() {
  info(
    "Check that location is not shared when dismissing the geolocation hanger"
  );

  let promisePanelShown = BrowserTestUtils.waitForEvent(
    PopupNotifications.panel,
    "popupshown",
    true
  );
  await BrowserTestUtils.openNewForegroundTab(gBrowser, TEST_URI);
  await promisePanelShown;

  // We intentionally turn off this a11y check, because the following click
  // is sent on the <toolbar> to dismiss the Geolocation hanger using an
  // alternative way of the popup dismissal, while the other way like `Esc` key
  // is available for assistive technology users, thus this test can be ignored.
  AccessibilityUtils.setEnv({ mustHaveAccessibleRule: false });
  // click outside the Geolocation hanger to dismiss it
  window.document.getElementById("nav-bar").click();
  AccessibilityUtils.resetEnv();
  info("Clicked outside the Geolocation panel to dismiss it");

  let hasLocation = await SpecialPowers.spawn(
    gBrowser.selectedBrowser,
    [],
    async function () {
      return content.document.body.innerHTML.includes("location...");
    }
  );

  ok(hasLocation, "Location is not shared");

  BrowserTestUtils.removeTab(gBrowser.selectedTab);
});