summaryrefslogtreecommitdiffstats
path: root/browser/components/extensions/test/browser/browser_ext_tabs_executeScript_multiple.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/extensions/test/browser/browser_ext_tabs_executeScript_multiple.js')
-rw-r--r--browser/components/extensions/test/browser/browser_ext_tabs_executeScript_multiple.js61
1 files changed, 61 insertions, 0 deletions
diff --git a/browser/components/extensions/test/browser/browser_ext_tabs_executeScript_multiple.js b/browser/components/extensions/test/browser/browser_ext_tabs_executeScript_multiple.js
new file mode 100644
index 0000000000..4e9cc907da
--- /dev/null
+++ b/browser/components/extensions/test/browser/browser_ext_tabs_executeScript_multiple.js
@@ -0,0 +1,61 @@
+/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set sts=2 sw=2 et tw=80: */
+"use strict";
+
+add_task(async function testExecuteScript() {
+ const BASE =
+ "http://mochi.test:8888/browser/browser/components/extensions/test/browser/";
+ const URL = BASE + "file_dummy.html";
+ let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, URL, true);
+
+ async function background() {
+ try {
+ await browser.tabs.executeScript({ code: "this.foo = 'bar'" });
+ await browser.tabs.executeScript({ file: "script.js" });
+
+ let [result1] = await browser.tabs.executeScript({
+ code: "[this.foo, this.bar]",
+ });
+ let [result2] = await browser.tabs.executeScript({ file: "script2.js" });
+
+ browser.test.assertEq(
+ "bar,baz",
+ String(result1),
+ "executeScript({code}) result"
+ );
+ browser.test.assertEq(
+ "bar,baz",
+ String(result2),
+ "executeScript({file}) result"
+ );
+
+ browser.test.notifyPass("executeScript-multiple");
+ } catch (e) {
+ browser.test.fail(`Error: ${e} :: ${e.stack}`);
+ browser.test.notifyFail("executeScript-multiple");
+ }
+ }
+
+ let extension = ExtensionTestUtils.loadExtension({
+ manifest: {
+ permissions: ["http://mochi.test/"],
+ },
+
+ background,
+
+ files: {
+ "script.js": function () {
+ this.bar = "baz";
+ },
+
+ "script2.js": "[this.foo, this.bar]",
+ },
+ });
+
+ await extension.startup();
+
+ await extension.awaitFinish("executeScript-multiple");
+
+ await extension.unload();
+ BrowserTestUtils.removeTab(tab);
+});