summaryrefslogtreecommitdiffstats
path: root/comm/mail/components/extensions/test/browser/browser_ext_sessions.js
blob: a77739c1451895c5a0af254a465630e3a3506817 (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
/* 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/. */

add_task(async function test_sessions_data() {
  let extension = ExtensionTestUtils.loadExtension({
    background: async () => {
      let [mailTab] = await browser.tabs.query({ mailTab: true });
      let contentTab = await browser.tabs.create({
        url: "https://www.example.com",
      });

      // Check that there is no data at the beginning.
      browser.test.assertEq(
        await browser.sessions.getTabValue(mailTab.id, "aKey"),
        undefined,
        "Value for aKey should not exist"
      );
      browser.test.assertEq(
        await browser.sessions.getTabValue(contentTab.id, "aKey"),
        undefined,
        "Value for aKey should not exist"
      );

      // Set some data.
      await browser.sessions.setTabValue(mailTab.id, "aKey", "1234");
      await browser.sessions.setTabValue(contentTab.id, "aKey", "4321");

      // Check the data is correct.
      browser.test.assertEq(
        await browser.sessions.getTabValue(mailTab.id, "aKey"),
        "1234",
        "Value for aKey should exist"
      );
      browser.test.assertEq(
        await browser.sessions.getTabValue(contentTab.id, "aKey"),
        "4321",
        "Value for aKey should exist"
      );

      // Update data.
      await browser.sessions.setTabValue(mailTab.id, "aKey", "12345");
      await browser.sessions.setTabValue(contentTab.id, "aKey", "54321");

      // Check the data is correct.
      browser.test.assertEq(
        await browser.sessions.getTabValue(mailTab.id, "aKey"),
        "12345",
        "Value for aKey should exist"
      );
      browser.test.assertEq(
        await browser.sessions.getTabValue(contentTab.id, "aKey"),
        "54321",
        "Value for aKey should exist"
      );

      // Clear data.
      await browser.sessions.removeTabValue(mailTab.id, "aKey");
      await browser.sessions.removeTabValue(contentTab.id, "aKey");

      // Check the data is removed.
      browser.test.assertEq(
        await browser.sessions.getTabValue(mailTab.id, "aKey"),
        undefined,
        "Value for aKey should not exist"
      );
      browser.test.assertEq(
        await browser.sessions.getTabValue(contentTab.id, "aKey"),
        undefined,
        "Value for aKey should not exist"
      );

      await browser.tabs.remove(contentTab.id);
      browser.test.notifyPass();
    },
    manifest: {
      manifest_version: 2,
      browser_specific_settings: {
        gecko: {
          id: "sessions@mochi.test",
        },
      },
      permissions: ["tabs"],
    },
  });

  await extension.startup();
  await extension.awaitFinish();
  await extension.unload();
});