summaryrefslogtreecommitdiffstats
path: root/browser/extensions/screenshots/test/browser/browser_screenshot_button.js
blob: 84c5758a1dbd168bf3a6783f71b4e6b79bef68ad (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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/* 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";

add_task(async function testScreenshotButtonDisabled() {
  info("Test the Screenshots button in the panel");

  CustomizableUI.addWidgetToArea(
    "screenshot-button",
    CustomizableUI.AREA_NAVBAR
  );

  let screenshotBtn = document.getElementById("screenshot-button");
  Assert.ok(screenshotBtn, "The screenshots button was added to the nav bar");

  await BrowserTestUtils.withNewTab("https://example.com/", () => {
    Assert.equal(
      screenshotBtn.disabled,
      false,
      "Screenshots button is enabled"
    );
  });
  await BrowserTestUtils.withNewTab("about:home", () => {
    Assert.equal(
      screenshotBtn.disabled,
      true,
      "Screenshots button is now disabled"
    );
  });
});

add_task(async function test_disabledMultiWindow() {
  await BrowserTestUtils.withNewTab(
    {
      gBrowser,
      url: TEST_GREEN_PAGE,
    },
    async browser => {
      let helper = new ScreenshotsHelper(browser);
      await helper.triggerUIFromToolbar();

      let screenshotBtn = document.getElementById("screenshot-button");
      Assert.ok(
        screenshotBtn,
        "The screenshots button was added to the nav bar"
      );

      info("Waiting for the preselect UI");
      await helper.waitForUIContent(
        helper.selector.preselectIframe,
        helper.selector.fullPageButton
      );

      let newWin = await BrowserTestUtils.openNewBrowserWindow();
      await BrowserTestUtils.closeWindow(newWin);

      let deactivatedPromise = helper.waitForToolbarButtonDeactivation();
      await deactivatedPromise;
      info("Screenshots is deactivated");

      await EventUtils.synthesizeAndWaitKey("VK_ESCAPE", {});
      await BrowserTestUtils.waitForCondition(() => {
        return !screenshotBtn.disabled;
      });

      Assert.equal(
        screenshotBtn.disabled,
        false,
        "Screenshots button is enabled"
      );
    }
  );
});