blob: 1815d43c6ad56dd22f3d2e9caacbd7eafa8303f8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
const protocol = require("devtools/shared/protocol");
const {AddonsActor} = require("devtools/server/actors/addons");
const {AddonsFront} = require("devtools/shared/fronts/addons");
startupAddonsManager();
function* connect() {
const client = yield new Promise(resolve => {
get_chrome_actors(client => resolve(client));
});
const root = yield listTabs(client);
const addonsActor = root.addonsActor;
ok(addonsActor, "Got AddonsActor instance");
const addons = AddonsFront(client, {addonsActor});
return [client, addons];
}
add_task(function* testSuccessfulInstall() {
const [client, addons] = yield connect();
const allowMissing = false;
const usePlatformSeparator = true;
const addonPath = getFilePath("addons/web-extension",
allowMissing, usePlatformSeparator);
const installedAddon = yield addons.installTemporaryAddon(addonPath);
equal(installedAddon.id, "test-addons-actor@mozilla.org");
// The returned object is currently not a proper actor.
equal(installedAddon.actor, false);
const addonList = yield client.listAddons();
ok(addonList && addonList.addons && addonList.addons.map(a => a.name),
"Received list of add-ons");
const addon = addonList.addons.filter(a => a.id === installedAddon.id)[0];
ok(addon, "Test add-on appeared in root install list");
yield close(client);
});
add_task(function* testNonExistantPath() {
const [client, addons] = yield connect();
yield Assert.rejects(
addons.installTemporaryAddon("some-non-existant-path"),
/Could not install add-on.*Component returned failure/);
yield close(client);
});
|