Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
requestLongerTimeout(2);
add_setup(async function () {
await SpecialPowers.pushPrefEnv({
set: [
["browser.preferences.aiControls", true],
["browser.ai.control.default", "available"],
["browser.ai.control.smartWindow", "default"],
["browser.smartwindow.enabled", true],
],
});
});
describe("settings AI Controls - Smart Window", () => {
it("reacts to smartwindow.enabled and ai.control prefs", async () => {
await withPrefsPane("ai", async doc => {
const smartWindowSelect = doc.getElementById(
"aiControlSmartWindowSelect"
);
// Visible by default when enabled
Assert.ok(
BrowserTestUtils.isVisible(smartWindowSelect),
"aiControlSmartWindowSelect is visible when Smart Window is enabled"
);
const fieldset = doc.getElementById("smartWindowFieldset");
Assert.ok(fieldset, "smartWindowFieldset exists");
const badge = fieldset.shadowRoot.querySelector("moz-badge");
Assert.ok(
BrowserTestUtils.isVisible(badge),
"moz-badge is visible on Smart Window fieldset"
);
Assert.equal(badge.getAttribute("type"), "new", "badge has type new");
// Hidden when browser.smartwindow.enabled is false
await SpecialPowers.pushPrefEnv({
set: [["browser.smartwindow.enabled", false]],
});
Assert.ok(
!BrowserTestUtils.isVisible(smartWindowSelect),
"Smart Window control is hidden when browser.smartwindow.enabled is false"
);
await SpecialPowers.popPrefEnv();
// Visible when blocked while browser.smartwindow.enabled is true
await SpecialPowers.pushPrefEnv({
set: [["browser.ai.control.smartWindow", "blocked"]],
});
Assert.ok(
BrowserTestUtils.isVisible(smartWindowSelect),
"Smart Window control is visible when blocked"
);
const control = doc.getElementById("aiControlSmartWindowSelect");
await control.updateComplete;
Assert.equal(
smartWindowSelect.value,
"blocked",
"control shows blocked state"
);
await SpecialPowers.popPrefEnv();
});
});
it("shows activate link and personalize button based on consent", async () => {
await withPrefsPane("ai", async doc => {
const smartWindowActivateLink = doc.getElementById(
"activateSmartWindowLink"
);
const smartWindowPersonalizeButton = doc.getElementById(
"personalizeSmartWindowButton"
);
// Without consent, activate link is visible
Assert.ok(
BrowserTestUtils.isVisible(smartWindowActivateLink),
"smartWindowActivateLink is visible without consent"
);
// With consent, activate link is hidden and personalize button is visible
await SpecialPowers.pushPrefEnv({
set: [["browser.smartwindow.tos.consentTime", 1770830464]],
});
Assert.ok(
!BrowserTestUtils.isVisible(smartWindowActivateLink),
"smartWindowActivateLink is hidden with consent"
);
Assert.ok(
BrowserTestUtils.isVisible(smartWindowPersonalizeButton),
"smartWindowPersonalizeButton is visible with consent"
);
await SpecialPowers.popPrefEnv();
});
});
it("shows correct options based on consent state", async () => {
await withPrefsPane("ai", async doc => {
const control = doc.getElementById("aiControlSmartWindowSelect");
await control.updateComplete;
// Without consent, available shown and no enabled option in moz-select
Assert.equal(
control.value,
"available",
"control shows available when no consent given"
);
let enabledOpt = control.querySelector('moz-option[value="enabled"]');
Assert.ok(!enabledOpt, "enabled option does not exist without consent");
// With consent, enabled option appears in select
await SpecialPowers.pushPrefEnv({
set: [["browser.smartwindow.tos.consentTime", 1770830464]],
});
await control.updateComplete;
enabledOpt = control.querySelector('moz-option[value="enabled"]');
Assert.ok(enabledOpt, "enabled option exists with consent");
Assert.equal(
control.value,
"enabled",
"control shows enabled when consented"
);
await SpecialPowers.popPrefEnv();
});
});
});