summaryrefslogtreecommitdiffstats
path: root/comm/mailnews/news/test/unit/test_nntpPost.js
blob: e49aa81d92b70c31637d6d49d7d963bf0acd79c2 (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
// Tests that the news can correctly post messages

var { MailServices } = ChromeUtils.import(
  "resource:///modules/MailServices.jsm"
);
var { PromiseTestUtils } = ChromeUtils.import(
  "resource://testing-common/mailnews/PromiseTestUtils.jsm"
);

/**
 * Test dot is stuffed correctly when posting an article.
 */
add_task(async function test_nntpPost() {
  // Setup test server.
  let daemon = setupNNTPDaemon();
  let handler = new NNTP_RFC977_handler(daemon);
  let server = new nsMailServer(() => handler, daemon);
  server.start();
  registerCleanupFunction(() => server.stop());

  // Send post3.eml to the server.
  let localServer = setupLocalServer(server.port);
  let testFile = do_get_file("postings/post3.eml");
  let urlListener = new PromiseTestUtils.PromiseUrlListener();
  MailServices.nntp.postMessage(
    testFile,
    "test.empty",
    localServer.key,
    urlListener,
    null
  );
  await urlListener.promise;

  // Because Nntpd.jsm undone the dot-stuffing, handler.post should be the same
  // as the original post.
  equal(handler.post, await IOUtils.readUTF8(testFile.path));
});