diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /browser/components/privatebrowsing/test/browser/browser_privatebrowsing_about_cookie_banners_promo.js | |
parent | Initial commit. (diff) | |
download | firefox-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/privatebrowsing/test/browser/browser_privatebrowsing_about_cookie_banners_promo.js')
-rw-r--r-- | browser/components/privatebrowsing/test/browser/browser_privatebrowsing_about_cookie_banners_promo.js | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_about_cookie_banners_promo.js b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_about_cookie_banners_promo.js new file mode 100644 index 0000000000..2f9c87e1e1 --- /dev/null +++ b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_about_cookie_banners_promo.js @@ -0,0 +1,107 @@ +const { ASRouter } = ChromeUtils.importESModule( + "resource:///modules/asrouter/ASRouter.sys.mjs" +); + +const promoImgSrc = "chrome://browser/content/assets/cookie-banners-begone.svg"; + +async function resetState() { + await Promise.all([ASRouter.resetMessageState(), ASRouter.unblockAll()]); +} + +add_setup(async function setup() { + registerCleanupFunction(resetState); + await resetState(); +}); + +add_task(async function test_cookie_banners_promo_user_set_prefs() { + await resetState(); + await SpecialPowers.pushPrefEnv({ + set: [ + ["browser.promo.cookiebanners.enabled", true], + // The message's targeting is looking for the following prefs not being 0 + ["cookiebanners.service.mode", 0], + ["cookiebanners.service.mode.privateBrowsing", 0], + ], + }); + await ASRouter.onPrefChange(); + + const { win, tab } = await openTabAndWaitForRender(); + + await SpecialPowers.spawn(tab, [promoImgSrc], async function (imgSrc) { + const promoImage = content.document.querySelector( + ".promo-image-large > img" + ); + Assert.notStrictEqual( + promoImage?.src, + imgSrc, + "Cookie banner reduction promo is not shown" + ); + }); + + await BrowserTestUtils.closeWindow(win); + await SpecialPowers.popPrefEnv(); +}); + +add_task(async function test_cookie_banners_promo() { + await resetState(); + await SpecialPowers.pushPrefEnv({ + set: [ + ["browser.promo.cookiebanners.enabled", true], + ["cookiebanners.service.mode.privateBrowsing", 1], + ], + }); + await ASRouter.onPrefChange(); + + const sandbox = sinon.createSandbox(); + const expectedUrl = Services.urlFormatter.formatURL( + "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/cookie-banner-reduction" + ); + + const { win, tab } = await openTabAndWaitForRender(); + let triedToOpenTab = new Promise(resolve => { + sandbox.stub(win, "openLinkIn").callsFake((url, where) => { + is(url, expectedUrl, "The link should open the expected URL"); + is( + where, + "tabshifted", + "The link should open the expected URL in a new foreground tab" + ); + resolve(); + }); + }); + + await SpecialPowers.spawn(tab, [promoImgSrc], async function (imgSrc) { + const promoImage = content.document.querySelector( + ".promo-image-large > img" + ); + Assert.strictEqual( + promoImage?.src, + imgSrc, + "Cookie banner reduction promo is shown" + ); + let linkEl = content.document.getElementById("private-browsing-promo-link"); + linkEl.click(); + }); + + await triedToOpenTab; + sandbox.restore(); + + ok(true, "The link was clicked and the new tab opened"); + + let { win: win2, tab: tab2 } = await openTabAndWaitForRender(); + + await SpecialPowers.spawn(tab2, [promoImgSrc], async function (imgSrc) { + const promoImage = content.document.querySelector( + ".promo-image-large > img" + ); + Assert.notStrictEqual( + promoImage?.src, + imgSrc, + "Cookie banner reduction promo is no longer shown after clicking the link" + ); + }); + + await BrowserTestUtils.closeWindow(win2); + await BrowserTestUtils.closeWindow(win); + await SpecialPowers.popPrefEnv(); +}); |