summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/pageinfo/browser_pageinfo_images.js
blob: 5cb4c79bf3ca80bb89232f816539156de9a6fe12 (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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/* Check proper image url retrieval from all kinds of elements/styles */

const TEST_PATH = getRootDirectory(gTestPath).replace(
  "chrome://mochitests/content",
  // eslint-disable-next-line @microsoft/sdl/no-insecure-url
  "http://example.com"
);

add_task(async function test_all_images_mentioned() {
  await BrowserTestUtils.withNewTab(
    TEST_PATH + "all_images.html",
    async function () {
      let pageInfo = BrowserPageInfo(
        gBrowser.selectedBrowser.currentURI.spec,
        "mediaTab"
      );
      await BrowserTestUtils.waitForEvent(pageInfo, "page-info-init");

      let imageTree = pageInfo.document.getElementById("imagetree");
      let imageRowsNum = imageTree.view.rowCount;

      ok(imageTree, "Image tree is null (media tab is broken)");

      ok(
        imageRowsNum == 7,
        "Number of images listed: " + imageRowsNum + ", should be 7"
      );

      // Check that select all works
      imageTree.focus();
      ok(
        !pageInfo.document.getElementById("cmd_copy").hasAttribute("disabled"),
        "copy is enabled"
      );
      ok(
        !pageInfo.document
          .getElementById("cmd_selectAll")
          .hasAttribute("disabled"),
        "select all is enabled"
      );
      pageInfo.goDoCommand("cmd_selectAll");
      is(imageTree.view.selection.count, 7, "all rows selected");

      pageInfo.close();
    }
  );
});

add_task(async function test_view_image_info() {
  await SpecialPowers.pushPrefEnv({
    set: [["browser.menu.showViewImageInfo", true]],
  });

  await BrowserTestUtils.withNewTab(
    TEST_PATH + "all_images.html",

    async function (browser) {
      let contextMenu = document.getElementById("contentAreaContextMenu");
      let viewImageInfo = document.getElementById("context-viewimageinfo");

      let imageInfo = await SpecialPowers.spawn(browser, [], async () => {
        let testImg = content.document.querySelector("img");
        return {
          src: testImg.src,
        };
      });

      await BrowserTestUtils.synthesizeMouseAtCenter(
        "img",
        { type: "contextmenu", button: 2 },
        browser
      );

      await BrowserTestUtils.waitForEvent(contextMenu, "popupshown");

      let promisePageInfoLoaded = BrowserTestUtils.domWindowOpened().then(win =>
        BrowserTestUtils.waitForEvent(win, "page-info-init")
      );

      contextMenu.activateItem(viewImageInfo);

      let pageInfo = (await promisePageInfoLoaded).target.ownerGlobal;
      let pageInfoImg = pageInfo.document.getElementById("thepreviewimage");

      Assert.equal(
        pageInfoImg.src,
        imageInfo.src,
        "selected image is the correct"
      );
      await BrowserTestUtils.closeWindow(pageInfo);
    }
  );
});