forked from mirrors/gecko-dev
146 lines
4.4 KiB
JavaScript
146 lines
4.4 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
const { ExperimentAPI } = ChromeUtils.importESModule(
|
|
"resource://nimbus/ExperimentAPI.sys.mjs"
|
|
);
|
|
const { ExperimentFakes } = ChromeUtils.importESModule(
|
|
"resource://testing-common/NimbusTestUtils.sys.mjs"
|
|
);
|
|
|
|
add_task(async function () {
|
|
await BrowserTestUtils.withNewTab(
|
|
{ gBrowser, url: "about:support" },
|
|
async function (browser) {
|
|
let keyLocationServiceGoogleStatus = await SpecialPowers.spawn(
|
|
browser,
|
|
[],
|
|
async function () {
|
|
let textBox = content.document.getElementById(
|
|
"key-location-service-google-box"
|
|
);
|
|
await ContentTaskUtils.waitForCondition(
|
|
() => content.document.l10n.getAttributes(textBox).id,
|
|
"Google location service API key status loaded"
|
|
);
|
|
return content.document.l10n.getAttributes(textBox).id;
|
|
}
|
|
);
|
|
ok(
|
|
keyLocationServiceGoogleStatus,
|
|
"Google location service API key status shown"
|
|
);
|
|
|
|
let keySafebrowsingGoogleStatus = await SpecialPowers.spawn(
|
|
browser,
|
|
[],
|
|
async function () {
|
|
let textBox = content.document.getElementById(
|
|
"key-safebrowsing-google-box"
|
|
);
|
|
await ContentTaskUtils.waitForCondition(
|
|
() => content.document.l10n.getAttributes(textBox).id,
|
|
"Google Safebrowsing API key status loaded"
|
|
);
|
|
return content.document.l10n.getAttributes(textBox).id;
|
|
}
|
|
);
|
|
ok(
|
|
keySafebrowsingGoogleStatus,
|
|
"Google Safebrowsing API key status shown"
|
|
);
|
|
|
|
let keyMozillaStatus = await SpecialPowers.spawn(
|
|
browser,
|
|
[],
|
|
async function () {
|
|
let textBox = content.document.getElementById("key-mozilla-box");
|
|
await ContentTaskUtils.waitForCondition(
|
|
() => content.document.l10n.getAttributes(textBox).id,
|
|
"Mozilla API key status loaded"
|
|
);
|
|
return content.document.l10n.getAttributes(textBox).id;
|
|
}
|
|
);
|
|
ok(keyMozillaStatus, "Mozilla API key status shown");
|
|
}
|
|
);
|
|
});
|
|
|
|
add_task(async function test_nimbus_experiments() {
|
|
await ExperimentAPI.ready();
|
|
let doExperimentCleanup = await ExperimentFakes.enrollWithFeatureConfig({
|
|
featureId: "aboutwelcome",
|
|
value: { enabled: true },
|
|
});
|
|
|
|
await BrowserTestUtils.withNewTab(
|
|
{ gBrowser, url: "about:support" },
|
|
async function (browser) {
|
|
let experimentName = await SpecialPowers.spawn(
|
|
browser,
|
|
[],
|
|
async function () {
|
|
await ContentTaskUtils.waitForCondition(
|
|
() =>
|
|
content.document.querySelector(
|
|
"#remote-experiments-tbody tr:first-child td"
|
|
)?.innerText
|
|
);
|
|
return content.document.querySelector(
|
|
"#remote-experiments-tbody tr:first-child td"
|
|
).innerText;
|
|
}
|
|
);
|
|
ok(
|
|
experimentName.match("Nimbus"),
|
|
"Rendered the expected experiment slug"
|
|
);
|
|
}
|
|
);
|
|
|
|
await doExperimentCleanup();
|
|
});
|
|
|
|
add_task(async function test_remote_configuration() {
|
|
await ExperimentAPI.ready();
|
|
let doCleanup = await ExperimentFakes.enrollWithRollout({
|
|
featureId: NimbusFeatures.aboutwelcome.featureId,
|
|
value: { enabled: true },
|
|
});
|
|
|
|
await BrowserTestUtils.withNewTab(
|
|
{ gBrowser, url: "about:support" },
|
|
async function (browser) {
|
|
let [userFacingName, branch] = await SpecialPowers.spawn(
|
|
browser,
|
|
[],
|
|
async function () {
|
|
await ContentTaskUtils.waitForCondition(
|
|
() =>
|
|
content.document.querySelector(
|
|
"#remote-features-tbody tr:first-child td"
|
|
)?.innerText
|
|
);
|
|
let rolloutName = content.document.querySelector(
|
|
"#remote-features-tbody tr:first-child td"
|
|
).innerText;
|
|
let branchName = content.document.querySelector(
|
|
"#remote-features-tbody tr:first-child td:nth-child(2)"
|
|
).innerText;
|
|
|
|
return [rolloutName, branchName];
|
|
}
|
|
);
|
|
ok(
|
|
userFacingName.match("NimbusTestUtils"),
|
|
"Rendered the expected rollout"
|
|
);
|
|
ok(branch.match("aboutwelcome"), "Rendered the expected rollout branch");
|
|
}
|
|
);
|
|
|
|
await doCleanup();
|
|
});
|