diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /browser/components/privatebrowsing/test/browser/browser_privatebrowsing_about_cookie_banners_promo.js | |
parent | Initial commit. (diff) | |
download | thunderbird-upstream.tar.xz thunderbird-upstream.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
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 | 82 |
1 files changed, 82 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..073cb4363f --- /dev/null +++ b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_about_cookie_banners_promo.js @@ -0,0 +1,82 @@ +const { ASRouter } = ChromeUtils.import( + "resource://activity-stream/lib/ASRouter.jsm" +); + +let { MODE_REJECT } = Ci.nsICookieBannerService; + +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 pref being default + ["cookiebanners.service.mode", MODE_REJECT], + ], + }); + 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" + ); + ok( + promoImage?.src !== imgSrc, + "Cookie banner reduction promo is not shown" + ); + }); + + await BrowserTestUtils.closeWindow(win); +}); + +add_task(async function test_cookie_banners_promo() { + await resetState(); + await SpecialPowers.pushPrefEnv({ + set: [["browser.promo.cookiebanners.enabled", true]], + clear: [["cookiebanners.service.mode"]], + }); + await ASRouter.onPrefChange(); + + const { win, tab } = await openTabAndWaitForRender(); + + let prefChanged = TestUtils.waitForPrefChange( + "cookiebanners.service.mode", + value => value === MODE_REJECT + ); + let pageReloaded = BrowserTestUtils.browserLoaded(tab); + + await SpecialPowers.spawn(tab, [promoImgSrc], async function (imgSrc) { + const promoImage = content.document.querySelector( + ".promo-image-large > img" + ); + ok(promoImage?.src === imgSrc, "Cookie banner reduction promo is shown"); + let linkEl = content.document.getElementById("private-browsing-promo-link"); + EventUtils.synthesizeClick(linkEl); + }); + + await Promise.all([prefChanged, pageReloaded]); + + await SpecialPowers.spawn(tab, [promoImgSrc], async function (imgSrc) { + const promoImage = content.document.querySelector( + ".promo-image-large > img" + ); + ok( + promoImage?.src !== imgSrc, + "Cookie banner reduction promo is no longer shown after clicking the link" + ); + }); + + await BrowserTestUtils.closeWindow(win); +}); |