summaryrefslogtreecommitdiffstats
path: root/comm/mailnews/news/test/unit/test_bug403242.js
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mailnews/news/test/unit/test_bug403242.js')
-rw-r--r--comm/mailnews/news/test/unit/test_bug403242.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/comm/mailnews/news/test/unit/test_bug403242.js b/comm/mailnews/news/test/unit/test_bug403242.js
new file mode 100644
index 0000000000..54a385da78
--- /dev/null
+++ b/comm/mailnews/news/test/unit/test_bug403242.js
@@ -0,0 +1,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",
+ ]);
+});