1
0
Fork 0
firefox/browser/components/preferences/tests/browser_experimental_features_resetall.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

79 lines
2.3 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
const { FirefoxLabs } = ChromeUtils.importESModule(
"resource://nimbus/FirefoxLabs.sys.mjs"
);
add_setup(async function setup() {
const cleanup = await setupLabsTest();
registerCleanupFunction(cleanup);
});
// This test verifies that pressing the reset all button for experimental features
// resets all of the checkboxes to their default state.
add_task(async function testResetAll() {
await BrowserTestUtils.openNewForegroundTab(
gBrowser,
`about:preferences#paneExperimental`
);
const doc = gBrowser.contentDocument;
await TestUtils.waitForCondition(
() => doc.querySelector(".featureGate"),
"wait for features to be added to the DOM"
);
const qa1El = doc.getElementById("nimbus-qa-1");
const qa2El = doc.getElementById("nimbus-qa-2");
ok(
!ExperimentAPI._manager.store.get("nimbus-qa-1")?.active,
"Should not enroll in nimbus-qa-1"
);
ok(
!ExperimentAPI._manager.store.get("nimbus-qa-2")?.active,
"Should not enroll in nimbus-qa-2"
);
ok(!qa1El.checked, "nimbus-qa-1 checkbox unchecked");
ok(!qa2El.checked, "nimbus-qa-2 checkbox unchecked");
// Modify the state of some of the features.
await enrollByClick(qa1El, true);
await enrollByClick(qa2El, true);
ok(
ExperimentAPI._manager.store.get("nimbus-qa-1")?.active,
"Should enroll in nimbus-qa-1"
);
ok(
ExperimentAPI._manager.store.get("nimbus-qa-2")?.active,
"Should enroll in nimbus-qa-2"
);
ok(qa1El.checked, "nimbus-qa-1 checkbox checked");
ok(qa2El.checked, "nimbus-qa-2 checkbox checked");
const unenrollPromises = [
promiseNimbusStoreUpdate("nimbus-qa-1", false),
promiseNimbusStoreUpdate("nimbus-qa-2", false),
];
doc.getElementById("experimentalCategory-reset").click();
await Promise.all(unenrollPromises);
ok(
!ExperimentAPI._manager.store.get("nimbus-qa-1")?.active,
"Should unenroll from nimbus-qa-1"
);
ok(
!ExperimentAPI._manager.store.get("nimbus-qa-2")?.active,
"Should unenroll from nimbus-qa-2"
);
ok(!qa1El.checked, "nimbus-qa-1 checkbox unchecked");
ok(!qa2El.checked, "nimbus-qa-2 checkbox unchecked");
BrowserTestUtils.removeTab(gBrowser.selectedTab);
});