Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

"use strict";
// This test checks applied WebExtension themes that attempt to change
// icon color properties
add_task(async function setup_home_button() {
CustomizableUI.addWidgetToArea("home-button", "nav-bar");
registerCleanupFunction(() =>
CustomizableUI.removeWidgetFromArea("home-button")
);
});
add_task(async function test_icons_properties() {
const ICONS_COLOR = "#001b47";
const ICONS_ATTENTION_COLOR = "#44ba77";
let extension = ExtensionTestUtils.loadExtension({
manifest: {
theme: {
images: {
theme_frame: "image1.png",
},
colors: {
frame: ACCENT_COLOR,
tab_background_text: TEXT_COLOR,
icons: ICONS_COLOR,
icons_attention: ICONS_ATTENTION_COLOR,
},
},
},
files: {
"image1.png": BACKGROUND,
},
});
await extension.startup();
let toolbarbutton = document.querySelector("#home-button");
Assert.equal(
window.getComputedStyle(toolbarbutton).getPropertyValue("fill"),
`rgb(${hexToRGB(ICONS_COLOR).join(", ")})`,
"Buttons fill color set!"
);
let starButton = document.querySelector("#star-button");
starButton.setAttribute("starred", "true");
let starComputedStyle = window.getComputedStyle(starButton);
Assert.equal(
starComputedStyle.getPropertyValue(
"--lwt-toolbarbutton-icon-fill-attention"
),
`rgb(${hexToRGB(ICONS_ATTENTION_COLOR).join(", ")})`,
"Variable is properly set"
);
Assert.equal(
starComputedStyle.getPropertyValue("fill"),
`rgb(${hexToRGB(ICONS_ATTENTION_COLOR).join(", ")})`,
"Starred icon fill is properly set"
);
starButton.removeAttribute("starred");
await extension.unload();
});
add_task(async function test_no_icons_properties() {
let extension = ExtensionTestUtils.loadExtension({
manifest: {
theme: {
images: {
theme_frame: "image1.png",
},
colors: {
frame: ACCENT_COLOR,
tab_background_text: TEXT_COLOR,
},
},
},
files: {
"image1.png": BACKGROUND,
},
});
await extension.startup();
let toolbarbutton = document.querySelector("#home-button");
let toolbarbuttonCS = window.getComputedStyle(toolbarbutton);
let currentColor = toolbarbuttonCS.getPropertyValue("color");
Assert.equal(
window.getComputedStyle(toolbarbutton).getPropertyValue("fill"),
currentColor,
"Button fill color should be currentColor when no icon color specified."
);
let starButton = document.querySelector("#star-button");
starButton.setAttribute("starred", "true");
let starComputedStyle = window.getComputedStyle(starButton);
Assert.equal(
starComputedStyle.getPropertyValue(
"--lwt-toolbarbutton-icon-fill-attention"
),
"",
"Icon attention fill should not be set when the value is not specified in the manifest."
);
starButton.removeAttribute("starred");
await extension.unload();
});