/* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; // Test that while a download is in-progress, calling `AppUpdater.stop()` while // in the "download and install" state causes the interface to return to the // `NEVER_CHECKED` state. // This is less a test of the About dialog than of AppUpdater, but it's easier // to test it via the About dialog just because there is already a testing // framework for the About dialog. add_task(async function aboutDialog_AppUpdater_stop_download_and_install() { await UpdateUtils.setAppUpdateAutoEnabled(false); 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: "&invalidCompleteSize=1" }; await runAboutDialogUpdateTest(params, [ { panelId: "checkingForUpdates", continueFile: CONTINUE_CHECK, }, { panelId: "downloadAndInstall", noContinue: true, }, aboutDialog => { aboutDialog.gAppUpdater._appUpdater.stop(); }, { panelId: "checkForUpdates", }, ]); });