fune/browser/base/content/test/protectionsUI/browser_protectionsUI_3.js
Tim Huang 9c5f792a23 Bug 1819662 - Showing the domains of the blocked email tracker in the tracker category on the protection panel. r=anti-tracking-reviewers,pbz
This patch makes the tracker category on the protection panel to show
the email tracker domains when they are blocked. The tracker category
will handle the email tracking content blocking events and show the
domains of blocked email trackers on the tracker category subview when
email tracking protection is enabled.

Differential Revision: https://phabricator.services.mozilla.com/D171714
2023-03-08 20:00:54 +00:00

226 lines
7.5 KiB
JavaScript

/*
* Test that the Tracking Protection is correctly enabled / disabled
* in both normal and private windows given all possible states of the prefs:
* privacy.trackingprotection.enabled
* privacy.trackingprotection.pbmode.enabled
* privacy.trackingprotection.emailtracking.enabled
* privacy.trackingprotection.emailtracking.pbmode.enabled
* See also Bug 1178985, Bug 1819662.
*/
const PREF = "privacy.trackingprotection.enabled";
const PB_PREF = "privacy.trackingprotection.pbmode.enabled";
const EMAIL_PREF = "privacy.trackingprotection.emailtracking.enabled";
const EMAIL_PB_PREF = "privacy.trackingprotection.emailtracking.pbmode.enabled";
registerCleanupFunction(function() {
Services.prefs.clearUserPref(PREF);
Services.prefs.clearUserPref(PB_PREF);
Services.prefs.clearUserPref(EMAIL_PREF);
Services.prefs.clearUserPref(EMAIL_PB_PREF);
});
add_task(async function testNormalBrowsing() {
let {
TrackingProtection,
} = gBrowser.ownerGlobal.gProtectionsHandler.blockers;
ok(
TrackingProtection,
"Normal window gProtectionsHandler should have TrackingProtection blocker."
);
Services.prefs.setBoolPref(PREF, true);
Services.prefs.setBoolPref(PB_PREF, false);
Services.prefs.setBoolPref(EMAIL_PREF, false);
Services.prefs.setBoolPref(EMAIL_PB_PREF, false);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=true,PB=false,EmailEnabled=false,EmailPB=false)"
);
Services.prefs.setBoolPref(PB_PREF, true);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=true,PB=true,EmailEnabled=false,EmailPB=false)"
);
Services.prefs.setBoolPref(EMAIL_PREF, true);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=true,PB=true,EmailEnabled=true,EmailPB=false)"
);
Services.prefs.setBoolPref(EMAIL_PB_PREF, true);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=true,PB=true,EmailEnabled=true,EmailPB=true)"
);
Services.prefs.setBoolPref(EMAIL_PREF, false);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=true,PB=true,EmailEnabled=false,EmailPB=true)"
);
Services.prefs.setBoolPref(PB_PREF, false);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=true,PB=false,EmailEnabled=false,EmailPB=true)"
);
Services.prefs.setBoolPref(EMAIL_PREF, true);
Services.prefs.setBoolPref(EMAIL_PB_PREF, false);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=true,PB=false,EmailEnabled=true,EmailPB=false)"
);
Services.prefs.setBoolPref(EMAIL_PB_PREF, true);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=true,PB=false,EmailEnabled=true,EmailPB=true)"
);
Services.prefs.setBoolPref(PREF, false);
Services.prefs.setBoolPref(PB_PREF, false);
Services.prefs.setBoolPref(EMAIL_PREF, false);
Services.prefs.setBoolPref(EMAIL_PB_PREF, false);
ok(
!TrackingProtection.enabled,
"TP is disabled (ENABLED=false,PB=false,EmailEnabled=false,EmailPB=false)"
);
Services.prefs.setBoolPref(PB_PREF, true);
ok(
!TrackingProtection.enabled,
"TP is disabled (ENABLED=false,PB=true,EmailEnabled=false,EmailPB=false)"
);
Services.prefs.setBoolPref(EMAIL_PREF, true);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=false,PB=true,EmailEnabled=true,EmailPB=false)"
);
Services.prefs.setBoolPref(EMAIL_PB_PREF, true);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=false,PB=true,EmailEnabled=true,EmailPB=true)"
);
Services.prefs.setBoolPref(EMAIL_PREF, false);
ok(
!TrackingProtection.enabled,
"TP is disabled (ENABLED=false,PB=true,EmailEnabled=false,EmailPB=true)"
);
Services.prefs.setBoolPref(PB_PREF, false);
ok(
!TrackingProtection.enabled,
"TP is disabled (ENABLED=false,PB=false,EmailEnabled=false,EmailPB=true)"
);
Services.prefs.setBoolPref(EMAIL_PREF, true);
Services.prefs.setBoolPref(EMAIL_PB_PREF, false);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=false,PB=false,EmailEnabled=true,EmailPB=false)"
);
Services.prefs.setBoolPref(EMAIL_PB_PREF, true);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=false,PB=false,EmailEnabled=true,EmailPB=true)"
);
});
add_task(async function testPrivateBrowsing() {
let privateWin = await BrowserTestUtils.openNewBrowserWindow({
private: true,
});
let {
TrackingProtection,
} = privateWin.gBrowser.ownerGlobal.gProtectionsHandler.blockers;
ok(
TrackingProtection,
"Private window gProtectionsHandler should have TrackingProtection blocker."
);
Services.prefs.setBoolPref(PREF, true);
Services.prefs.setBoolPref(PB_PREF, false);
Services.prefs.setBoolPref(EMAIL_PREF, false);
Services.prefs.setBoolPref(EMAIL_PB_PREF, false);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=true,PB=false,EmailEnabled=false,EmailPB=false)"
);
Services.prefs.setBoolPref(PB_PREF, true);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=true,PB=true,EmailEnabled=false,EmailPB=false)"
);
Services.prefs.setBoolPref(EMAIL_PREF, true);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=true,PB=true,EmailEnabled=true,EmailPB=false)"
);
Services.prefs.setBoolPref(EMAIL_PB_PREF, true);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=true,PB=true,EmailEnabled=true,EmailPB=true)"
);
Services.prefs.setBoolPref(EMAIL_PREF, false);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=true,PB=true,EmailEnabled=false,EmailPB=true)"
);
Services.prefs.setBoolPref(PB_PREF, false);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=true,PB=false,EmailEnabled=false,EmailPB=true)"
);
Services.prefs.setBoolPref(EMAIL_PREF, true);
Services.prefs.setBoolPref(EMAIL_PB_PREF, false);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=true,PB=false,EmailEnabled=true,EmailPB=false)"
);
Services.prefs.setBoolPref(EMAIL_PB_PREF, true);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=true,PB=false,EmailEnabled=true,EmailPB=true)"
);
Services.prefs.setBoolPref(PREF, false);
Services.prefs.setBoolPref(PB_PREF, false);
Services.prefs.setBoolPref(EMAIL_PREF, false);
Services.prefs.setBoolPref(EMAIL_PB_PREF, false);
ok(
!TrackingProtection.enabled,
"TP is disabled (ENABLED=false,PB=false,EmailEnabled=false,EmailPB=false)"
);
Services.prefs.setBoolPref(PB_PREF, true);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=false,PB=true,EmailEnabled=false,EmailPB=false)"
);
Services.prefs.setBoolPref(EMAIL_PREF, true);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=false,PB=true,EmailEnabled=true,EmailPB=false)"
);
Services.prefs.setBoolPref(EMAIL_PB_PREF, true);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=false,PB=true,EmailEnabled=true,EmailPB=true)"
);
Services.prefs.setBoolPref(EMAIL_PREF, false);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=false,PB=true,EmailEnabled=false,EmailPB=true)"
);
Services.prefs.setBoolPref(PB_PREF, false);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=false,PB=false,EmailEnabled=false,EmailPB=true)"
);
Services.prefs.setBoolPref(EMAIL_PREF, true);
Services.prefs.setBoolPref(EMAIL_PB_PREF, false);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=false,PB=false,EmailEnabled=true,EmailPB=false)"
);
Services.prefs.setBoolPref(EMAIL_PB_PREF, true);
ok(
TrackingProtection.enabled,
"TP is enabled (ENABLED=false,PB=false,EmailEnabled=true,EmailPB=true)"
);
privateWin.close();
});