diff options
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.js | 69 |
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(); +}); |