summaryrefslogtreecommitdiffstats
path: root/layout/style/test/browser_sourcemap_comment.js
blob: b4b4145e6cf4c7fa1e75be8acb65192d31f9f45a (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
add_task(async function() {
  // Test text and expected results.
  let test_cases = [
    ["/*# sourceMappingURL=here*/", "here"],
    ["/*# sourceMappingURL=here  */", "here"],
    ["/*@ sourceMappingURL=here*/", "here"],
    ["/*@ sourceMappingURL=there*/ /*# sourceMappingURL=here*/", "here"],
    ["/*# sourceMappingURL=here there  */", "here"],

    ["/*# sourceMappingURL=  here  */", ""],
    ["/*# sourceMappingURL=*/", ""],
    ["/*# sourceMappingUR=here  */", ""],
    ["/*! sourceMappingURL=here  */", ""],
    ["/*# sourceMappingURL = here  */", ""],
    ["/*   # sourceMappingURL=here   */", ""],
  ];

  let page = "<!DOCTYPE HTML>\n<html>\n<head>\n";
  for (let i = 0; i < test_cases.length; ++i) {
    page += `<style type="text/css"> #x${i} { color: red; }${test_cases[i][0]}</style>\n`;
  }
  page += "</head><body>some text</body></html>";

  let uri = "data:text/html;base64," + btoa(page);
  info(`URI is ${uri}`);

  await BrowserTestUtils.withNewTab(
    {
      gBrowser,
      url: uri,
    },
    async function(browser) {
      await SpecialPowers.spawn(browser, [test_cases], function(tests) {
        for (let i = 0; i < content.document.styleSheets.length; ++i) {
          let sheet = content.document.styleSheets[i];

          info(`Checking sheet #${i}`);
          is(
            sheet.sourceMapURL,
            tests[i][1],
            `correct source map for sheet ${i}`
          );
        }
      });
    }
  );
});