1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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);
});
|