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
|
// Bug 403242 stems from invalid message ids
const { PromiseTestUtils } = ChromeUtils.import(
"resource://testing-common/mailnews/PromiseTestUtils.jsm"
);
add_task(async function test403242() {
let daemon = setupNNTPDaemon();
daemon.addGroup("test1");
daemon.addArticle(make_article(do_get_file("postings/bug403242.eml")));
let server = makeServer(NNTP_RFC2980_handler, daemon);
server.start();
let localserver = setupLocalServer(server.port);
localserver.subscribeToNewsgroup("test1");
let folder = localserver.rootFolder.getChildNamed("test1");
folder.getNewMessages(null, {
OnStopRunningUrl() {
localserver.closeCachedConnections();
},
});
server.performTest();
// Fetch the message
let uri = folder.generateMessageURI(1);
let msgService = Cc[
"@mozilla.org/messenger/messageservice;1?type=news"
].getService(Ci.nsIMsgMessageService);
// Does the URL lie to us?
let neckoUrl = msgService.getUrlForUri(uri).QueryInterface(Ci.nsINntpUrl);
Assert.equal(neckoUrl.newsAction, Ci.nsINntpUrl.ActionFetchArticle);
// Pretend to display the message
let listener = new PromiseTestUtils.PromiseStreamListener();
msgService.loadMessage(uri, listener, null, null, false);
let msgText = await listener.promise;
localserver.closeCachedConnections();
server.stop();
// Correct text? (original file uses LF only, so strip CR)
Assert.equal(
msgText.replaceAll("\r", ""),
daemon.getGroup("test1")[1].fullText
);
// No illegal commands?
test = "bug 403242";
let transaction = server.playTransaction();
do_check_transaction(transaction[transaction.length - 1], [
"MODE READER",
"GROUP test1",
"ARTICLE 1",
]);
});
|