diff options
Diffstat (limited to 'browser/base/content/test/general/browser_devedition.js')
-rw-r--r-- | browser/base/content/test/general/browser_devedition.js | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/browser/base/content/test/general/browser_devedition.js b/browser/base/content/test/general/browser_devedition.js deleted file mode 100644 index 06ee42e7e..000000000 --- a/browser/base/content/test/general/browser_devedition.js +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Testing changes for Developer Edition theme. - * A special stylesheet should be added to the browser.xul document - * when the firefox-devedition@mozilla.org lightweight theme - * is applied. - */ - -const PREF_LWTHEME_USED_THEMES = "lightweightThemes.usedThemes"; -const PREF_DEVTOOLS_THEME = "devtools.theme"; -const {LightweightThemeManager} = Components.utils.import("resource://gre/modules/LightweightThemeManager.jsm", {}); - -LightweightThemeManager.clearBuiltInThemes(); -LightweightThemeManager.addBuiltInTheme(dummyLightweightTheme("firefox-devedition@mozilla.org")); - -registerCleanupFunction(() => { - // Set preferences back to their original values - LightweightThemeManager.currentTheme = null; - Services.prefs.clearUserPref(PREF_DEVTOOLS_THEME); - Services.prefs.clearUserPref(PREF_LWTHEME_USED_THEMES); - - LightweightThemeManager.currentTheme = null; - LightweightThemeManager.clearBuiltInThemes(); -}); - -add_task(function* startTests() { - Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "dark"); - - info ("Setting the current theme to null"); - LightweightThemeManager.currentTheme = null; - ok (!DevEdition.isStyleSheetEnabled, "There is no devedition style sheet when no lw theme is applied."); - - info ("Adding a lightweight theme."); - LightweightThemeManager.currentTheme = dummyLightweightTheme("preview0"); - ok (!DevEdition.isStyleSheetEnabled, "The devedition stylesheet has been removed when a lightweight theme is applied."); - - info ("Applying the devedition lightweight theme."); - let onAttributeAdded = waitForBrightTitlebarAttribute(); - LightweightThemeManager.currentTheme = LightweightThemeManager.getUsedTheme("firefox-devedition@mozilla.org"); - ok (DevEdition.isStyleSheetEnabled, "The devedition stylesheet has been added when the devedition lightweight theme is applied"); - yield onAttributeAdded; - is (document.documentElement.getAttribute("brighttitlebarforeground"), "true", - "The brighttitlebarforeground attribute is set on the window."); - - info ("Unapplying all themes."); - LightweightThemeManager.currentTheme = null; - ok (!DevEdition.isStyleSheetEnabled, "There is no devedition style sheet when no lw theme is applied."); - - info ("Applying the devedition lightweight theme."); - onAttributeAdded = waitForBrightTitlebarAttribute(); - LightweightThemeManager.currentTheme = LightweightThemeManager.getUsedTheme("firefox-devedition@mozilla.org"); - ok (DevEdition.isStyleSheetEnabled, "The devedition stylesheet has been added when the devedition lightweight theme is applied"); - yield onAttributeAdded; - ok (document.documentElement.hasAttribute("brighttitlebarforeground"), - "The brighttitlebarforeground attribute is set on the window with dark devtools theme."); -}); - -add_task(function* testDevtoolsTheme() { - info ("Checking stylesheet and :root attributes based on devtools theme."); - Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "light"); - is (document.documentElement.getAttribute("devtoolstheme"), "light", - "The documentElement has an attribute based on devtools theme."); - ok (DevEdition.isStyleSheetEnabled, "The devedition stylesheet is still there with the light devtools theme."); - ok (!document.documentElement.hasAttribute("brighttitlebarforeground"), - "The brighttitlebarforeground attribute is not set on the window with light devtools theme."); - - Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "dark"); - is (document.documentElement.getAttribute("devtoolstheme"), "dark", - "The documentElement has an attribute based on devtools theme."); - ok (DevEdition.isStyleSheetEnabled, "The devedition stylesheet is still there with the dark devtools theme."); - is (document.documentElement.getAttribute("brighttitlebarforeground"), "true", - "The brighttitlebarforeground attribute is set on the window with dark devtools theme."); - - Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "foobar"); - is (document.documentElement.getAttribute("devtoolstheme"), "light", - "The documentElement has 'light' as a default for the devtoolstheme attribute"); - ok (DevEdition.isStyleSheetEnabled, "The devedition stylesheet is still there with the foobar devtools theme."); - ok (!document.documentElement.hasAttribute("brighttitlebarforeground"), - "The brighttitlebarforeground attribute is not set on the window with light devtools theme."); -}); - -function dummyLightweightTheme(id) { - return { - id: id, - name: id, - headerURL: "resource:///chrome/browser/content/browser/defaultthemes/devedition.header.png", - iconURL: "resource:///chrome/browser/content/browser/defaultthemes/devedition.icon.png", - textcolor: "red", - accentcolor: "blue" - }; -} - -add_task(function* testLightweightThemePreview() { - info ("Setting devedition to current and the previewing others"); - LightweightThemeManager.currentTheme = LightweightThemeManager.getUsedTheme("firefox-devedition@mozilla.org"); - ok (DevEdition.isStyleSheetEnabled, "The devedition stylesheet is enabled."); - LightweightThemeManager.previewTheme(dummyLightweightTheme("preview0")); - ok (!DevEdition.isStyleSheetEnabled, "The devedition stylesheet is not enabled after a lightweight theme preview."); - LightweightThemeManager.resetPreview(); - LightweightThemeManager.previewTheme(dummyLightweightTheme("preview1")); - ok (!DevEdition.isStyleSheetEnabled, "The devedition stylesheet is not enabled after a second lightweight theme preview."); - LightweightThemeManager.resetPreview(); - ok (DevEdition.isStyleSheetEnabled, "The devedition stylesheet is enabled again after resetting the preview."); - LightweightThemeManager.currentTheme = null; - ok (!DevEdition.isStyleSheetEnabled, "The devedition stylesheet is gone after removing the current theme."); - - info ("Previewing the devedition theme"); - LightweightThemeManager.previewTheme(LightweightThemeManager.getUsedTheme("firefox-devedition@mozilla.org")); - ok (DevEdition.isStyleSheetEnabled, "The devedition stylesheet is enabled."); - LightweightThemeManager.previewTheme(dummyLightweightTheme("preview2")); - LightweightThemeManager.resetPreview(); - ok (!DevEdition.isStyleSheetEnabled, "The devedition stylesheet is now disabled after resetting the preview."); -}); - -// Use a mutation observer to wait for the brighttitlebarforeground -// attribute to change. Using this instead of waiting for the load -// event on the DevEdition styleSheet. -function waitForBrightTitlebarAttribute() { - return new Promise((resolve, reject) => { - let mutationObserver = new MutationObserver(function (mutations) { - for (let mutation of mutations) { - if (mutation.attributeName == "brighttitlebarforeground") { - mutationObserver.disconnect(); - resolve(); - } - } - }); - mutationObserver.observe(document.documentElement, { attributes: true }); - }); -} |