79 lines
2.3 KiB
JavaScript
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);
|
|
});
|