summaryrefslogtreecommitdiffstats
path: root/toolkit/components/passwordmgr/test/mochitest/test_prompt_http.html
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/passwordmgr/test/mochitest/test_prompt_http.html')
-rw-r--r--toolkit/components/passwordmgr/test/mochitest/test_prompt_http.html362
1 files changed, 0 insertions, 362 deletions
diff --git a/toolkit/components/passwordmgr/test/mochitest/test_prompt_http.html b/toolkit/components/passwordmgr/test/mochitest/test_prompt_http.html
deleted file mode 100644
index 0dc8fdf9c..000000000
--- a/toolkit/components/passwordmgr/test/mochitest/test_prompt_http.html
+++ /dev/null
@@ -1,362 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <meta charset="utf-8">
- <title>Test HTTP auth prompts by loading authenticate.sjs</title>
- <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="text/javascript" src="/tests/SimpleTest/SpawnTask.js"></script>
- <script type="text/javascript" src="pwmgr_common.js"></script>
- <script type="text/javascript" src="prompt_common.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
-</head>
-<body>
-<p id="display"></p>
-
-<div id="content" style="display: none">
- <iframe id="iframe"></iframe>
-</div>
-
-<pre id="test">
-<script class="testbody" type="text/javascript">
-var iframe = document.getElementById("iframe");
-
-// Force parent to not look for tab-modal prompts, as they're not used for auth prompts.
-isTabModal = false;
-
-const AUTHENTICATE_PATH = new URL("authenticate.sjs", window.location.href).pathname;
-
-let chromeScript = runInParent(SimpleTest.getTestFileURL("pwmgr_common.js"));
-
-runInParent(() => {
- const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
- Cu.import("resource://gre/modules/Services.jsm");
-
- let pwmgr = Cc["@mozilla.org/login-manager;1"].
- getService(Ci.nsILoginManager);
-
- let login3A, login3B, login4;
- login3A = Cc["@mozilla.org/login-manager/loginInfo;1"].
- createInstance(Ci.nsILoginInfo);
- login3B = Cc["@mozilla.org/login-manager/loginInfo;1"].
- createInstance(Ci.nsILoginInfo);
- login4 = Cc["@mozilla.org/login-manager/loginInfo;1"].
- createInstance(Ci.nsILoginInfo);
- let httpUpgradeLogin = Cc["@mozilla.org/login-manager/loginInfo;1"].
- createInstance(Ci.nsILoginInfo);
- let httpsDowngradeLogin = Cc["@mozilla.org/login-manager/loginInfo;1"].
- createInstance(Ci.nsILoginInfo);
- let dedupeHttpUpgradeLogin = Cc["@mozilla.org/login-manager/loginInfo;1"].
- createInstance(Ci.nsILoginInfo);
- let dedupeHttpsUpgradeLogin = Cc["@mozilla.org/login-manager/loginInfo;1"].
- createInstance(Ci.nsILoginInfo);
-
-
- login3A.init("http://mochi.test:8888", null, "mochitest",
- "mochiuser1", "mochipass1", "", "");
- login3B.init("http://mochi.test:8888", null, "mochitest2",
- "mochiuser2", "mochipass2", "", "");
- login4.init("http://mochi.test:8888", null, "mochitest3",
- "mochiuser3", "mochipass3-old", "", "");
- // Logins to test scheme upgrades (allowed) and downgrades (disallowed)
- httpUpgradeLogin.init("http://example.com", null, "schemeUpgrade",
- "httpUser", "httpPass", "", "");
- httpsDowngradeLogin.init("https://example.com", null, "schemeDowngrade",
- "httpsUser", "httpsPass", "", "");
- // HTTP and HTTPS version of the same domain and realm but with different passwords.
- dedupeHttpUpgradeLogin.init("http://example.org", null, "schemeUpgradeDedupe",
- "dedupeUser", "httpPass", "", "");
- dedupeHttpsUpgradeLogin.init("https://example.org", null, "schemeUpgradeDedupe",
- "dedupeUser", "httpsPass", "", "");
-
-
- pwmgr.addLogin(login3A);
- pwmgr.addLogin(login3B);
- pwmgr.addLogin(login4);
- pwmgr.addLogin(httpUpgradeLogin);
- pwmgr.addLogin(httpsDowngradeLogin);
- pwmgr.addLogin(dedupeHttpUpgradeLogin);
- pwmgr.addLogin(dedupeHttpsUpgradeLogin);
-});
-
-add_task(function* test_iframe() {
- let state = {
- msg : "http://mochi.test:8888 is requesting your username and password. The site says: “mochitest”",
- title : "Authentication Required",
- textValue : "mochiuser1",
- passValue : "mochipass1",
- iconClass : "authentication-icon question-icon",
- titleHidden : true,
- textHidden : false,
- passHidden : false,
- checkHidden : true,
- checkMsg : "",
- checked : false,
- focused : "textField",
- defButton : "button0",
- };
- let action = {
- buttonClick : "ok",
- };
- promptDone = handlePrompt(state, action);
-
- // The following tests are driven by iframe loads
-
- var iframeLoaded = onloadPromiseFor("iframe");
- iframe.src = "authenticate.sjs?user=mochiuser1&pass=mochipass1";
- yield promptDone;
- yield iframeLoaded;
- checkEchoedAuthInfo({user: "mochiuser1", pass: "mochipass1"},
- iframe.contentDocument);
-
- state = {
- msg : "http://mochi.test:8888 is requesting your username and password. The site says: “mochitest2”",
- title : "Authentication Required",
- textValue : "mochiuser2",
- passValue : "mochipass2",
- iconClass : "authentication-icon question-icon",
- titleHidden : true,
- textHidden : false,
- passHidden : false,
- checkHidden : true,
- checkMsg : "",
- checked : false,
- focused : "textField",
- defButton : "button0",
- };
- action = {
- buttonClick : "ok",
- };
- promptDone = handlePrompt(state, action);
- // We've already authenticated to this host:port. For this next
- // request, the existing auth should be sent, we'll get a 401 reply,
- // and we should prompt for new auth.
- iframeLoaded = onloadPromiseFor("iframe");
- iframe.src = "authenticate.sjs?user=mochiuser2&pass=mochipass2&realm=mochitest2";
- yield promptDone;
- yield iframeLoaded;
- checkEchoedAuthInfo({user: "mochiuser2", pass: "mochipass2"},
- iframe.contentDocument);
-
- // Now make a load that requests the realm from test 1000. It was
- // already provided there, so auth will *not* be prompted for -- the
- // networking layer already knows it!
- iframeLoaded = onloadPromiseFor("iframe");
- iframe.src = "authenticate.sjs?user=mochiuser1&pass=mochipass1";
- yield iframeLoaded;
- checkEchoedAuthInfo({user: "mochiuser1", pass: "mochipass1"},
- iframe.contentDocument);
-
- // Same realm we've already authenticated to, but with a different
- // expected password (to trigger an auth prompt, and change-password
- // popup notification).
- state = {
- msg : "http://mochi.test:8888 is requesting your username and password. The site says: “mochitest”",
- title : "Authentication Required",
- textValue : "mochiuser1",
- passValue : "mochipass1",
- iconClass : "authentication-icon question-icon",
- titleHidden : true,
- textHidden : false,
- passHidden : false,
- checkHidden : true,
- checkMsg : "",
- checked : false,
- focused : "textField",
- defButton : "button0",
- };
- action = {
- buttonClick : "ok",
- passField : "mochipass1-new",
- };
- promptDone = handlePrompt(state, action);
- iframeLoaded = onloadPromiseFor("iframe");
- let promptShownPromise = promisePromptShown("passwordmgr-prompt-change");
- iframe.src = "authenticate.sjs?user=mochiuser1&pass=mochipass1-new";
- yield promptDone;
- yield iframeLoaded;
- checkEchoedAuthInfo({user: "mochiuser1", pass: "mochipass1-new"},
- iframe.contentDocument);
- yield promptShownPromise;
-
- // Same as last test, but for a realm we haven't already authenticated
- // to (but have an existing saved login for, so that we'll trigger
- // a change-password popup notification.
- state = {
- msg : "http://mochi.test:8888 is requesting your username and password. The site says: “mochitest3”",
- title : "Authentication Required",
- textValue : "mochiuser3",
- passValue : "mochipass3-old",
- iconClass : "authentication-icon question-icon",
- titleHidden : true,
- textHidden : false,
- passHidden : false,
- checkHidden : true,
- checkMsg : "",
- checked : false,
- focused : "textField",
- defButton : "button0",
- };
- action = {
- buttonClick : "ok",
- passField : "mochipass3-new",
- };
- promptDone = handlePrompt(state, action);
- iframeLoaded = onloadPromiseFor("iframe");
- promptShownPromise = promisePromptShown("passwordmgr-prompt-change");
- iframe.src = "authenticate.sjs?user=mochiuser3&pass=mochipass3-new&realm=mochitest3";
- yield promptDone;
- yield iframeLoaded;
- checkEchoedAuthInfo({user: "mochiuser3", pass: "mochipass3-new"},
- iframe.contentDocument);
- yield promptShownPromise;
-
- // Housekeeping: Delete login4 to test the save prompt in the next test.
- runInParent(() => {
- const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
- Cu.import("resource://gre/modules/Services.jsm");
-
- var tmpLogin = Cc["@mozilla.org/login-manager/loginInfo;1"].
- createInstance(Ci.nsILoginInfo);
- tmpLogin.init("http://mochi.test:8888", null, "mochitest3",
- "mochiuser3", "mochipass3-old", "", "");
- Services.logins.removeLogin(tmpLogin);
-
- // Clear cached auth from this subtest, and avoid leaking due to bug 459620.
- var authMgr = Cc['@mozilla.org/network/http-auth-manager;1'].
- getService(Ci.nsIHttpAuthManager);
- authMgr.clearAll();
- });
-
- state = {
- msg : "http://mochi.test:8888 is requesting your username and password. The site says: “mochitest3”",
- title : "Authentication Required",
- textValue : "",
- passValue : "",
- iconClass : "authentication-icon question-icon",
- titleHidden : true,
- textHidden : false,
- passHidden : false,
- checkHidden : true,
- checkMsg : "",
- checked : false,
- focused : "textField",
- defButton : "button0",
- };
- action = {
- buttonClick : "ok",
- textField : "mochiuser3",
- passField : "mochipass3-old",
- };
- // Trigger a new prompt, so we can test adding a new login.
- promptDone = handlePrompt(state, action);
-
- iframeLoaded = onloadPromiseFor("iframe");
- promptShownPromise = promisePromptShown("passwordmgr-prompt-save");
- iframe.src = "authenticate.sjs?user=mochiuser3&pass=mochipass3-old&realm=mochitest3";
- yield promptDone;
- yield iframeLoaded;
- checkEchoedAuthInfo({user: "mochiuser3", pass: "mochipass3-old"},
- iframe.contentDocument);
- yield promptShownPromise;
-});
-
-add_task(function* test_schemeUpgrade() {
- let state = {
- msg : "https://example.com is requesting your username and password. " +
- "WARNING: Your password will not be sent to the website you are currently visiting!",
- title : "Authentication Required",
- textValue : "httpUser",
- passValue : "httpPass",
- iconClass : "authentication-icon question-icon",
- titleHidden : true,
- textHidden : false,
- passHidden : false,
- checkHidden : true,
- checkMsg : "",
- checked : false,
- focused : "textField",
- defButton : "button0",
- };
- let action = {
- buttonClick : "ok",
- };
- let promptDone = handlePrompt(state, action);
-
- // The following tests are driven by iframe loads
-
- let iframeLoaded = onloadPromiseFor("iframe");
- iframe.src = "https://example.com" + AUTHENTICATE_PATH +
- "?user=httpUser&pass=httpPass&realm=schemeUpgrade";
- yield promptDone;
- yield iframeLoaded;
- checkEchoedAuthInfo({user: "httpUser", pass: "httpPass"},
- SpecialPowers.wrap(iframe).contentDocument);
-});
-
-add_task(function* test_schemeDowngrade() {
- let state = {
- msg : "http://example.com is requesting your username and password. " +
- "WARNING: Your password will not be sent to the website you are currently visiting!",
- title : "Authentication Required",
- textValue : "", // empty because we shouldn't downgrade
- passValue : "",
- iconClass : "authentication-icon question-icon",
- titleHidden : true,
- textHidden : false,
- passHidden : false,
- checkHidden : true,
- checkMsg : "",
- checked : false,
- focused : "textField",
- defButton : "button0",
- };
- let action = {
- buttonClick : "cancel",
- };
- let promptDone = handlePrompt(state, action);
-
- // The following tests are driven by iframe loads
-
- let iframeLoaded = onloadPromiseFor("iframe");
- iframe.src = "http://example.com" + AUTHENTICATE_PATH +
- "?user=unused&pass=unused&realm=schemeDowngrade";
- yield promptDone;
- yield iframeLoaded;
-});
-
-add_task(function* test_schemeUpgrade_dedupe() {
- let state = {
- msg : "https://example.org is requesting your username and password. " +
- "WARNING: Your password will not be sent to the website you are currently visiting!",
- title : "Authentication Required",
- textValue : "dedupeUser",
- passValue : "httpsPass",
- iconClass : "authentication-icon question-icon",
- titleHidden : true,
- textHidden : false,
- passHidden : false,
- checkHidden : true,
- checkMsg : "",
- checked : false,
- focused : "textField",
- defButton : "button0",
- };
- let action = {
- buttonClick : "ok",
- };
- let promptDone = handlePrompt(state, action);
-
- // The following tests are driven by iframe loads
-
- let iframeLoaded = onloadPromiseFor("iframe");
- iframe.src = "https://example.org" + AUTHENTICATE_PATH +
- "?user=dedupeUser&pass=httpsPass&realm=schemeUpgradeDedupe";
- yield promptDone;
- yield iframeLoaded;
- checkEchoedAuthInfo({user: "dedupeUser", pass: "httpsPass"},
- SpecialPowers.wrap(iframe).contentDocument);
-});
-</script>
-</pre>
-</body>
-</html>