181 lines
5.5 KiB
JavaScript
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],
|
|
});
|
|
});
|