mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
182 lines
6.8 KiB
JavaScript
182 lines
6.8 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/
|
|
*/
|
|
|
|
// Tests the confirmation part of the post-app-update dialog
|
|
|
|
var gProvider;
|
|
var gWin;
|
|
|
|
function waitForView(aView, aCallback) {
|
|
var view = gWin.document.getElementById(aView);
|
|
if (view.parentNode.selectedPanel == view) {
|
|
aCallback();
|
|
return;
|
|
}
|
|
|
|
view.addEventListener("ViewChanged", function() {
|
|
view.removeEventListener("ViewChanged", arguments.callee, false);
|
|
try {
|
|
aCallback();
|
|
}
|
|
catch (e) {
|
|
ok(false, e);
|
|
}
|
|
}, false);
|
|
}
|
|
|
|
/**
|
|
* Creates 4 test add-ons. Two are disabled and two enabled.
|
|
*
|
|
* @param aAppDisabled
|
|
* The appDisabled property for the test add-ons
|
|
* @param aUpdateAvailable
|
|
* True if the test add-ons should claim to have an update available
|
|
*/
|
|
function setupUI(aAppDisabled, aUpdateAvailable, aCallback) {
|
|
if (gProvider)
|
|
gProvider.unregister();
|
|
|
|
gProvider = new MockProvider();
|
|
|
|
for (var i = 1; i < 5; i++) {
|
|
var addon = new MockAddon("test" + i + "@tests.mozilla.org",
|
|
"Test Add-on " + i, "extension");
|
|
addon.version = "1.0";
|
|
addon.userDisabled = (i > 2);
|
|
addon.appDisabled = aAppDisabled;
|
|
addon.isActive = !addon.userDisabled && !addon.appDisabled;
|
|
|
|
addon.findUpdates = function(aListener, aReason, aAppVersion, aPlatformVersion) {
|
|
if (aUpdateAvailable) {
|
|
var newAddon = new MockAddon(this.id, this.name, "extension");
|
|
newAddon.version = "2.0";
|
|
var install = new MockInstall(this.name, this.type, newAddon);
|
|
install.existingAddon = this;
|
|
aListener.onUpdateAvailable(this, install);
|
|
}
|
|
|
|
aListener.onUpdateFinished(this, AddonManager.UPDATE_STATUS_NO_ERROR);
|
|
};
|
|
|
|
gProvider.addAddon(addon);
|
|
}
|
|
|
|
gWin = Services.ww.openWindow(null,
|
|
"chrome://mozapps/content/extensions/selectAddons.xul",
|
|
"",
|
|
"chrome,centerscreen,dialog,titlebar",
|
|
null);
|
|
waitForFocus(function() {
|
|
waitForView("select", function() {
|
|
var row = gWin.document.getElementById("select-rows").firstChild.nextSibling;
|
|
while (row) {
|
|
if (!row.id || row.id.indexOf("@tests.mozilla.org") < 0) {
|
|
// not a test add-on
|
|
row = row.nextSibling;
|
|
continue;
|
|
}
|
|
|
|
if (row.id == "test2@tests.mozilla.org" ||
|
|
row.id == "test4@tests.mozilla.org") {
|
|
row.disable();
|
|
}
|
|
else {
|
|
row.keep();
|
|
}
|
|
row = row.nextSibling;
|
|
}
|
|
|
|
waitForView("confirm", aCallback);
|
|
EventUtils.synthesizeMouseAtCenter(gWin.document.getElementById("next"), {}, gWin);
|
|
});
|
|
}, gWin);
|
|
}
|
|
|
|
function test() {
|
|
waitForExplicitFinish();
|
|
|
|
run_next_test();
|
|
}
|
|
|
|
function end_test() {
|
|
finish();
|
|
}
|
|
|
|
// Test for disabling
|
|
add_test(function disabling_test() {
|
|
setupUI(false, false, function() {
|
|
ok(gWin.document.getElementById("incompatible-list").hidden, "Incompatible list should be hidden");
|
|
ok(gWin.document.getElementById("update-list").hidden, "Update list should be hidden");
|
|
|
|
var list = gWin.document.getElementById("disable-list");
|
|
ok(!list.hidden, "Disable list should be visible");
|
|
is(list.childNodes.length, 2, "Should be one add-on getting disabled (plus the header)");
|
|
is(list.childNodes[1].id, "test2@tests.mozilla.org", "Should be the right add-on ID");
|
|
is(list.childNodes[1].getAttribute("name"), "Test Add-on 2", "Should be the right add-on name");
|
|
|
|
var list = gWin.document.getElementById("enable-list");
|
|
ok(!list.hidden, "Enable list should be visible");
|
|
is(list.childNodes.length, 2, "Should be one add-on getting disabled (plus the header)");
|
|
is(list.childNodes[1].id, "test3@tests.mozilla.org", "Should be the right add-on ID");
|
|
is(list.childNodes[1].getAttribute("name"), "Test Add-on 3", "Should be the right add-on name");
|
|
|
|
ok(gWin.document.getElementById("next").hidden, "Next button should be hidden");
|
|
ok(!gWin.document.getElementById("done").hidden, "Done button should be visible");
|
|
gWin.close();
|
|
|
|
run_next_test();
|
|
});
|
|
});
|
|
|
|
// Test for incompatible
|
|
add_test(function incompatible_test() {
|
|
setupUI(true, false, function() {
|
|
ok(gWin.document.getElementById("update-list").hidden, "Update list should be hidden");
|
|
ok(gWin.document.getElementById("disable-list").hidden, "Disable list should be hidden");
|
|
ok(gWin.document.getElementById("enable-list").hidden, "Enable list should be hidden");
|
|
|
|
var list = gWin.document.getElementById("incompatible-list");
|
|
ok(!list.hidden, "Incompatible list should be visible");
|
|
is(list.childNodes.length, 3, "Should be two add-ons waiting to be compatible (plus the header)");
|
|
is(list.childNodes[1].id, "test1@tests.mozilla.org", "Should be the right add-on ID");
|
|
is(list.childNodes[1].getAttribute("name"), "Test Add-on 1", "Should be the right add-on name");
|
|
is(list.childNodes[2].id, "test3@tests.mozilla.org", "Should be the right add-on ID");
|
|
is(list.childNodes[2].getAttribute("name"), "Test Add-on 3", "Should be the right add-on name");
|
|
|
|
ok(gWin.document.getElementById("next").hidden, "Next button should be hidden");
|
|
ok(!gWin.document.getElementById("done").hidden, "Done button should be visible");
|
|
gWin.close();
|
|
|
|
run_next_test();
|
|
});
|
|
});
|
|
|
|
// Test for updates
|
|
add_test(function update_test() {
|
|
setupUI(false, true, function() {
|
|
ok(gWin.document.getElementById("incompatible-list").hidden, "Incompatible list should be hidden");
|
|
ok(gWin.document.getElementById("enable-list").hidden, "Enable list should be hidden");
|
|
|
|
var list = gWin.document.getElementById("update-list");
|
|
ok(!list.hidden, "Update list should be visible");
|
|
is(list.childNodes.length, 3, "Should be two add-ons waiting to be updated (plus the header)");
|
|
is(list.childNodes[1].id, "test1@tests.mozilla.org", "Should be the right add-on ID");
|
|
is(list.childNodes[1].getAttribute("name"), "Test Add-on 1", "Should be the right add-on name");
|
|
is(list.childNodes[2].id, "test3@tests.mozilla.org", "Should be the right add-on ID");
|
|
is(list.childNodes[2].getAttribute("name"), "Test Add-on 3", "Should be the right add-on name");
|
|
|
|
list = gWin.document.getElementById("disable-list");
|
|
ok(!list.hidden, "Disable list should be visible");
|
|
is(list.childNodes.length, 2, "Should be one add-on getting disabled (plus the header)");
|
|
is(list.childNodes[1].id, "test2@tests.mozilla.org", "Should be the right add-on ID");
|
|
is(list.childNodes[1].getAttribute("name"), "Test Add-on 2", "Should be the right add-on name");
|
|
|
|
ok(!gWin.document.getElementById("next").hidden, "Next button should be visible");
|
|
ok(gWin.document.getElementById("done").hidden, "Done button should be hidden");
|
|
gWin.close();
|
|
|
|
run_next_test();
|
|
});
|
|
});
|