summaryrefslogtreecommitdiffstats
path: root/devtools/server/tests/xpcshell/test_addons_actor.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/server/tests/xpcshell/test_addons_actor.js')
-rw-r--r--devtools/server/tests/xpcshell/test_addons_actor.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/devtools/server/tests/xpcshell/test_addons_actor.js b/devtools/server/tests/xpcshell/test_addons_actor.js
new file mode 100644
index 0000000000..ba9fda6c3d
--- /dev/null
+++ b/devtools/server/tests/xpcshell/test_addons_actor.js
@@ -0,0 +1,55 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+async function connect() {
+ DevToolsServer.init();
+ DevToolsServer.registerAllActors();
+
+ const client = new DevToolsClient(DevToolsServer.connectPipe());
+ await client.connect();
+
+ const addons = await client.mainRoot.getFront("addons");
+ return [client, addons];
+}
+
+// The AddonsManager test helper can only be called once per test script.
+// This `setup` task will run first.
+add_task(async function setup() {
+ await startupAddonsManager();
+});
+
+add_task(async function testSuccessfulInstall() {
+ const [client, addons] = await connect();
+
+ const allowMissing = false;
+ const usePlatformSeparator = true;
+ const addonPath = getFilePath(
+ "addons/web-extension",
+ allowMissing,
+ usePlatformSeparator
+ );
+ const installedAddon = await addons.installTemporaryAddon(addonPath, false);
+ equal(installedAddon.id, "test-addons-actor@mozilla.org");
+ // The returned object is currently not a proper actor.
+ equal(installedAddon.actor, false);
+
+ const addonList = await client.mainRoot.listAddons();
+ ok(addonList && addonList.map(a => a.name), "Received list of add-ons");
+ const addon = addonList.find(a => a.id === installedAddon.id);
+ ok(addon, "Test add-on appeared in root install list");
+
+ await close(client);
+});
+
+add_task(async function testNonExistantPath() {
+ const [client, addons] = await connect();
+
+ await Assert.rejects(
+ addons.installTemporaryAddon("some-non-existant-path", false),
+ /Could not install add-on.*Component returned failure/
+ );
+
+ await close(client);
+});