File: test_ext_eventpage_warning.html

package info (click to toggle)
thunderbird 1%3A60.9.0-1~deb10u1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 2,339,424 kB
  • sloc: cpp: 5,457,040; ansic: 2,360,385; python: 596,167; asm: 340,963; java: 326,296; xml: 258,830; sh: 84,445; makefile: 23,701; perl: 17,317; objc: 3,768; yacc: 1,766; ada: 1,681; lex: 1,364; pascal: 1,264; cs: 879; exp: 527; php: 436; lisp: 258; ruby: 153; awk: 152; sed: 53; csh: 27
file content (79 lines) | stat: -rw-r--r-- 2,321 bytes parent folder | download | duplicates (2)
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
<!DOCTYPE HTML>
<html>
<head>
  <title>Test for WebExtension EventPage Warning</title>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <script src="/tests/SimpleTest/SpawnTask.js"></script>
  <script src="/tests/SimpleTest/ExtensionTestUtils.js"></script>
  <script type="text/javascript" src="head.js"></script>
  <link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
</head>
<body>

<script type="text/javascript">
"use strict";

function createEventPageExtension(eventPage) {
  function eventPageScript() {
    browser.test.log("running event page as background script");
    browser.test.sendMessage("running", 1);
  }

  return ExtensionTestUtils.loadExtension({
    manifest: {
      "background": eventPage,
    },
    files: {
      "event-page-script.js": eventPageScript,
      "event-page.html": `<html><head>
        <meta charset="utf-8">
        <script src="event-page-script.js"><\/script>
      </head></html>`,
    },
  });
}

add_task(async function test_eventpages() {
  let testCases = [
    {
      message: "testing event page running as a background page",
      eventPage: {
        "page": "event-page.html",
        "persistent": false,
      },
    },
    {
      message: "testing event page scripts running as a background page",
      eventPage: {
        "scripts": ["event-page-script.js"],
        "persistent": false,
      },
    },
    {
      message: "testing additional unrecognized properties on background page",
      eventPage: {
        "scripts": ["event-page-script.js"],
        "nonExistentProp": true,
      },
    },
  ];

  // Wait for the expected logged warnings from the manifest validation.
  consoleMonitor.start([{message: /Event pages are not currently supported./},
                        {message: /Event pages are not currently supported./},
                        {message: /Reading manifest: Error processing background.nonExistentProp: An unexpected property was found/}]);
  for (let test of testCases) {
    info(test.message);

    let extension = createEventPageExtension(test.eventPage);
    let [, x] = await Promise.all([extension.startup(), extension.awaitMessage("running")]);
    is(x, 1, "got correct value from extension");
    await extension.unload();
  }
  await consoleMonitor.finished();
});

</script>

</body>
</html>