summaryrefslogtreecommitdiffstats
path: root/toolkit/components/extensions/test/browser/browser_ext_themes_incognito.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/extensions/test/browser/browser_ext_themes_incognito.js')
-rw-r--r--toolkit/components/extensions/test/browser/browser_ext_themes_incognito.js77
1 files changed, 77 insertions, 0 deletions
diff --git a/toolkit/components/extensions/test/browser/browser_ext_themes_incognito.js b/toolkit/components/extensions/test/browser/browser_ext_themes_incognito.js
new file mode 100644
index 0000000000..d9beb0f9a8
--- /dev/null
+++ b/toolkit/components/extensions/test/browser/browser_ext_themes_incognito.js
@@ -0,0 +1,77 @@
+"use strict";
+
+add_task(async function test_theme_incognito_not_allowed() {
+ let windowExtension = ExtensionTestUtils.loadExtension({
+ incognitoOverride: "spanning",
+ async background() {
+ const theme = {
+ colors: {
+ frame: "black",
+ tab_background_text: "black",
+ },
+ };
+ let window = await browser.windows.create({ incognito: true });
+ browser.test.onMessage.addListener(async message => {
+ if (message == "update") {
+ browser.theme.update(window.id, theme);
+ return;
+ }
+ await browser.windows.remove(window.id);
+ browser.test.sendMessage("done");
+ });
+ browser.test.sendMessage("ready", window.id);
+ },
+ manifest: {
+ permissions: ["theme"],
+ },
+ });
+ await windowExtension.startup();
+ let wId = await windowExtension.awaitMessage("ready");
+
+ async function background(windowId) {
+ const theme = {
+ colors: {
+ frame: "black",
+ tab_background_text: "black",
+ },
+ };
+
+ browser.theme.onUpdated.addListener(info => {
+ browser.test.log("got theme onChanged");
+ browser.test.fail("theme");
+ });
+ await browser.test.assertRejects(
+ browser.theme.getCurrent(windowId),
+ /Invalid window ID/,
+ "API should reject getting window theme"
+ );
+ await browser.test.assertRejects(
+ browser.theme.update(windowId, theme),
+ /Invalid window ID/,
+ "API should reject updating theme"
+ );
+ await browser.test.assertRejects(
+ browser.theme.reset(windowId),
+ /Invalid window ID/,
+ "API should reject reseting theme on window"
+ );
+
+ browser.test.sendMessage("start");
+ }
+
+ let extension = ExtensionTestUtils.loadExtension({
+ background: `(${background})(${wId})`,
+ manifest: {
+ permissions: ["theme"],
+ },
+ });
+
+ await extension.startup();
+ await extension.awaitMessage("start");
+ windowExtension.sendMessage("update");
+
+ windowExtension.sendMessage("close");
+ await windowExtension.awaitMessage("done");
+ await windowExtension.unload();
+ await extension.unload();
+});