95 lines
2.9 KiB
JavaScript
95 lines
2.9 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
// Test if the hamburger menu in about:preferences will remove the "update-restart" badge
|
|
// after the user declines the in-progress update when turning off automatic update
|
|
add_task(async function aboutPrefs_foregroundCheck_discardUpdateNotif() {
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [["app.update.badgeWaitTime", 0]],
|
|
});
|
|
|
|
let downloadInfo = [];
|
|
if (Services.prefs.getBoolPref(PREF_APP_UPDATE_BITS_ENABLED)) {
|
|
downloadInfo[0] = { patchType: "partial", bitsResult: "0" };
|
|
} else {
|
|
downloadInfo[0] = { patchType: "partial", internalResult: "0" };
|
|
}
|
|
|
|
// Since the partial should be successful specify an invalid size for the
|
|
// complete update.
|
|
let params = { queryString: "&promptWaitTime=0" };
|
|
|
|
await runAboutPrefsUpdateTest(params, [
|
|
{
|
|
panelId: "checkingForUpdates",
|
|
checkActiveUpdate: null,
|
|
continueFile: CONTINUE_CHECK,
|
|
},
|
|
{
|
|
panelId: "downloading",
|
|
checkActiveUpdate: { state: STATE_DOWNLOADING },
|
|
continueFile: CONTINUE_DOWNLOAD,
|
|
downloadInfo,
|
|
},
|
|
async function aboutDialog_restart_notification() {
|
|
is(
|
|
PanelUI.isNotificationPanelOpen,
|
|
true,
|
|
"An update avaliable doorhanger notification exists"
|
|
);
|
|
let dismissButton = getNotificationButton(
|
|
window,
|
|
AppMenuNotifications.activeNotification.id,
|
|
"secondaryButton"
|
|
);
|
|
dismissButton.click();
|
|
await TestUtils.waitForCondition(
|
|
() => PanelUI.menuButton.hasAttribute("badge-status"),
|
|
"Waiting for update badge",
|
|
undefined,
|
|
200
|
|
).catch(e => {
|
|
// Instead of throwing let the check below fail the test.
|
|
logTestInfo(e);
|
|
});
|
|
ok(
|
|
PanelUI.menuButton.hasAttribute("badge-status"),
|
|
"The window has a badge."
|
|
);
|
|
is(
|
|
PanelUI.menuButton.getAttribute("badge-status"),
|
|
"update-restart",
|
|
"The update restart badge is showing on the hamburger menu"
|
|
);
|
|
},
|
|
]);
|
|
let manualDesktopCheckbox = content.document.getElementById("manualDesktop");
|
|
manualDesktopCheckbox.click();
|
|
is(
|
|
manualDesktopCheckbox.selected,
|
|
true,
|
|
"Manual update option should be selected"
|
|
);
|
|
//The "accept" button is actually the "discard update" button on the dialog
|
|
await BrowserTestUtils.promiseAlertDialog("accept");
|
|
|
|
let notif_cleared_test = async () => {
|
|
await TestUtils.waitForCondition(
|
|
() => !PanelUI.menuButton.hasAttribute("badge-status"),
|
|
"Waiting for the update badge to be cleared",
|
|
undefined,
|
|
200
|
|
).catch(e => {
|
|
// Instead of throwing let the check below fail the test.
|
|
logTestInfo(e);
|
|
});
|
|
is(
|
|
PanelUI.menuButton.getAttribute("badge-status"),
|
|
null,
|
|
"The window does not have a badge."
|
|
);
|
|
};
|
|
await notif_cleared_test();
|
|
});
|