diff options
Diffstat (limited to 'comm/mailnews/news/test/unit/test_bug170727.js')
-rw-r--r-- | comm/mailnews/news/test/unit/test_bug170727.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/comm/mailnews/news/test/unit/test_bug170727.js b/comm/mailnews/news/test/unit/test_bug170727.js new file mode 100644 index 0000000000..50bda7b096 --- /dev/null +++ b/comm/mailnews/news/test/unit/test_bug170727.js @@ -0,0 +1,61 @@ +// Bug 170727 - Remove the escaped dot from body lines before saving in the offline store. + +const { PromiseTestUtils } = ChromeUtils.import( + "resource://testing-common/mailnews/PromiseTestUtils.jsm" +); + +add_task(async function testloadMessage() { + let daemon = setupNNTPDaemon(); + daemon.addGroup("dot.test"); + daemon.addArticle(make_article(do_get_file("postings/post3.eml"))); + + let server = makeServer(NNTP_RFC2980_handler, daemon); + server.start(); + let localserver = setupLocalServer(server.port); + localserver.subscribeToNewsgroup("dot.test"); + + let folder = localserver.rootFolder.getChildNamed("dot.test"); + folder.setFlag(Ci.nsMsgFolderFlags.Offline); + folder.getNewMessages(null, { + OnStopRunningUrl() { + localserver.closeCachedConnections(); + }, + }); + server.performTest(); + + let uri = folder.generateMessageURI(1); + let msgService = Cc[ + "@mozilla.org/messenger/messageservice;1?type=news" + ].getService(Ci.nsIMsgMessageService); + + // Pretend to display the message: During the first run, the article is downloaded, + // displayed directly and simultaneously saved in the offline storage. + { + let listener = new PromiseTestUtils.PromiseStreamListener(); + msgService.loadMessage(uri, listener, null, null, false); + let msgText = await listener.promise; + localserver.closeCachedConnections(); + + // Correct text? (original file uses LF only, so strip CR) + Assert.equal( + msgText.replaceAll("\r", ""), + daemon.getArticle("<2@dot.invalid>").fullText + ); + } + + // In the second run, the offline store serves as the source of the article. + { + let listener = new PromiseTestUtils.PromiseStreamListener(); + msgService.loadMessage(uri, listener, null, null, false); + let msgText = await listener.promise; + localserver.closeCachedConnections(); + + // Correct text? (original file uses LF only, so strip CR) + Assert.equal( + msgText.replaceAll("\r", ""), + daemon.getArticle("<2@dot.invalid>").fullText + ); + } + + server.stop(); +}); |