summaryrefslogtreecommitdiffstats
path: root/browser/components/pocket/test/unit/panels/browser_pocket_main.js
blob: c40ad4d5d49b172703d566a3ec85b712968b3619 (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
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";

function test_runner(test) {
  let testTask = async () => {
    // Before each
    const sandbox = sinon.createSandbox();
    try {
      await test({
        sandbox,
        pktPanelMessaging: testGlobal.window.pktPanelMessaging,
      });
    } finally {
      // After each
      sandbox.restore();
    }
  };

  // Copy the name of the test function to identify the test
  Object.defineProperty(testTask, "name", { value: test.name });
  add_task(testTask);
}

test_runner(async function test_clickHelper({ sandbox, pktPanelMessaging }) {
  // Create a button to test the click helper with.
  const button = document.createElement("button");
  button.setAttribute("href", "http://example.com");

  // Setup a stub for the click itself.
  sandbox.stub(pktPanelMessaging, "sendMessage");

  // Create the click helper and trigger the click.
  pktPanelMessaging.clickHelper(button, { source: "test-click", position: 2 });
  button.click();

  Assert.ok(
    pktPanelMessaging.sendMessage.calledOnce,
    "Should fire sendMessage once with clickHelper click"
  );
  Assert.ok(
    pktPanelMessaging.sendMessage.calledWith("PKT_openTabWithUrl", {
      url: "http://example.com",
      source: "test-click",
      position: 2,
    }),
    "Should send expected values to sendMessage with clickHelper click"
  );
});