diff options
Diffstat (limited to 'devtools/client/performance/test/browser_perf-theme-toggle.js')
-rw-r--r-- | devtools/client/performance/test/browser_perf-theme-toggle.js | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/devtools/client/performance/test/browser_perf-theme-toggle.js b/devtools/client/performance/test/browser_perf-theme-toggle.js new file mode 100644 index 000000000..f8dbe9767 --- /dev/null +++ b/devtools/client/performance/test/browser_perf-theme-toggle.js @@ -0,0 +1,78 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ +"use strict"; +/* eslint-disable */ +/** + * Tests if the markers and memory overviews render with the correct + * theme on load, and rerenders when changed. + */ + +const { setTheme } = require("devtools/client/shared/theme"); + +const LIGHT_BG = "white"; +const DARK_BG = "#14171a"; + +setTheme("dark"); +Services.prefs.setBoolPref(MEMORY_PREF, false); + +requestLongerTimeout(2); + +function* spawnTest() { + let { panel } = yield initPerformance(SIMPLE_URL); + let { EVENTS, $, OverviewView, document: doc } = panel.panelWin; + + yield startRecording(panel); + let markers = OverviewView.graphs.get("timeline"); + is(markers.backgroundColor, DARK_BG, + "correct theme on load for markers."); + yield stopRecording(panel); + + let refreshed = once(markers, "refresh"); + setTheme("light"); + yield refreshed; + + ok(true, "markers were rerendered after theme change."); + is(markers.backgroundColor, LIGHT_BG, + "correct theme on after toggle for markers."); + + // reset back to dark + refreshed = once(markers, "refresh"); + setTheme("dark"); + yield refreshed; + + info("Testing with memory overview"); + + Services.prefs.setBoolPref(MEMORY_PREF, true); + + yield startRecording(panel); + let memory = OverviewView.graphs.get("memory"); + is(memory.backgroundColor, DARK_BG, + "correct theme on load for memory."); + yield stopRecording(panel); + + refreshed = Promise.all([ + once(markers, "refresh"), + once(memory, "refresh"), + ]); + setTheme("light"); + yield refreshed; + + ok(true, "Both memory and markers were rerendered after theme change."); + is(markers.backgroundColor, LIGHT_BG, + "correct theme on after toggle for markers."); + is(memory.backgroundColor, LIGHT_BG, + "correct theme on after toggle for memory."); + + refreshed = Promise.all([ + once(markers, "refresh"), + once(memory, "refresh"), + ]); + + // Set theme back to light + setTheme("light"); + yield refreshed; + + yield teardown(panel); + finish(); +} +/* eslint-enable */ |