mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
211 lines
6.5 KiB
JavaScript
211 lines
6.5 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/
|
|
*/
|
|
|
|
// Bug 586574 - Provide way to set a default for automatic updates
|
|
|
|
const PREF_AUTOUPDATE_DEFAULT = "extensions.update.autoUpdateDefault";
|
|
|
|
var gManagerWindow;
|
|
var gProvider;
|
|
|
|
var gUtilsBtn;
|
|
var gUtilsMenu;
|
|
var gDropdownMenu;
|
|
var gSetDefault;
|
|
var gResetToAutomatic;
|
|
var gResetToManual;
|
|
|
|
function test() {
|
|
waitForExplicitFinish();
|
|
|
|
gProvider = new MockProvider();
|
|
|
|
gProvider.createAddons([{
|
|
id: "addon1@tests.mozilla.org",
|
|
name: "addon 1",
|
|
version: "1.0",
|
|
applyBackgroundUpdates: AddonManager.AUTOUPDATE_DISABLE
|
|
}]);
|
|
|
|
open_manager("addons://list/extension", function(aWindow) {
|
|
gManagerWindow = aWindow;
|
|
|
|
gUtilsBtn = gManagerWindow.document.getElementById("header-utils-btn");
|
|
gUtilsMenu = gManagerWindow.document.getElementById("utils-menu");
|
|
|
|
run_next_test();
|
|
});
|
|
}
|
|
|
|
|
|
function end_test() {
|
|
close_manager(gManagerWindow, finish);
|
|
}
|
|
|
|
|
|
function wait_for_popup(aCallback) {
|
|
if (gUtilsMenu.state == "open") {
|
|
aCallback();
|
|
return;
|
|
}
|
|
|
|
gUtilsMenu.addEventListener("popupshown", function() {
|
|
gUtilsMenu.removeEventListener("popupshown", arguments.callee, false);
|
|
info("Utilities menu shown");
|
|
aCallback();
|
|
}, false);
|
|
}
|
|
|
|
function wait_for_hide(aCallback) {
|
|
if (gUtilsMenu.state == "closed") {
|
|
aCallback();
|
|
return;
|
|
}
|
|
|
|
gUtilsMenu.addEventListener("popuphidden", function() {
|
|
gUtilsMenu.removeEventListener("popuphidden", arguments.callee, false);
|
|
info("Utilities menu hidden");
|
|
aCallback();
|
|
}, false);
|
|
}
|
|
|
|
add_test(function() {
|
|
gSetDefault = gManagerWindow.document.getElementById("utils-autoUpdateDefault");
|
|
gResetToAutomatic = gManagerWindow.document.getElementById("utils-resetAddonUpdatesToAutomatic");
|
|
gResetToManual = gManagerWindow.document.getElementById("utils-resetAddonUpdatesToManual");
|
|
|
|
info("Ensuring default is set to true");
|
|
Services.prefs.setBoolPref(PREF_AUTOUPDATE_DEFAULT, true);
|
|
|
|
wait_for_popup(function() {
|
|
is(gSetDefault.getAttribute("checked"), "true",
|
|
"Set Default menuitem should be checked");
|
|
is_element_visible(gResetToAutomatic,
|
|
"Reset to Automatic menuitem should be visible");
|
|
is_element_hidden(gResetToManual,
|
|
"Reset to Manual menuitem should be hidden");
|
|
|
|
var listener = {
|
|
onPropertyChanged: function(aAddon, aProperties) {
|
|
AddonManager.removeAddonListener(listener);
|
|
is(aAddon.id, gProvider.addons[0].id,
|
|
"Should get onPropertyChanged event for correct addon");
|
|
ok(!("applyBackgroundUpdates" in aProperties),
|
|
"Should have gotten applyBackgroundUpdates in properties array");
|
|
is(aAddon.applyBackgroundUpdates, AddonManager.AUTOUPDATE_DEFAULT,
|
|
"Addon.applyBackgroundUpdates should have been reset to default");
|
|
|
|
info("Setting Addon.applyBackgroundUpdates back to disabled");
|
|
aAddon.applyBackgroundUpdates = AddonManager.AUTOUPDATE_DISABLE;
|
|
|
|
wait_for_hide(run_next_test);
|
|
}
|
|
};
|
|
AddonManager.addAddonListener(listener);
|
|
|
|
info("Clicking Reset to Automatic menuitem");
|
|
EventUtils.synthesizeMouseAtCenter(gResetToAutomatic, { }, gManagerWindow);
|
|
});
|
|
|
|
info("Opening utilities menu");
|
|
EventUtils.synthesizeMouseAtCenter(gUtilsBtn, { }, gManagerWindow);
|
|
});
|
|
|
|
|
|
add_test(function() {
|
|
wait_for_popup(function() {
|
|
is(gSetDefault.getAttribute("checked"), "true",
|
|
"Set Default menuitem should be checked");
|
|
is_element_visible(gResetToAutomatic,
|
|
"Reset to Automatic menuitem should be visible");
|
|
is_element_hidden(gResetToManual,
|
|
"Reset to Manual menuitem should be hidden");
|
|
|
|
wait_for_hide(run_next_test);
|
|
|
|
info("Clicking Set Default menuitem");
|
|
EventUtils.synthesizeMouseAtCenter(gSetDefault, { }, gManagerWindow);
|
|
});
|
|
|
|
info("Opening utilities menu");
|
|
EventUtils.synthesizeMouseAtCenter(gUtilsBtn, { }, gManagerWindow);
|
|
});
|
|
|
|
|
|
add_test(function() {
|
|
wait_for_popup(function() {
|
|
isnot(gSetDefault.getAttribute("checked"), "true",
|
|
"Set Default menuitem should not be checked");
|
|
is_element_hidden(gResetToAutomatic,
|
|
"Reset to automatic menuitem should be hidden");
|
|
is_element_visible(gResetToManual,
|
|
"Reset to manual menuitem should be visible");
|
|
|
|
var listener = {
|
|
onPropertyChanged: function(aAddon, aProperties) {
|
|
AddonManager.removeAddonListener(listener);
|
|
is(aAddon.id, gProvider.addons[0].id,
|
|
"Should get onPropertyChanged event for correct addon");
|
|
ok(!("applyBackgroundUpdates" in aProperties),
|
|
"Should have gotten applyBackgroundUpdates in properties array");
|
|
is(aAddon.applyBackgroundUpdates, AddonManager.AUTOUPDATE_DEFAULT,
|
|
"Addon.applyBackgroundUpdates should have been reset to default");
|
|
|
|
info("Setting Addon.applyBackgroundUpdates back to disabled");
|
|
aAddon.applyBackgroundUpdates = AddonManager.AUTOUPDATE_DISABLE;
|
|
|
|
wait_for_hide(run_next_test);
|
|
}
|
|
};
|
|
AddonManager.addAddonListener(listener);
|
|
|
|
info("Clicking Reset to Manual menuitem");
|
|
EventUtils.synthesizeMouseAtCenter(gResetToManual, { }, gManagerWindow);
|
|
|
|
});
|
|
|
|
info("Opening utilities menu");
|
|
EventUtils.synthesizeMouseAtCenter(gUtilsBtn, { }, gManagerWindow);
|
|
});
|
|
|
|
|
|
add_test(function() {
|
|
wait_for_popup(function() {
|
|
isnot(gSetDefault.getAttribute("checked"), "true",
|
|
"Set Default menuitem should not be checked");
|
|
is_element_hidden(gResetToAutomatic,
|
|
"Reset to automatic menuitem should be hidden");
|
|
is_element_visible(gResetToManual,
|
|
"Reset to manual menuitem should be visible");
|
|
|
|
wait_for_hide(run_next_test);
|
|
|
|
info("Clicking Set Default menuitem");
|
|
EventUtils.synthesizeMouseAtCenter(gSetDefault, { }, gManagerWindow);
|
|
});
|
|
|
|
info("Opening utilities menu");
|
|
EventUtils.synthesizeMouseAtCenter(gUtilsBtn, { }, gManagerWindow);
|
|
});
|
|
|
|
|
|
add_test(function() {
|
|
wait_for_popup(function() {
|
|
is(gSetDefault.getAttribute("checked"), "true",
|
|
"Set Default menuitem should be checked");
|
|
is_element_visible(gResetToAutomatic,
|
|
"Reset to Automatic menuitem should be visible");
|
|
is_element_hidden(gResetToManual,
|
|
"Reset to Manual menuitem should be hidden");
|
|
|
|
wait_for_hide(run_next_test);
|
|
|
|
gUtilsMenu.hidePopup();
|
|
});
|
|
|
|
info("Opening utilities menu");
|
|
EventUtils.synthesizeMouseAtCenter(gUtilsBtn, { }, gManagerWindow);
|
|
});
|
|
|