65 lines
1.7 KiB
JavaScript
65 lines
1.7 KiB
JavaScript
"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.startLoadingURIString(
|
|
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: Ci.nsIPrompt.MODAL_TYPE_TAB,
|
|
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");
|
|
});
|