diff --git a/toolkit/components/passwordmgr/content/passwordManagerCommon.js b/toolkit/components/passwordmgr/content/passwordManagerCommon.js index 1d1ace9d088e..d348b8bf38ca 100644 --- a/toolkit/components/passwordmgr/content/passwordManagerCommon.js +++ b/toolkit/components/passwordmgr/content/passwordManagerCommon.js @@ -57,9 +57,6 @@ var signonReloadDisplay = { return; } signons.length = 0; - if (lastSignonSortColumn == "hostname") { - lastSignonSortAscending = !lastSignonSortAscending; // prevents sort from being reversed - } LoadSignons(); // apply the filter if needed if (document.getElementById("filter") && document.getElementById("filter").value != "") { diff --git a/toolkit/components/passwordmgr/test/browser/browser_passwordmgr_observers.js b/toolkit/components/passwordmgr/test/browser/browser_passwordmgr_observers.js index 3df60faaa4cb..dd96746248e9 100644 --- a/toolkit/components/passwordmgr/test/browser/browser_passwordmgr_observers.js +++ b/toolkit/components/passwordmgr/test/browser/browser_passwordmgr_observers.js @@ -17,6 +17,7 @@ function test() { "Toolkit:PasswordManagerExceptions", ""); let logins = []; let loginCounter = 0; + let loginOrder = null; let modifiedLogin; let testNumber = 0; let testObserver = { @@ -24,35 +25,34 @@ function test() { if (topic == "passwordmgr-dialog-updated") { switch (testNumber) { case 1: + case 2: + case 3: + case 4: + case 5: is(countLogins(), loginCounter, "Verify login added"); + ok(getLoginOrder().startsWith(loginOrder), "Verify login order"); runNextTest(); break; - case 2: + case 6: is(countLogins(), loginCounter, "Verify login count"); + is(getLoginOrder(), loginOrder, "Verify login order"); is(getLoginPassword(), "newpassword0", "Verify login modified"); runNextTest(); break; - case 3: - is(countLogins(), loginCounter, "Verify login removed"); - runNextTest(); - break; - case 4: - case 5: - case 6: case 7: - case 8: - is(countLogins(), loginCounter, "Verify login added"); + is(countLogins(), loginCounter, "Verify login removed"); + ok(loginOrder.endsWith(getLoginOrder()), "Verify login order"); runNextTest(); break; - case 9: + case 8: is(countLogins(), 0, "Verify all logins removed"); runNextTest(); break; - case 10: + case 9: is(countDisabledHosts(), 1, "Verify disabled host added"); runNextTest(); break; - case 11: + case 10: is(countDisabledHosts(), 0, "Verify disabled host removed"); runNextTest(); break; @@ -87,6 +87,17 @@ function test() { return signonsTree.view.rowCount; } + function getLoginOrder() { + let doc = pmDialog.document; + let signonsTree = doc.getElementById("signonsTree"); + let column = signonsTree.columns[0]; // host column + let order = []; + for (let i = 0; i < signonsTree.view.rowCount; i++) { + order.push(signonsTree.view.getCellText(i, column)); + } + return order.join(','); + } + function getLoginPassword() { let doc = pmDialog.document; let loginsTree = doc.getElementById("signonsTree"); @@ -104,36 +115,35 @@ function test() { function runNextTest() { switch (++testNumber) { - case 1: // add a login - loginCounter++; - Services.logins.addLogin(logins[0]); - break; - case 2: // modify a login - Services.logins.modifyLogin(logins[0], modifiedLogin); - break; - case 3: // remove a login - loginCounter--; - Services.logins.removeLogin(modifiedLogin); - break; - case 4: // add all logins + case 1: // add the logins for (let i = 0; i < logins.length; i++) { loginCounter++; + loginOrder = getLoginOrder(); Services.logins.addLogin(logins[i]); } break; - case 9: // remove all logins + case 6: // modify a login + loginOrder = getLoginOrder(); + Services.logins.modifyLogin(logins[0], modifiedLogin); + break; + case 7: // remove a login + loginCounter--; + loginOrder = getLoginOrder(); + Services.logins.removeLogin(modifiedLogin); + break; + case 8: // remove all logins Services.logins.removeAllLogins(); break; - case 10: // save a disabled host + case 9: // save a disabled host pmDialog.close(); SimpleTest.waitForFocus(function() { Services.logins.setLoginSavingEnabled(LOGIN_HOST, false); }, pmexDialog); break; - case 11: // remove a disabled host + case 10: // remove a disabled host Services.logins.setLoginSavingEnabled(LOGIN_HOST, true); break; - case 12: // finish + case 11: // finish Services.obs.removeObserver( testObserver, "passwordmgr-dialog-updated", false); pmexDialog.close();