summaryrefslogtreecommitdiffstats
path: root/browser/components/sessionstore/test/browser_sizemodeBeforeMinimized.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/sessionstore/test/browser_sizemodeBeforeMinimized.js')
-rw-r--r--browser/components/sessionstore/test/browser_sizemodeBeforeMinimized.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/browser/components/sessionstore/test/browser_sizemodeBeforeMinimized.js b/browser/components/sessionstore/test/browser_sizemodeBeforeMinimized.js
new file mode 100644
index 0000000000..a832e71bcf
--- /dev/null
+++ b/browser/components/sessionstore/test/browser_sizemodeBeforeMinimized.js
@@ -0,0 +1,44 @@
+add_task(async function test() {
+ // Test for bugfix 384278. Confirms that sizemodeBeforeMinimized is set properly when window state is saved.
+ let win = await BrowserTestUtils.openNewBrowserWindow();
+
+ async function changeSizeMode(mode) {
+ let promise = BrowserTestUtils.waitForEvent(win, "sizemodechange");
+ win[mode]();
+ await promise;
+ }
+
+ function checkCurrentState(sizemodeBeforeMinimized) {
+ let state = ss.getWindowState(win);
+ let winState = state.windows[0];
+ is(
+ winState.sizemodeBeforeMinimized,
+ sizemodeBeforeMinimized,
+ "sizemodeBeforeMinimized should match"
+ );
+ }
+
+ // Note: Uses ss.getWindowState(win); as a more time efficient alternative to forceSaveState(); (causing timeouts).
+ // Simulates FF restart.
+
+ if (win.windowState != win.STATE_NORMAL) {
+ await changeSizeMode("restore");
+ }
+ ss.getWindowState(win);
+ await changeSizeMode("minimize");
+ checkCurrentState("normal");
+
+ // Need to create new window or test will timeout on linux.
+ await BrowserTestUtils.closeWindow(win);
+ win = await BrowserTestUtils.openNewBrowserWindow();
+
+ if (win.windowState != win.STATE_MAXIMIZED) {
+ await changeSizeMode("maximize");
+ }
+ ss.getWindowState(win);
+ await changeSizeMode("minimize");
+ checkCurrentState("maximized");
+
+ // Clean up.
+ await BrowserTestUtils.closeWindow(win);
+});