Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

/* Any copyright is dedicated to the Public Domain.
*/
// Tests AddonRepository.sys.mjs when backgroundUpdateChecks are hit while the
// application shutdown has been already initiated (See Bug 1841444).
const { sinon } = ChromeUtils.importESModule(
);
add_setup(async () => {
AddonTestUtils.createAppInfo(
"xpcshell@tests.mozilla.org",
"XPCShell",
"1",
"1"
);
await AddonTestUtils.promiseStartupManager();
});
add_task(async function test_backgroundUpdateCheck_after_shutdown_initiated() {
const sandbox = sinon.createSandbox();
ok(
!AddonRepository.appIsShuttingDown,
"Expect real appIsShuttingDown getter to be returning false"
);
sandbox.stub(AddonRepository, "appIsShuttingDown").get(() => true);
ok(
AddonRepository.appIsShuttingDown,
"Expect mocked appIsShuttingDown getter to be returning true"
);
sandbox.spy(AddonRepository, "_getAllInstalledAddons");
equal(
AddonRepository._getAllInstalledAddons.callCount,
0,
"Expect _getAllInstalledAddons callCount to be initially 0"
);
await AddonRepository.backgroundUpdateCheck();
// We expect backgroundUpdateCheck to be returning earlier and not be calling _getAllInstalledAddons method at all.
equal(
AddonRepository._getAllInstalledAddons.callCount,
0,
"Expect _getAllInstalledAddons to not have been called"
);
sandbox.restore();
});
add_task(async function test_fetchPaged_after_shutdown_initiated() {
const sandbox = sinon.createSandbox();
ok(
!AddonRepository.appIsShuttingDown,
"Expect real appIsShuttingDown getter to be returning false"
);
sandbox.stub(AddonRepository, "appIsShuttingDown").get(() => true);
ok(
AddonRepository.appIsShuttingDown,
"Expect mocked appIsShuttingDown getter to be returning true"
);
sandbox.spy(AddonRepository, "_createServiceRequest");
equal(
AddonRepository._createServiceRequest.callCount,
0,
"Expect _createServiceRequest callCount to be initially 0"
);
await Assert.rejects(
AddonRepository.getAddonsByIDs(["ext01@testext", "ext02@testext"]),
/Reject ServiceRequest for ".*", shutdown already in progress/,
"Expect getAddonsByIds to reject when called after shutdown was already initiated"
);
// We expect backgroundUpdateCheck to be returning earlier and not be calling _getAllInstalledAddons method at all.
equal(
AddonRepository._createServiceRequest.callCount,
0,
"Expect _createServiceRequest to not have been called"
);
sandbox.restore();
});