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
|
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
var { ircAccount } = ChromeUtils.importESModule(
"resource:///modules/ircAccount.sys.mjs"
);
var input = [
undefined,
"test",
"\\test",
"te\\st",
"test\\",
"\\\\test",
"te\\\\st",
"test\\\\",
"\\\\\\test",
"te\\\\\\st",
"test\\\\\\",
"\x01test",
"te\x01st",
"test\x01",
"\\\\\x01test",
"\\\\atest",
];
var expectedOutputParams = [
"ACTION",
"ACTION test",
"ACTION \\\\test",
"ACTION te\\\\st",
"ACTION test\\\\",
"ACTION \\\\\\\\test",
"ACTION te\\\\\\\\st",
"ACTION test\\\\\\\\",
"ACTION \\\\\\\\\\\\test",
"ACTION te\\\\\\\\\\\\st",
"ACTION test\\\\\\\\\\\\",
"ACTION \\atest",
"ACTION te\\ast",
"ACTION test\\a",
"ACTION \\\\\\\\\\atest",
"ACTION \\\\\\\\atest",
];
var outputParams = [];
ircAccount.prototype.sendMessage = function (aCommand, aParams) {
equal("PRIVMSG", aCommand);
outputParams.push(aParams[1]);
};
function run_test() {
input.map(aStr =>
ircAccount.prototype.sendCTCPMessage("", false, "ACTION", aStr)
);
// Ensure both arrays have the same length.
equal(expectedOutputParams.length, outputParams.length);
// Ensure the values in the arrays are equal.
for (let i = 0; i < outputParams.length; ++i) {
equal("\x01" + expectedOutputParams[i] + "\x01", outputParams[i]);
}
}
|