mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-12 14:20:14 +02:00
# ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D36052 --HG-- extra : source : b5be5b4f4b47c256e28a29f665dc754f6407ee7f
36 lines
1.3 KiB
JavaScript
36 lines
1.3 KiB
JavaScript
"use strict";
|
|
|
|
ChromeUtils.import("resource://testing-common/AddonTestUtils.jsm", this);
|
|
ChromeUtils.import("resource://gre/modules/Services.jsm", this);
|
|
ChromeUtils.import("resource://normandy/lib/Addons.jsm", this);
|
|
|
|
// Initialize test utils
|
|
AddonTestUtils.initMochitest(this);
|
|
|
|
const testInstallId = "testInstallUpdate@example.com";
|
|
decorate_task(
|
|
withInstalledWebExtension({ version: "1.0", id: testInstallId }),
|
|
withWebExtension({ version: "2.0", id: testInstallId }),
|
|
async function testInstallUpdate([id1, addonFile1], [id2, addonFile2]) {
|
|
// Fail to install the 2.0 add-on without updating enabled
|
|
const newAddonUrl = Services.io.newFileURI(addonFile2).spec;
|
|
await Assert.rejects(
|
|
Addons.install(newAddonUrl, { update: false }),
|
|
/updating is disabled/,
|
|
"install rejects when the study add-on is already installed and updating is disabled"
|
|
);
|
|
|
|
// Install the new add-on with updating enabled
|
|
const startupPromise = AddonTestUtils.promiseWebExtensionStartup(
|
|
testInstallId
|
|
);
|
|
await Addons.install(newAddonUrl, { update: true });
|
|
|
|
const addon = await startupPromise;
|
|
is(
|
|
addon.version,
|
|
"2.0",
|
|
"install can successfully update an already-installed addon when updating is enabled."
|
|
);
|
|
}
|
|
);
|