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
|
// Bug 37465 -- assertions with no accounts
const { PromiseTestUtils } = ChromeUtils.import(
"resource://testing-common/mailnews/PromiseTestUtils.jsm"
);
var { MailServices } = ChromeUtils.import(
"resource:///modules/MailServices.jsm"
);
add_task(async function textChannelAsync() {
let daemon = setupNNTPDaemon();
let server = makeServer(NNTP_RFC2980_handler, daemon);
server.start();
// Correct URI?
let uri = Services.io.newURI(
"news://localhost:" + server.port + "/1@regular.invalid"
);
let newsUri = uri
.QueryInterface(Ci.nsINntpUrl)
.QueryInterface(Ci.nsIMsgMailNewsUrl);
Assert.equal(uri.port, server.port);
Assert.equal(newsUri.server, null);
Assert.equal(newsUri.messageID, "1@regular.invalid");
Assert.equal(newsUri.folder, null);
// Run the URI and make sure we get the message
let channel = Services.io.newChannelFromURI(
uri,
null,
Services.scriptSecurityManager.getSystemPrincipal(),
null,
Ci.nsILoadInfo.SEC_ALLOW_CROSS_ORIGIN_SEC_CONTEXT_IS_NULL,
Ci.nsIContentPolicy.TYPE_OTHER
);
let listener = new PromiseTestUtils.PromiseStreamListener();
channel.asyncOpen(listener, null);
let msgText = await listener.promise;
// Correct text? (original file uses LF only, so strip CR)
Assert.equal(
msgText.replaceAll("\r", ""),
daemon.getArticle("<1@regular.invalid>").fullText
);
// Shut down connections
MailServices.accounts.closeCachedConnections();
server.stop();
});
|