gecko-dev/toolkit/components/normandy/test/browser/browser_Addons.js
Victor Porof 4a06c925ac Bug 1561435 - Format toolkit/components/, a=automatic-formatting
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D36052

--HG--
extra : source : b5be5b4f4b47c256e28a29f665dc754f6407ee7f
2019-07-05 11:14:05 +02:00

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."
);
}
);