Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
"use strict";
// This test checks whether applied WebExtension themes that attempt to change
// the background color of toolbars are applied properly.
add_task(async function test_support_toolbar_property() {
const TOOLBAR_COLOR = "#ff00ff";
const TOOLBAR_TEXT_COLOR = "#9400ff";
let extension = ExtensionTestUtils.loadExtension({
manifest: {
theme: {
colors: {
frame: ACCENT_COLOR,
tab_background_text: TEXT_COLOR,
toolbar: TOOLBAR_COLOR,
toolbar_text: TOOLBAR_TEXT_COLOR,
},
},
},
});
let toolbox = document.querySelector("#navigator-toolbox");
let toolbars = [
...toolbox.querySelectorAll("toolbar:not(#TabsToolbar)"),
].filter(toolbar => {
let bounds = toolbar.getBoundingClientRect();
return bounds.width > 0 && bounds.height > 0;
});
let transitionPromise = waitForTransition(toolbars[0], "background-color");
await extension.startup();
await transitionPromise;
info(`Checking toolbar colors for ${toolbars.length} toolbars.`);
for (let toolbar of toolbars) {
info(`Testing ${toolbar.id}`);
Assert.equal(
window.getComputedStyle(toolbar).backgroundColor,
hexToCSS(TOOLBAR_COLOR),
"Toolbar background color should be set."
);
Assert.equal(
window.getComputedStyle(toolbar).color,
hexToCSS(TOOLBAR_TEXT_COLOR),
"Toolbar text color should be set."
);
}
info("Checking selected tab colors");
let selectedTab = document.querySelector(
".tabbrowser-tab[selected] .tab-content"
);
Assert.equal(
window.getComputedStyle(selectedTab).color,
hexToCSS(TOOLBAR_TEXT_COLOR),
"Selected tab text color should be set."
);
await extension.unload();
});
add_task(async function test_bookmark_text_property() {
const TOOLBAR_COLOR = [255, 0, 255];
const TOOLBAR_TEXT_COLOR = [48, 0, 255];
let extension = ExtensionTestUtils.loadExtension({
manifest: {
theme: {
colors: {
frame: ACCENT_COLOR,
tab_background_text: TEXT_COLOR,
toolbar: TOOLBAR_COLOR,
bookmark_text: TOOLBAR_TEXT_COLOR,
},
},
},
});
await extension.startup();
let toolbox = document.querySelector("#navigator-toolbox");
let toolbars = [
...toolbox.querySelectorAll("toolbar:not(#TabsToolbar)"),
].filter(toolbar => {
let bounds = toolbar.getBoundingClientRect();
return bounds.width > 0 && bounds.height > 0;
});
info(`Checking toolbar colors for ${toolbars.length} toolbars.`);
for (let toolbar of toolbars) {
info(`Testing ${toolbar.id}`);
Assert.equal(
window.getComputedStyle(toolbar).color,
rgbToCSS(TOOLBAR_TEXT_COLOR),
"bookmark_text should be an alias for toolbar_text"
);
}
info("Checking selected tab colors");
let selectedTab = document.querySelector(
".tabbrowser-tab[selected] .tab-content"
);
Assert.equal(
window.getComputedStyle(selectedTab).color,
rgbToCSS(TOOLBAR_TEXT_COLOR),
"Selected tab text color should be set."
);
await extension.unload();
});