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"
);
});
|