fune/toolkit/mozapps/update/tests/unit_base_updater/marAppInUseBackgroundTaskFailure_win.js
Robin Steuber 40d2bcc4f9 Bug 1875502 - Pre: Make initUpdateServiceStub async r=nalexander,application-update-reviewers
This is because initializing the update service will be an asynchronous process. This is introduced later in this patch stack.

Differential Revision: https://phabricator.services.mozilla.com/D209121
2024-05-16 20:01:51 +00:00

51 lines
1.5 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/
*/
/* Fail to apply a complete MAR when the application is in use and the callback is a background task. */
async function run_test() {
if (!setupTestCommon()) {
return;
}
gTestFiles = gTestFilesCompleteSuccess;
gTestDirs = gTestDirsCompleteSuccess;
setTestFilesAndDirsForFailure();
// Add a dummy --backgroundtask arg; this will have no effect on the
// callback (TestAUSHelper) but will cause the updater to detect
// that this is a background task.
gCallbackArgs = gCallbackArgs.concat(["--backgroundtask", "not_found"]);
// Run the update with the helper file in use, expecting failure.
await setupUpdaterTest(FILE_COMPLETE_MAR, false);
await runHelperFileInUse(DIR_RESOURCES + gCallbackBinFile, false);
runUpdate(
STATE_FAILED_WRITE_ERROR_BACKGROUND_TASK_SHARING_VIOLATION,
false, // aSwitchApp
1, // aExpectedExitValue
true // aCheckSvcLog
);
await waitForHelperExit();
await standardInit();
checkPostUpdateRunningFile(false);
checkFilesAfterUpdateFailure(getApplyDirFile);
checkUpdateLogContains(ERR_BGTASK_EXCLUSIVE);
// Check that the update was reset to "pending".
await waitForUpdateXMLFiles(
true, // aActiveUpdateExists
false // aUpdatesExists
);
await checkUpdateManager(
STATE_PENDING, // aStatusFileState
true, // aHasActiveUpdate
STATE_PENDING, // aUpdateStatusState
WRITE_ERROR_BACKGROUND_TASK_SHARING_VIOLATION,
0 // aUpdateCount
);
checkCallbackLog();
}