releases-comm-central/mailnews/news/test/unit/test_bug170727.js

62 строки
2.0 KiB
JavaScript

// 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();
});