diff options
Diffstat (limited to 'comm/mailnews/news/test/unit/test_cancelPasswordDialog.js')
-rw-r--r-- | comm/mailnews/news/test/unit/test_cancelPasswordDialog.js | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/comm/mailnews/news/test/unit/test_cancelPasswordDialog.js b/comm/mailnews/news/test/unit/test_cancelPasswordDialog.js new file mode 100644 index 0000000000..5212614b3a --- /dev/null +++ b/comm/mailnews/news/test/unit/test_cancelPasswordDialog.js @@ -0,0 +1,59 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +var { PromiseTestUtils } = ChromeUtils.import( + "resource://testing-common/mailnews/PromiseTestUtils.jsm" +); + +/* import-globals-from ../../../test/resources/alertTestUtils.js */ +load("../../../resources/alertTestUtils.js"); + +let daemon = setupNNTPDaemon(); +let server = makeServer(NNTP_RFC4643_extension, daemon); +server.start(); +registerCleanupFunction(() => { + server.stop(); +}); + +/** + * Test connection should be closed after canceling the password dialog. + */ +add_task(async function cancelPasswordDialog() { + // Mock the password prompt. + registerAlertTestUtils(); + + // Enforce server auth and trigger a list group request. + let incomingServer = setupLocalServer(server.port); + incomingServer.pushAuth = true; + let listener = new PromiseTestUtils.PromiseStreamListener(); + incomingServer.loadNewsUrl( + Services.io.newURI(`news://localhost:${server.port}/*`), + null, + listener + ); + + // The request should be aborted. + try { + await listener.promise; + } catch (e) { + equal(e, Cr.NS_ERROR_ABORT); + } + + // Should send nothing after canceling the password dialog. + let transaction = server.playTransaction(); + do_check_transaction(transaction, ["MODE READER"]); +}); + +function promptUsernameAndPasswordPS( + aParent, + aDialogTitle, + aText, + aUsername, + aPassword, + aCheckMsg, + aCheckState +) { + // Cancel the password dialog. + return false; +} |