1
0
Fork 0
firefox/browser/components/preferences/tests/browser_privacy_firefoxSuggest.js
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

181 lines
5.5 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
// This tests the Privacy pane's Firefox Suggest UI.
"use strict";
ChromeUtils.defineESModuleGetters(this, {
QuickSuggest: "resource:///modules/QuickSuggest.sys.mjs",
});
const DATA_COLLECTION_TOGGLE_ID = "firefoxSuggestDataCollectionPrivacyToggle";
// Maps `SETTINGS_UI` values to expected visibility state objects. See
// `assertSuggestVisibility()` in `head.js` for info on the state objects.
const EXPECTED = {
[QuickSuggest.SETTINGS_UI.FULL]: {
[DATA_COLLECTION_TOGGLE_ID]: { isVisible: true },
},
[QuickSuggest.SETTINGS_UI.NONE]: {
[DATA_COLLECTION_TOGGLE_ID]: { isVisible: false },
},
[QuickSuggest.SETTINGS_UI.OFFLINE_ONLY]: {
[DATA_COLLECTION_TOGGLE_ID]: { isVisible: false },
},
};
// This test can take a while due to the many permutations some of these tasks
// run through, so request a longer timeout.
requestLongerTimeout(10);
// The following tasks check the initial visibility of the Firefox Suggest UI
// and the visibility after installing a Nimbus experiment.
add_task(async function initiallyDisabled_disable() {
await doSuggestVisibilityTest({
pane: "privacy",
initialSuggestEnabled: false,
initialExpected: EXPECTED[QuickSuggest.SETTINGS_UI.NONE],
nimbusVariables: {
quickSuggestEnabled: false,
},
});
});
add_task(async function initiallyDisabled_disable_settingsUIFull() {
await doSuggestVisibilityTest({
pane: "privacy",
initialSuggestEnabled: false,
initialExpected: EXPECTED[QuickSuggest.SETTINGS_UI.NONE],
nimbusVariables: {
quickSuggestEnabled: false,
// `quickSuggestEnabled: false` should override this, so the Suggest
// settings should not be visible (`initialExpected` should persist).
quickSuggestSettingsUi: QuickSuggest.SETTINGS_UI.FULL,
},
});
});
add_task(async function initiallyDisabled_enable() {
await doSuggestVisibilityTest({
pane: "privacy",
initialSuggestEnabled: false,
initialExpected: EXPECTED[QuickSuggest.SETTINGS_UI.NONE],
nimbusVariables: {
quickSuggestEnabled: true,
},
newExpected: EXPECTED[QuickSuggest.SETTINGS_UI.FULL],
});
});
add_task(async function initiallyDisabled_enable_settingsUiFull() {
await doSuggestVisibilityTest({
pane: "privacy",
initialSuggestEnabled: false,
initialExpected: EXPECTED[QuickSuggest.SETTINGS_UI.NONE],
nimbusVariables: {
quickSuggestEnabled: true,
quickSuggestSettingsUi: QuickSuggest.SETTINGS_UI.FULL,
},
newExpected: EXPECTED[QuickSuggest.SETTINGS_UI.FULL],
});
});
add_task(async function initiallyDisabled_enable_settingsUiNone() {
await doSuggestVisibilityTest({
pane: "privacy",
initialSuggestEnabled: false,
initialExpected: EXPECTED[QuickSuggest.SETTINGS_UI.NONE],
nimbusVariables: {
quickSuggestEnabled: true,
quickSuggestSettingsUi: QuickSuggest.SETTINGS_UI.NONE,
},
});
});
add_task(async function initiallyDisabled_enable_settingsUiOfflineOnly() {
await doSuggestVisibilityTest({
pane: "privacy",
initialSuggestEnabled: false,
initialExpected: EXPECTED[QuickSuggest.SETTINGS_UI.NONE],
nimbusVariables: {
quickSuggestEnabled: true,
quickSuggestSettingsUi: QuickSuggest.SETTINGS_UI.OFFLINE_ONLY,
},
newExpected: EXPECTED[QuickSuggest.SETTINGS_UI.OFFLINE_ONLY],
});
});
add_task(async function initiallyEnabled_disable() {
await doSuggestVisibilityTest({
pane: "privacy",
initialSuggestEnabled: true,
initialExpected: EXPECTED[QuickSuggest.SETTINGS_UI.FULL],
nimbusVariables: {
quickSuggestEnabled: false,
},
newExpected: EXPECTED[QuickSuggest.SETTINGS_UI.NONE],
});
});
add_task(async function initiallyEnabled_disable_settingsUiFull() {
await doSuggestVisibilityTest({
pane: "privacy",
initialSuggestEnabled: true,
initialExpected: EXPECTED[QuickSuggest.SETTINGS_UI.FULL],
nimbusVariables: {
quickSuggestEnabled: false,
// `quickSuggestEnabled: false` should override this, so the Suggest
// settings should not be visible.
quickSuggestSettingsUi: QuickSuggest.SETTINGS_UI.FULL,
},
newExpected: EXPECTED[QuickSuggest.SETTINGS_UI.NONE],
});
});
add_task(async function initiallyEnabled_enable() {
await doSuggestVisibilityTest({
pane: "privacy",
initialSuggestEnabled: true,
initialExpected: EXPECTED[QuickSuggest.SETTINGS_UI.FULL],
nimbusVariables: {
quickSuggestEnabled: true,
},
});
});
add_task(async function initiallyEnabled_settingsUiFull() {
await doSuggestVisibilityTest({
pane: "privacy",
initialSuggestEnabled: true,
initialExpected: EXPECTED[QuickSuggest.SETTINGS_UI.FULL],
nimbusVariables: {
quickSuggestSettingsUi: QuickSuggest.SETTINGS_UI.FULL,
},
});
});
add_task(async function initiallyEnabled_settingsUiNone() {
await doSuggestVisibilityTest({
pane: "privacy",
initialSuggestEnabled: true,
initialExpected: EXPECTED[QuickSuggest.SETTINGS_UI.FULL],
nimbusVariables: {
quickSuggestSettingsUi: QuickSuggest.SETTINGS_UI.NONE,
},
newExpected: EXPECTED[QuickSuggest.SETTINGS_UI.NONE],
});
});
add_task(async function initiallyEnabled_settingsUiOfflineOnly() {
await doSuggestVisibilityTest({
pane: "privacy",
initialSuggestEnabled: true,
initialExpected: EXPECTED[QuickSuggest.SETTINGS_UI.FULL],
nimbusVariables: {
quickSuggestSettingsUi: QuickSuggest.SETTINGS_UI.OFFLINE_ONLY,
},
newExpected: EXPECTED[QuickSuggest.SETTINGS_UI.OFFLINE_ONLY],
});
});