summaryrefslogtreecommitdiffstats
path: root/netwerk/test/browser/browser_post_auth.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--netwerk/test/browser/browser_post_auth.js62
1 files changed, 62 insertions, 0 deletions
diff --git a/netwerk/test/browser/browser_post_auth.js b/netwerk/test/browser/browser_post_auth.js
new file mode 100644
index 0000000000..93be694f3b
--- /dev/null
+++ b/netwerk/test/browser/browser_post_auth.js
@@ -0,0 +1,62 @@
+"use strict";
+
+const { PromptTestUtils } = ChromeUtils.importESModule(
+ "resource://testing-common/PromptTestUtils.sys.mjs"
+);
+
+const FOLDER = getRootDirectory(gTestPath).replace(
+ "chrome://mochitests/content/",
+ "http://mochi.test:8888/"
+);
+
+add_task(async function () {
+ let tab = await BrowserTestUtils.openNewForegroundTab(
+ gBrowser,
+ "about:blank"
+ );
+ let browserLoadedPromise = BrowserTestUtils.browserLoaded(
+ tab.linkedBrowser,
+ true,
+ `${FOLDER}post.html`
+ );
+ BrowserTestUtils.loadURIString(tab.linkedBrowser, `${FOLDER}post.html`);
+ await browserLoadedPromise;
+
+ let finalLoadPromise = BrowserTestUtils.browserLoaded(
+ tab.linkedBrowser,
+ true,
+ `${FOLDER}auth_post.sjs`
+ );
+
+ await SpecialPowers.spawn(tab.linkedBrowser, [], async function () {
+ let file = new content.File(
+ [new content.Blob(["1234".repeat(1024 * 500)], { type: "text/plain" })],
+ "test-name"
+ );
+ content.document.getElementById("input_file").mozSetFileArray([file]);
+ content.document.getElementById("form").submit();
+ });
+
+ let promptPromise = PromptTestUtils.handleNextPrompt(
+ tab.linkedBrowser,
+ {
+ modalType: Services.prefs.getIntPref("prompts.modalType.httpAuth"),
+ promptType: "promptUserAndPass",
+ },
+ { buttonNumClick: 0, loginInput: "user", passwordInput: "pass" }
+ );
+
+ await promptPromise;
+
+ await finalLoadPromise;
+
+ await SpecialPowers.spawn(tab.linkedBrowser, [], async function () {
+ Assert.ok(content.location.href.includes("auth_post.sjs"));
+ Assert.ok(content.document.body.innerHTML.includes("1234"));
+ });
+
+ BrowserTestUtils.removeTab(tab);
+
+ // Clean up any active logins we added during the test.
+ Services.obs.notifyObservers(null, "net:clear-active-logins");
+});