summaryrefslogtreecommitdiffstats
path: root/browser/components/newtab/test/browser/browser_foxdoodle_set_default.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /browser/components/newtab/test/browser/browser_foxdoodle_set_default.js
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'browser/components/newtab/test/browser/browser_foxdoodle_set_default.js')
-rw-r--r--browser/components/newtab/test/browser/browser_foxdoodle_set_default.js69
1 files changed, 69 insertions, 0 deletions
diff --git a/browser/components/newtab/test/browser/browser_foxdoodle_set_default.js b/browser/components/newtab/test/browser/browser_foxdoodle_set_default.js
new file mode 100644
index 0000000000..7c53ba6b9a
--- /dev/null
+++ b/browser/components/newtab/test/browser/browser_foxdoodle_set_default.js
@@ -0,0 +1,69 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+"use strict";
+
+const { ASRouter } = ChromeUtils.importESModule(
+ "resource:///modules/asrouter/ASRouter.sys.mjs"
+);
+
+const { ASRouterTargeting } = ChromeUtils.importESModule(
+ "resource:///modules/asrouter/ASRouterTargeting.sys.mjs"
+);
+
+const { OnboardingMessageProvider } = ChromeUtils.importESModule(
+ "resource:///modules/asrouter/OnboardingMessageProvider.sys.mjs"
+);
+
+async function waitForClick(selector, win) {
+ await TestUtils.waitForCondition(() => win.document.querySelector(selector));
+ win.document.querySelector(selector).click();
+}
+add_task(async function test_foxdoodle_spotlight() {
+ const sandbox = sinon.createSandbox();
+
+ let promise = TestUtils.topicObserved("subdialog-loaded");
+ let message = (await OnboardingMessageProvider.getMessages()).find(
+ m => m.id === "FOX_DOODLE_SET_DEFAULT"
+ );
+
+ Assert.ok(message, "Message exists.");
+
+ let routedMessage = ASRouter.routeCFRMessage(
+ message,
+ gBrowser,
+ undefined,
+ false
+ );
+
+ Assert.ok(
+ JSON.stringify(routedMessage) === JSON.stringify({ message: {} }),
+ "Message is not routed when skipInTests is truthy and ID is not present in messagesEnabledInAutomation"
+ );
+
+ sandbox
+ .stub(ASRouter, "messagesEnabledInAutomation")
+ .value(["FOX_DOODLE_SET_DEFAULT"]);
+
+ routedMessage = ASRouter.routeCFRMessage(message, gBrowser, undefined, false);
+ Assert.ok(
+ JSON.stringify(routedMessage.message) === JSON.stringify(message),
+ "Message is routed when skipInTests is truthy and ID is present in messagesEnabledInAutomation"
+ );
+
+ delete message.skipInTests;
+ let unskippedRoutedMessage = ASRouter.routeCFRMessage(
+ message,
+ gBrowser,
+ undefined,
+ false
+ );
+ Assert.ok(
+ unskippedRoutedMessage,
+ "Message is routed when skipInTests property is falsy"
+ );
+ let [win] = await promise;
+ await waitForClick("button.dismiss-button", win);
+ win.close();
+ sandbox.restore();
+});