fune/toolkit/components/cookiebanners/test/browser/browser_bannerClicking_domainPref.js
Stanca Serban 582e249d86 Backed out 4 changesets (bug 1854940) for causing multiple failures.
Backed out changeset 2d264402493e (bug 1854940)
Backed out changeset 144b76e6db22 (bug 1854940)
Backed out changeset 5a9e45504f32 (bug 1854940)
Backed out changeset c8c7ec382574 (bug 1854940)
2023-11-08 14:20:06 +02:00

166 lines
3.8 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
add_setup(clickTestSetup);
/**
* Test that domain preference takes precedence over pref settings.
*/
add_task(async function test_domain_preference() {
await SpecialPowers.pushPrefEnv({
set: [
["cookiebanners.service.mode", Ci.nsICookieBannerService.MODE_REJECT],
[
"cookiebanners.service.mode.privateBrowsing",
Ci.nsICookieBannerService.MODE_REJECT,
],
],
});
insertTestClickRules();
for (let testPBM of [false, true]) {
let testWin = window;
if (testPBM) {
testWin = await BrowserTestUtils.openNewBrowserWindow({
private: true,
});
}
await testClickResultTelemetry({});
info(
"Make sure the example.org follows the pref setting when there is no domain preference."
);
await openPageAndVerify({
win: testWin,
domain: TEST_DOMAIN_B,
testURL: TEST_PAGE_B,
visible: true,
expected: "NoClick",
});
await testClickResultTelemetry(
{
fail: 1,
fail_no_rule_for_mode: 1,
},
false
);
info("Set the domain preference of example.org to MODE_REJECT_OR_ACCEPT");
let uri = Services.io.newURI(TEST_ORIGIN_B);
Services.cookieBanners.setDomainPref(
uri,
Ci.nsICookieBannerService.MODE_REJECT_OR_ACCEPT,
testPBM
);
info(
"Verify if domain preference takes precedence over then the pref setting for example.org"
);
await openPageAndVerify({
win: testWin,
domain: TEST_DOMAIN_B,
testURL: TEST_PAGE_B,
visible: false,
expected: "OptIn",
});
Services.cookieBanners.removeAllDomainPrefs(testPBM);
if (testPBM) {
await BrowserTestUtils.closeWindow(testWin);
}
await testClickResultTelemetry({
fail: 1,
fail_no_rule_for_mode: 1,
success: 1,
success_dom_content_loaded: 1,
});
}
});
/**
* Test that domain preference works on the top-level domain.
*/
add_task(async function test_domain_preference_iframe() {
await SpecialPowers.pushPrefEnv({
set: [
["cookiebanners.service.mode", Ci.nsICookieBannerService.MODE_REJECT],
[
"cookiebanners.service.mode.privateBrowsing",
Ci.nsICookieBannerService.MODE_REJECT,
],
],
});
insertTestClickRules();
await testClickResultTelemetry({});
for (let testPBM of [false, true]) {
let testWin = window;
if (testPBM) {
testWin = await BrowserTestUtils.openNewBrowserWindow({
private: true,
});
}
info(
"Make sure the example.org follows the pref setting when there is no domain preference for the top-level example.net."
);
await openIframeAndVerify({
win: testWin,
domain: TEST_DOMAIN_B,
testURL: TEST_PAGE_B,
visible: true,
expected: "NoClick",
});
await testClickResultTelemetry(
{
fail: 1,
fail_no_rule_for_mode: 1,
},
false
);
info(
"Set the domain preference of the top-level domain to MODE_REJECT_OR_ACCEPT"
);
let uri = Services.io.newURI(TEST_ORIGIN_C);
Services.cookieBanners.setDomainPref(
uri,
Ci.nsICookieBannerService.MODE_REJECT_OR_ACCEPT,
testPBM
);
info(
"Verify if domain preference takes precedence over then the pref setting for top-level example.net"
);
await openIframeAndVerify({
win: testWin,
domain: TEST_DOMAIN_B,
testURL: TEST_PAGE_B,
visible: false,
expected: "OptIn",
});
Services.cookieBanners.removeAllDomainPrefs(testPBM);
if (testPBM) {
await BrowserTestUtils.closeWindow(testWin);
}
await testClickResultTelemetry({
fail: 1,
fail_no_rule_for_mode: 1,
success: 1,
success_dom_content_loaded: 1,
});
}
});