diff options
Diffstat (limited to 'toolkit/components/passwordmgr/test/mochitest/test_prompt_promptAuth.html')
-rw-r--r-- | toolkit/components/passwordmgr/test/mochitest/test_prompt_promptAuth.html | 406 |
1 files changed, 0 insertions, 406 deletions
diff --git a/toolkit/components/passwordmgr/test/mochitest/test_prompt_promptAuth.html b/toolkit/components/passwordmgr/test/mochitest/test_prompt_promptAuth.html deleted file mode 100644 index 36f53a54a..000000000 --- a/toolkit/components/passwordmgr/test/mochitest/test_prompt_promptAuth.html +++ /dev/null @@ -1,406 +0,0 @@ -<!DOCTYPE HTML> -<html> -<head> - <meta charset="utf-8"> - <title>Test promptAuth prompts</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"> -</div> - -<pre id="test"> -<script class="testbody" type="text/javascript"> -var state, action; -var isOk; - -var level = Ci.nsIAuthPrompt2.LEVEL_NONE; -var authinfo = { - username : "", - password : "", - domain : "", - - flags : Ci.nsIAuthInformation.AUTH_HOST, - authenticationScheme : "basic", - realm : "" -}; - -// Force parent to not look for tab-modal prompts, as they're not used for auth prompts. -isTabModal = false; - -let chromeScript = runInParent(SimpleTest.getTestFileURL("pwmgr_common.js")); - -let prompterParent = runInParent(() => { - const { classes: Cc, interfaces: Ci, utils: Cu } = Components; - const promptFac = Cc["@mozilla.org/passwordmanager/authpromptfactory;1"]. - getService(Ci.nsIPromptFactory); - - Cu.import("resource://gre/modules/Services.jsm"); - let chromeWin = Services.wm.getMostRecentWindow("navigator:browser"); - let prompter2 = promptFac.getPrompt(chromeWin, Ci.nsIAuthPrompt2); - - let ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); - let channels = {}; - channels.channel1 = ioService.newChannel2("http://example.com", - null, - null, - null, // aLoadingNode - Services. - scriptSecurityManager.getSystemPrincipal(), - null, // aTriggeringPrincipal - Ci.nsILoadInfo.SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL, - Ci.nsIContentPolicy.TYPE_OTHER); - - channels.channel2 = ioService.newChannel2("http://example2.com", - null, - null, - null, // aLoadingNode - Services. - scriptSecurityManager.getSystemPrincipal(), - null, // aTriggeringPrincipal - Ci.nsILoadInfo.SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL, - Ci.nsIContentPolicy.TYPE_OTHER); - - addMessageListener("proxyPrompter", function onMessage(msg) { - let args = [...msg.args]; - let channelName = args.shift(); - // Replace the channel name string (arg. 0) with the channel by that name. - args.unshift(channels[channelName]); - - let rv = prompter2[msg.methodName](...args); - return { - rv, - // Send the args back to content so out/inout args can be checked. - args: msg.args, - }; - }); - - Cu.import("resource://gre/modules/Services.jsm"); - - let pwmgr = Cc["@mozilla.org/login-manager;1"]. - getService(Ci.nsILoginManager); - - let login1, login2A, login2B, login2C, login2D, login2E; - login1 = Cc["@mozilla.org/login-manager/loginInfo;1"]. - createInstance(Ci.nsILoginInfo); - login2A = Cc["@mozilla.org/login-manager/loginInfo;1"]. - createInstance(Ci.nsILoginInfo); - login2B = Cc["@mozilla.org/login-manager/loginInfo;1"]. - createInstance(Ci.nsILoginInfo); - login2C = Cc["@mozilla.org/login-manager/loginInfo;1"]. - createInstance(Ci.nsILoginInfo); - login2D = Cc["@mozilla.org/login-manager/loginInfo;1"]. - createInstance(Ci.nsILoginInfo); - login2E = Cc["@mozilla.org/login-manager/loginInfo;1"]. - createInstance(Ci.nsILoginInfo); - - login1.init("http://example.com", null, "http://example.com", - "", "examplepass", "", ""); - login2A.init("http://example2.com", null, "http://example2.com", - "user1name", "user1pass", "", ""); - login2B.init("http://example2.com", null, "http://example2.com", - "user2name", "user2pass", "", ""); - login2C.init("http://example2.com", null, "http://example2.com", - "user3.name@host", "user3pass", "", ""); - login2D.init("http://example2.com", null, "http://example2.com", - "100@beef", "user3pass", "", ""); - login2E.init("http://example2.com", null, "http://example2.com", - "100%beef", "user3pass", "", ""); - - pwmgr.addLogin(login1); - pwmgr.addLogin(login2A); - pwmgr.addLogin(login2B); - pwmgr.addLogin(login2C); - pwmgr.addLogin(login2D); - pwmgr.addLogin(login2E); -}); - -let prompter2 = new PrompterProxy(prompterParent); - -add_task(function* test_accept() { - state = { - msg : "http://example.com is requesting your username and password. The site says: “some realm”", - title : "Authentication Required", - textValue : "inuser", - passValue : "inpass", - iconClass : "authentication-icon question-icon", - titleHidden : true, - textHidden : false, - passHidden : false, - checkHidden : true, - checkMsg : "", - checked : false, - focused : "textField", - defButton : "button0", - }; - action = { - buttonClick : "ok", - textField : "outuser", - passField : "outpass", - }; - authinfo.username = "inuser"; - authinfo.password = "inpass"; - authinfo.realm = "some realm"; - - promptDone = handlePrompt(state, action); - // Since prompter2 is actually a proxy to send a message to a chrome script and - // we can't send a channel in a message, we instead send the channel name that - // already exists in the chromeScript. - isOk = prompter2.promptAuth("channel1", level, authinfo); - yield promptDone; - - ok(isOk, "Checking dialog return value (accept)"); - is(authinfo.username, "outuser", "Checking returned username"); - is(authinfo.password, "outpass", "Checking returned password"); -}); - -add_task(function* test_cancel() { - state = { - msg : "http://example.com is requesting your username and password. The site says: “some realm”", - title : "Authentication Required", - textValue : "outuser", - passValue : "outpass", - iconClass : "authentication-icon question-icon", - titleHidden : true, - textHidden : false, - passHidden : false, - checkHidden : true, - checkMsg : "", - checked : false, - focused : "textField", - defButton : "button0", - }; - action = { - buttonClick : "cancel", - }; - promptDone = handlePrompt(state, action); - isOk = prompter2.promptAuth("channel1", level, authinfo); - yield promptDone; - - ok(!isOk, "Checking dialog return value (cancel)"); -}); - -add_task(function* test_pwonly() { - // test filling in password-only login - state = { - msg : "http://example.com is requesting your username and password. The site says: “http://example.com”", - title : "Authentication Required", - textValue : "", - passValue : "examplepass", - iconClass : "authentication-icon question-icon", - titleHidden : true, - textHidden : false, - passHidden : false, - checkHidden : true, - checkMsg : "", - checked : false, - focused : "textField", - defButton : "button0", - }; - action = { - buttonClick : "ok", - }; - authinfo.username = ""; - authinfo.password = ""; - authinfo.realm = "http://example.com"; - - promptDone = handlePrompt(state, action); - isOk = prompter2.promptAuth("channel1", level, authinfo); - yield promptDone; - - ok(isOk, "Checking dialog return value (accept)"); - is(authinfo.username, "", "Checking returned username"); - is(authinfo.password, "examplepass", "Checking returned password"); -}); - -add_task(function* test_multipleExisting() { - // test filling in existing login (undetermined from multiple selection) - // user2name/user2pass would also be valid to fill here. - state = { - msg : "http://example2.com is requesting your username and password. The site says: “http://example2.com”", - title : "Authentication Required", - textValue : "user1name", - passValue : "user1pass", - iconClass : "authentication-icon question-icon", - titleHidden : true, - textHidden : false, - passHidden : false, - checkHidden : true, - checkMsg : "", - checked : false, - focused : "textField", - defButton : "button0", - }; - action = { - buttonClick : "ok", - }; - authinfo.username = ""; - authinfo.password = ""; - authinfo.realm = "http://example2.com"; - - promptDone = handlePrompt(state, action); - isOk = prompter2.promptAuth("channel2", level, authinfo); - yield promptDone; - - ok(isOk, "Checking dialog return value (accept)"); - ok(authinfo.username == "user1name" || authinfo.username == "user2name", "Checking returned username"); - ok(authinfo.password == "user1pass" || authinfo.password == "user2pass", "Checking returned password"); -}); - -add_task(function* test_multipleExisting2() { - // test filling in existing login (undetermined --> user1) - // user2name/user2pass would also be valid to fill here. - state = { - msg : "http://example2.com is requesting your username and password. The site says: “http://example2.com”", - title : "Authentication Required", - textValue : "user1name", - passValue : "user1pass", - iconClass : "authentication-icon question-icon", - titleHidden : true, - textHidden : false, - passHidden : false, - checkHidden : true, - checkMsg : "", - checked : false, - focused : "textField", - defButton : "button0", - }; - // enter one of the known logins, test 504+505 exercise the two possible states. - action = { - buttonClick : "ok", - textField : "user1name", - passField : "user1pass", - }; - authinfo.username = ""; - authinfo.password = ""; - authinfo.realm = "http://example2.com"; - - promptDone = handlePrompt(state, action); - isOk = prompter2.promptAuth("channel2", level, authinfo); - yield promptDone; - - ok(isOk, "Checking dialog return value (accept)"); - is(authinfo.username, "user1name", "Checking returned username"); - is(authinfo.password, "user1pass", "Checking returned password"); -}); - -add_task(function* test_multipleExisting3() { - // test filling in existing login (undetermined --> user2) - // user2name/user2pass would also be valid to fill here. - state = { - msg : "http://example2.com is requesting your username and password. The site says: “http://example2.com”", - title : "Authentication Required", - textValue : "user1name", - passValue : "user1pass", - iconClass : "authentication-icon question-icon", - titleHidden : true, - textHidden : false, - passHidden : false, - checkHidden : true, - checkMsg : "", - checked : false, - focused : "textField", - defButton : "button0", - }; - // enter one of the known logins, test 504+505 exercise the two possible states. - action = { - buttonClick : "ok", - textField : "user2name", - passField : "user2pass", - }; - authinfo.username = ""; - authinfo.password = ""; - authinfo.realm = "http://example2.com"; - - promptDone = handlePrompt(state, action); - isOk = prompter2.promptAuth("channel2", level, authinfo); - yield promptDone; - - ok(isOk, "Checking dialog return value (accept)"); - is(authinfo.username, "user2name", "Checking returned username"); - is(authinfo.password, "user2pass", "Checking returned password"); -}); - -add_task(function* test_changingMultiple() { - // test changing a password (undetermined --> user2 w/ newpass) - // user2name/user2pass would also be valid to fill here. - state = { - msg : "http://example2.com is requesting your username and password. The site says: “http://example2.com”", - title : "Authentication Required", - textValue : "user1name", - passValue : "user1pass", - iconClass : "authentication-icon question-icon", - titleHidden : true, - textHidden : false, - passHidden : false, - checkHidden : true, - checkMsg : "", - checked : false, - focused : "textField", - defButton : "button0", - }; - // force to user2, and change the password - action = { - buttonClick : "ok", - textField : "user2name", - passField : "NEWuser2pass", - }; - authinfo.username = ""; - authinfo.password = ""; - authinfo.realm = "http://example2.com"; - - promptDone = handlePrompt(state, action); - isOk = prompter2.promptAuth("channel2", level, authinfo); - yield promptDone; - - ok(isOk, "Checking dialog return value (accept)"); - is(authinfo.username, "user2name", "Checking returned username"); - is(authinfo.password, "NEWuser2pass", "Checking returned password"); -}); - -add_task(function* test_changingMultiple2() { - // test changing a password (undetermined --> user2 w/ origpass) - // user2name/user2pass would also be valid to fill here. - state = { - msg : "http://example2.com is requesting your username and password. The site says: “http://example2.com”", - title : "Authentication Required", - textValue : "user1name", - passValue : "user1pass", - iconClass : "authentication-icon question-icon", - titleHidden : true, - textHidden : false, - passHidden : false, - checkHidden : true, - checkMsg : "", - checked : false, - focused : "textField", - defButton : "button0", - }; - // force to user2, and change the password back - action = { - buttonClick : "ok", - textField : "user2name", - passField : "user2pass", - }; - authinfo.username = ""; - authinfo.password = ""; - authinfo.realm = "http://example2.com"; - - promptDone = handlePrompt(state, action); - isOk = prompter2.promptAuth("channel2", level, authinfo); - yield promptDone; - - ok(isOk, "Checking dialog return value (accept)"); - is(authinfo.username, "user2name", "Checking returned username"); - is(authinfo.password, "user2pass", "Checking returned password"); -}); -</script> -</pre> -</body> -</html> |