1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/toolkit/components/passwordmgr/test/unit/test_top_loginmgr_1.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,141 @@ 1.4 +/* 1.5 + * Unit tests for nsLoginManager.js 1.6 + */ 1.7 + 1.8 + 1.9 +function run_test() { 1.10 + 1.11 +try { 1.12 + 1.13 +var testnum = 0; 1.14 +var testdesc = "Setup of nsLoginInfo test-users"; 1.15 +var nsLoginInfo = new Components.Constructor( 1.16 + "@mozilla.org/login-manager/loginInfo;1", 1.17 + Components.interfaces.nsILoginInfo); 1.18 +do_check_true(nsLoginInfo != null); 1.19 + 1.20 +var testuser1 = new nsLoginInfo; 1.21 + 1.22 + 1.23 +/* ========== 1 ========== */ 1.24 +var testnum = 1; 1.25 +var testdesc = "Initial connection to login manager" 1.26 + 1.27 +var loginmgr = Cc["@mozilla.org/login-manager;1"]. 1.28 + createInstance(Ci.nsILoginManager); 1.29 +if (!loginmgr) 1.30 + throw "Couldn't create loginmgr instance."; 1.31 + 1.32 + 1.33 +/* ========== 2 ========== */ 1.34 +testnum++; 1.35 +testdesc = "Force lazy init, check to ensure there is no existing data."; 1.36 +loginmgr.removeAllLogins(); 1.37 +var hosts = loginmgr.getAllDisabledHosts(); 1.38 +hosts.forEach(function(h) loginmgr.setLoginSavingEnabled(h, true)); 1.39 +LoginTest.checkStorageData(loginmgr, [], []); 1.40 + 1.41 + 1.42 +/* ========== 3 ========== */ 1.43 +testnum++; 1.44 +testdesc = "Try adding invalid logins (host / user / pass checks)"; 1.45 + 1.46 +function tryAddUser(module, aUser, aExpectedError) { 1.47 + var err = null; 1.48 + try { 1.49 + module.addLogin(aUser); 1.50 + } catch (e) { 1.51 + err = e; 1.52 + } 1.53 + 1.54 + LoginTest.checkExpectedError(aExpectedError, err); 1.55 +} 1.56 + 1.57 +testuser1.init(null, null, "Some Realm", 1.58 + "dummydude", "itsasecret", "put_user_here", "put_pw_here"); 1.59 +// null hostname 1.60 +tryAddUser(loginmgr, testuser1, /null or empty hostname/); 1.61 +LoginTest.checkStorageData(loginmgr, [], []); 1.62 + 1.63 +testuser1.hostname = ""; 1.64 +tryAddUser(loginmgr, testuser1, /null or empty hostname/); 1.65 +LoginTest.checkStorageData(loginmgr, [], []); 1.66 + 1.67 + 1.68 +testuser1.hostname = "http://dummyhost.mozilla.org"; 1.69 +testuser1.username = null; 1.70 +tryAddUser(loginmgr, testuser1, /null username/); 1.71 +LoginTest.checkStorageData(loginmgr, [], []); 1.72 + 1.73 +testuser1.username = "dummydude"; 1.74 +testuser1.password = null; 1.75 +tryAddUser(loginmgr, testuser1, /null or empty password/); 1.76 +LoginTest.checkStorageData(loginmgr, [], []); 1.77 + 1.78 +testuser1.password = ""; 1.79 +tryAddUser(loginmgr, testuser1, /null or empty password/); 1.80 +LoginTest.checkStorageData(loginmgr, [], []); 1.81 + 1.82 + 1.83 +/* ========== 4 ========== */ 1.84 +testnum++; 1.85 +testdesc = "Try adding invalid logins (httpRealm / formSubmitURL checks)"; 1.86 + 1.87 +testuser1.init("http://dummyhost.mozilla.org", null, null, 1.88 + "dummydude", "itsasecret", "put_user_here", "put_pw_here"); 1.89 +// formSubmitURL == null, httpRealm == null 1.90 +tryAddUser(loginmgr, testuser1, /without a httpRealm or formSubmitURL/); 1.91 +LoginTest.checkStorageData(loginmgr, [], []); 1.92 + 1.93 +testuser1.formSubmitURL = ""; 1.94 +testuser1.httpRealm = ""; 1.95 +tryAddUser(loginmgr, testuser1, /both a httpRealm and formSubmitURL/); 1.96 +LoginTest.checkStorageData(loginmgr, [], []); 1.97 + 1.98 +testuser1.formSubmitURL = "foo"; 1.99 +testuser1.httpRealm = "foo"; 1.100 +tryAddUser(loginmgr, testuser1, /both a httpRealm and formSubmitURL/); 1.101 +LoginTest.checkStorageData(loginmgr, [], []); 1.102 + 1.103 + 1.104 +testuser1.formSubmitURL = ""; 1.105 +testuser1.httpRealm = "foo"; 1.106 +tryAddUser(loginmgr, testuser1, /both a httpRealm and formSubmitURL/); 1.107 +LoginTest.checkStorageData(loginmgr, [], []); 1.108 + 1.109 +testuser1.formSubmitURL = "foo"; 1.110 +testuser1.httpRealm = ""; 1.111 +tryAddUser(loginmgr, testuser1, /both a httpRealm and formSubmitURL/); 1.112 +LoginTest.checkStorageData(loginmgr, [], []); 1.113 + 1.114 + 1.115 +testuser1.formSubmitURL = null; 1.116 +testuser1.httpRealm = ""; 1.117 +tryAddUser(loginmgr, testuser1, /without a httpRealm or formSubmitURL/); 1.118 +LoginTest.checkStorageData(loginmgr, [], []); 1.119 + 1.120 + 1.121 +/* ========== 5 ========== */ 1.122 +testnum++; 1.123 +testdesc = "Try adding valid logins (httpRealm / formSubmitURL checks)"; 1.124 + 1.125 +testuser1.formSubmitURL = null; 1.126 +testuser1.httpRealm = "foo"; 1.127 +testuser1.hostname ="http://dummyhost1"; 1.128 +tryAddUser(loginmgr, testuser1); 1.129 + 1.130 +testuser1.formSubmitURL = ""; 1.131 +testuser1.httpRealm = null; 1.132 +testuser1.hostname ="http://dummyhost2"; 1.133 +tryAddUser(loginmgr, testuser1); 1.134 + 1.135 +testuser1.formSubmitURL = "foo"; 1.136 +testuser1.httpRealm = null; 1.137 +testuser1.hostname ="http://dummyhost3"; 1.138 +tryAddUser(loginmgr, testuser1); 1.139 + 1.140 + 1.141 +} catch (e) { 1.142 + throw "FAILED in test #" + testnum + " -- " + testdesc + ": " + e; 1.143 +} 1.144 +};