summaryrefslogtreecommitdiffstats
path: root/comm/chat/protocols/irc/test/test_splitLongMessages.js
blob: b507d4ec99fbba2ffe5025252e36bb1651b7e04f (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
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/ */

var { GenericIRCConversation, ircAccount } = ChromeUtils.importESModule(
  "resource:///modules/ircAccount.sys.mjs"
);

var messages = {
  // Exactly 51 characters.
  "This is a test.": ["This is a test."],
  // Too long.
  "This is a message that is too long.": [
    "This is a",
    "message that is",
    "too long.",
  ],
  // Too short.
  "Short msg.": ["Short msg."],
  "Thismessagecan'tbecut.": ["Thismessagecan'", "tbecut."],
};

function run_test() {
  for (let message in messages) {
    let msg = { message };
    let generatedMsgs = GenericIRCConversation.prepareForSending.call(
      {
        __proto__: GenericIRCConversation,
        name: "target",
        _account: {
          __proto__: ircAccount.prototype,
          _nickname: "sender",
          prefix: "!user@host",
          maxMessageLength: 51, // For convenience.
        },
      },
      msg
    );

    // The expected messages as defined above.
    let expectedMsgs = messages[message];
    // Ensure the arrays are equal.
    deepEqual(generatedMsgs, expectedMsgs);
  }
}