From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../browser_privatebrowsing_about_focus_promo.js | 89 ++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 browser/components/privatebrowsing/test/browser/browser_privatebrowsing_about_focus_promo.js (limited to 'browser/components/privatebrowsing/test/browser/browser_privatebrowsing_about_focus_promo.js') diff --git a/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_about_focus_promo.js b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_about_focus_promo.js new file mode 100644 index 0000000000..80333ead74 --- /dev/null +++ b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_about_focus_promo.js @@ -0,0 +1,89 @@ +const { Region } = ChromeUtils.importESModule( + "resource://gre/modules/Region.sys.mjs" +); +const { ASRouter } = ChromeUtils.import( + "resource://activity-stream/lib/ASRouter.jsm" +); + +const initialHomeRegion = Region._home; +const intialCurrentRegion = Region._current; +const initialLocale = Services.locale.appLocaleAsBCP47; + +// Helper to run tests for specific regions +async function setupRegions(home, current) { + Region._setHomeRegion(home || ""); + Region._setCurrentRegion(current || ""); +} + +// Helper to run tests for specific locales +function setLocale(locale) { + Services.locale.availableLocales = [locale]; + Services.locale.requestedLocales = [locale]; +} + +add_task(async function test_focus_promo_in_allowed_region() { + ASRouter.resetMessageState(); + + const allowedRegion = "ES"; // Spain + setupRegions(allowedRegion, allowedRegion); + + const { win, tab } = await openTabAndWaitForRender(); + + await SpecialPowers.spawn(tab, [], async function () { + const promoContainer = content.document.querySelector(".promo"); // container which is present if promo is enabled and should show + + ok(promoContainer, "Focus promo is shown for allowed region"); + }); + + await BrowserTestUtils.closeWindow(win); + setupRegions(initialHomeRegion, intialCurrentRegion); // revert changes to regions +}); + +add_task(async function test_focus_promo_in_disallowed_region() { + ASRouter.resetMessageState(); + + const disallowedRegion = "CN"; // China + setupRegions(disallowedRegion); + + const { win, tab } = await openTabAndWaitForRender(); + + await SpecialPowers.spawn(tab, [], async function () { + const promoContainer = content.document.querySelector(".promo"); // container which is removed if promo is disabled and/or should not show + + ok(!promoContainer, "Focus promo is not shown for disallowed region"); + }); + + await BrowserTestUtils.closeWindow(win); + setupRegions(initialHomeRegion, intialCurrentRegion); // revert changes to regions +}); + +add_task( + async function test_klar_promo_in_certain_regions_with_English_locale() { + const testLocale = "en-US"; // US English + setLocale(testLocale); + + const testRegion = async region => { + setupRegions(region); + ASRouter.resetMessageState(); + const { win, tab } = await openTabAndWaitForRender(); + await SpecialPowers.spawn(tab, [], async function () { + const buttonText = content.document.querySelector( + "#private-browsing-promo-link" + ).textContent; + Assert.equal( + buttonText, + "Download Firefox Klar", + "The promo button text reads 'Download Firefox Klar'" + ); + }); + await BrowserTestUtils.closeWindow(win); + }; + + await testRegion("AT"); // Austria + await testRegion("DE"); // Germany + await testRegion("CH"); // Switzerland + + setupRegions(initialHomeRegion, intialCurrentRegion); // revert changes to regions + setLocale(initialLocale); // revert changes to locale + } +); -- cgit v1.2.3