Files
basilisk55/devtools/client/framework/test/browser_toolbox_theme.js
T

83 lines
4.4 KiB
JavaScript

/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
const COMPACT_LIGHT_ID = "firefox-compact-light@mozilla.org";
const COMPACT_DARK_ID = "firefox-compact-dark@mozilla.org";
const PREF_DEVTOOLS_THEME = "devtools.theme";
const {LightweightThemeManager} = Components.utils.import("resource://gre/modules/LightweightThemeManager.jsm", {});
registerCleanupFunction(() => {
// Set preferences back to their original values
Services.prefs.clearUserPref(PREF_DEVTOOLS_THEME);
LightweightThemeManager.currentTheme = null;
});
add_task(function* testDevtoolsTheme() {
info("Checking stylesheet and :root attributes based on devtools theme.");
Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "light");
is(document.getElementById("browser-bottombox").getAttribute("devtoolstheme"), "light",
"The element has an attribute based on devtools theme.");
is(document.getElementById("content").getAttribute("devtoolstheme"), "light",
"The element has an attribute based on devtools theme.");
Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "dark");
is(document.getElementById("browser-bottombox").getAttribute("devtoolstheme"), "dark",
"The element has an attribute based on devtools theme.");
is(document.getElementById("content").getAttribute("devtoolstheme"), "dark",
"The element has an attribute based on devtools theme.");
Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "firebug");
is(document.getElementById("browser-bottombox").getAttribute("devtoolstheme"), "light",
"The element has 'light' as a default for the devtoolstheme attribute.");
is(document.getElementById("content").getAttribute("devtoolstheme"), "light",
"The element has 'light' as a default for the devtoolstheme attribute.");
});
add_task(function* testDevtoolsAndCompactThemeSyncing() {
if (!AppConstants.INSTALL_COMPACT_THEMES) {
ok(true, "No need to run this test since themes aren't installed");
return;
}
info("Devtools theme light -> dark when dark compact applied");
Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "light");
LightweightThemeManager.currentTheme = LightweightThemeManager.getUsedTheme(COMPACT_DARK_ID);
is(Services.prefs.getCharPref(PREF_DEVTOOLS_THEME), "dark");
info("Devtools theme dark -> light when light compact applied");
Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "dark");
LightweightThemeManager.currentTheme = LightweightThemeManager.getUsedTheme(COMPACT_LIGHT_ID);
is(Services.prefs.getCharPref(PREF_DEVTOOLS_THEME), "light");
info("Devtools theme shouldn't change if it wasn't light or dark during lwt change");
Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "firebug");
LightweightThemeManager.currentTheme = LightweightThemeManager.getUsedTheme(COMPACT_DARK_ID);
is(Services.prefs.getCharPref(PREF_DEVTOOLS_THEME), "firebug");
info("Compact theme dark -> light when devtools changes dark -> light");
LightweightThemeManager.currentTheme = LightweightThemeManager.getUsedTheme(COMPACT_DARK_ID);
Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "dark");
Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "light");
is(LightweightThemeManager.currentTheme, LightweightThemeManager.getUsedTheme(COMPACT_LIGHT_ID));
info("Compact theme dark -> light when devtools changes dark -> firebug");
LightweightThemeManager.currentTheme = LightweightThemeManager.getUsedTheme(COMPACT_DARK_ID);
Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "dark");
Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "firebug");
is(LightweightThemeManager.currentTheme, LightweightThemeManager.getUsedTheme(COMPACT_LIGHT_ID));
info("Compact theme light -> dark when devtools changes light -> dark");
LightweightThemeManager.currentTheme = LightweightThemeManager.getUsedTheme(COMPACT_LIGHT_ID);
Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "light");
Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "dark");
is(LightweightThemeManager.currentTheme, LightweightThemeManager.getUsedTheme(COMPACT_DARK_ID));
info("Compact theme shouldn't change if it wasn't set during devtools change");
LightweightThemeManager.currentTheme = null;
Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "light");
Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "dark");
is(LightweightThemeManager.currentTheme, null);
});