From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- comm/mailnews/news/test/unit/test_bug403242.js | 55 ++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 comm/mailnews/news/test/unit/test_bug403242.js (limited to 'comm/mailnews/news/test/unit/test_bug403242.js') 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", + ]); +}); -- cgit v1.2.3