forked from mirrors/gecko-dev
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
51 lines
1.5 KiB
JavaScript
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();
|
|
}
|