Bug 834000 - Removing passwords in Firefox/Thunderbird 18.* always randomly reorders list of passwords in password manager. r=MattN

This commit is contained in:
Andres Hernandez 2013-02-01 11:53:28 -06:00
Родитель 0d2a433c21
Коммит 0ee72acfee
2 изменённых файлов: 39 добавлений и 32 удалений

Просмотреть файл

@ -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 != "") {

Просмотреть файл

@ -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();