summaryrefslogtreecommitdiffstats
path: root/toolkit/components/tooltiptext/tests/browser_bug329212.js
blob: d669e60c26c8d31ac8db92e7245da3ff40f15f73 (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
"use strict";

add_task(async function () {
  await BrowserTestUtils.withNewTab(
    {
      gBrowser,
      url: "http://mochi.test:8888/browser/toolkit/components/tooltiptext/tests/title_test.svg",
    },
    async function (browser) {
      await SpecialPowers.spawn(browser, [""], function () {
        let tttp = Cc[
          "@mozilla.org/embedcomp/default-tooltiptextprovider;1"
        ].getService(Ci.nsITooltipTextProvider);
        function checkElement(id, expectedTooltipText) {
          let el = content.document.getElementById(id);
          let textObj = {};
          let shouldHaveTooltip = expectedTooltipText !== null;
          is(
            tttp.getNodeText(el, textObj, {}),
            shouldHaveTooltip,
            "element " +
              id +
              " should " +
              (shouldHaveTooltip ? "" : "not ") +
              "have a tooltip"
          );
          if (shouldHaveTooltip) {
            is(
              textObj.value,
              expectedTooltipText,
              "element " + id + " should have the right tooltip text"
            );
          }
        }
        checkElement("svg1", "This is a non-root SVG element title");
        checkElement("text1", "\n\n\n    This            is a title\n\n    ");
        checkElement("text2", null);
        checkElement("text3", null);
        checkElement("link1", "\n      This is a title\n    ");
        checkElement("text4", "\n      This is a title\n    ");
        checkElement("link2", null);
        checkElement("link3", "This is an xlink:title attribute");
        checkElement("link4", "This is an xlink:title attribute");
        checkElement("text5", null);
      });
    }
  );
});