diff options
Diffstat (limited to 'toolkit/components/passwordmgr/test/mochitest/test_formless_submit.html')
-rw-r--r-- | toolkit/components/passwordmgr/test/mochitest/test_formless_submit.html | 183 |
1 files changed, 0 insertions, 183 deletions
diff --git a/toolkit/components/passwordmgr/test/mochitest/test_formless_submit.html b/toolkit/components/passwordmgr/test/mochitest/test_formless_submit.html deleted file mode 100644 index 468da1e7f..000000000 --- a/toolkit/components/passwordmgr/test/mochitest/test_formless_submit.html +++ /dev/null @@ -1,183 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> - <title>Test capturing of fields outside of a form</title> - <script src="/tests/SimpleTest/SimpleTest.js"></script> - <script src="/tests/SimpleTest/SpawnTask.js"></script> - <script src="pwmgr_common.js"></script> - <link rel="stylesheet" href="/tests/SimpleTest/test.css" /> -</head> -<body> -<script type="application/javascript;version=1.8"> -const LMCBackstagePass = SpecialPowers.Cu.import("resource://gre/modules/LoginManagerContent.jsm"); -const { LoginManagerContent, LoginFormFactory } = LMCBackstagePass; - -let chromeScript = runInParent(SimpleTest.getTestFileURL("pwmgr_common.js")); - -let loadPromise = new Promise(resolve => { - document.addEventListener("DOMContentLoaded", () => { - document.getElementById("loginFrame").addEventListener("load", (evt) => { - resolve(); - }); - }); -}); - -add_task(function* setup() { - info("Waiting for page and frame loads"); - yield loadPromise; - - yield loadRecipes({ - siteRecipes: [{ - hosts: ["mochi.test:8888"], - usernameSelector: "input[name='recipeuname']", - passwordSelector: "input[name='recipepword']", - }], - }); -}); - -const DEFAULT_ORIGIN = "http://mochi.test:8888"; -const TESTCASES = [ - { - // Inputs - document: `<input type=password value="pass1">`, - inputIndexForFormLike: 0, - - // Expected outputs similar to RemoteLogins:onFormSubmit - hostname: DEFAULT_ORIGIN, - formSubmitURL: DEFAULT_ORIGIN, - usernameFieldValue: null, - newPasswordFieldValue: "pass1", - oldPasswordFieldValue: null, - }, - { - document: `<input value="user1"> - <input type=password value="pass1">`, - inputIndexForFormLike: 0, - hostname: DEFAULT_ORIGIN, - formSubmitURL: DEFAULT_ORIGIN, - usernameFieldValue: "user1", - newPasswordFieldValue: "pass1", - oldPasswordFieldValue: null, - }, - { - document: `<input value="user1"> - <input type=password value="pass1">`, - inputIndexForFormLike: 1, - hostname: DEFAULT_ORIGIN, - formSubmitURL: DEFAULT_ORIGIN, - usernameFieldValue: "user1", - newPasswordFieldValue: "pass1", - oldPasswordFieldValue: null, - }, - { - document: `<input value="user1"> - <input type=password value="pass1"> - <input type=password value="pass2">`, - inputIndexForFormLike: 2, - hostname: DEFAULT_ORIGIN, - formSubmitURL: DEFAULT_ORIGIN, - usernameFieldValue: "user1", - newPasswordFieldValue: "pass2", - oldPasswordFieldValue: "pass1", - }, - { - document: `<input value="user1"> - <input type=password value="pass1"> - <input type=password value="pass2"> - <input type=password value="pass2">`, - inputIndexForFormLike: 3, - hostname: DEFAULT_ORIGIN, - formSubmitURL: DEFAULT_ORIGIN, - usernameFieldValue: "user1", - newPasswordFieldValue: "pass2", - oldPasswordFieldValue: "pass1", - }, - { - document: `<input value="user1"> - <input type=password value="user2" form="form1"> - <input type=password value="pass1"> - <form id="form1"> - <input value="user3"> - <input type=password value="pass2"> - </form>`, - inputIndexForFormLike: 2, - hostname: DEFAULT_ORIGIN, - formSubmitURL: DEFAULT_ORIGIN, - usernameFieldValue: "user1", - newPasswordFieldValue: "pass1", - oldPasswordFieldValue: null, - }, - { - document: `<!-- recipe field override --> - <input name="recipeuname" value="username from recipe"> - <input value="default field username"> - <input type=password value="pass1"> - <input name="recipepword" type=password value="pass2">`, - inputIndexForFormLike: 2, - hostname: DEFAULT_ORIGIN, - formSubmitURL: DEFAULT_ORIGIN, - usernameFieldValue: "username from recipe", - newPasswordFieldValue: "pass2", - oldPasswordFieldValue: null, - }, -]; - -function getSubmitMessage() { - info("getSubmitMessage"); - return new Promise((resolve, reject) => { - chromeScript.addMessageListener("formSubmissionProcessed", function processed(...args) { - info("got formSubmissionProcessed"); - chromeScript.removeMessageListener("formSubmissionProcessed", processed); - resolve(...args); - }); - }); -} - -add_task(function* test() { - let loginFrame = document.getElementById("loginFrame"); - let frameDoc = loginFrame.contentWindow.document; - - for (let tc of TESTCASES) { - info("Starting testcase: " + JSON.stringify(tc)); - frameDoc.documentElement.innerHTML = tc.document; - let inputForFormLike = frameDoc.querySelectorAll("input")[tc.inputIndexForFormLike]; - - let formLike = LoginFormFactory.createFromField(inputForFormLike); - - info("Calling _onFormSubmit with FormLike"); - let processedPromise = getSubmitMessage(); - LoginManagerContent._onFormSubmit(formLike); - - let submittedResult = yield processedPromise; - - // Check data sent via RemoteLogins:onFormSubmit - is(submittedResult.hostname, tc.hostname, "Check hostname"); - is(submittedResult.formSubmitURL, tc.formSubmitURL, "Check formSubmitURL"); - - if (tc.usernameFieldValue === null) { - is(submittedResult.usernameField, tc.usernameFieldValue, "Check usernameField"); - } else { - is(submittedResult.usernameField.value, tc.usernameFieldValue, "Check usernameField"); - } - - is(submittedResult.newPasswordField.value, tc.newPasswordFieldValue, "Check newPasswordFieldValue"); - - if (tc.oldPasswordFieldValue === null) { - is(submittedResult.oldPasswordField, tc.oldPasswordFieldValue, "Check oldPasswordFieldValue"); - } else { - is(submittedResult.oldPasswordField.value, tc.oldPasswordFieldValue, "Check oldPasswordFieldValue"); - } - } -}); - -</script> - -<p id="display"></p> - -<div id="content"> - <iframe id="loginFrame" src="http://mochi.test:8888/tests/toolkit/components/passwordmgr/test/blank.html"></iframe> -</div> -<pre id="test"></pre> -</body> -</html> |