From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../components/sessionstore/test/browser_477657.js | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 browser/components/sessionstore/test/browser_477657.js (limited to 'browser/components/sessionstore/test/browser_477657.js') diff --git a/browser/components/sessionstore/test/browser_477657.js b/browser/components/sessionstore/test/browser_477657.js new file mode 100644 index 0000000000..f54c270bf5 --- /dev/null +++ b/browser/components/sessionstore/test/browser_477657.js @@ -0,0 +1,80 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +add_task(async function test_sizemodeDefaults() { + /** Test for Bug 477657 **/ + let newWin = openDialog(location, "_blank", "chrome,all,dialog=no"); + await promiseWindowLoaded(newWin); + let newState = { + windows: [ + { + tabs: [{ entries: [] }], + _closedTabs: [ + { + state: { entries: [{ url: "about:" }] }, + title: "About:", + }, + ], + sizemode: "maximized", + }, + ], + }; + + let uniqueKey = "bug 477657"; + let uniqueValue = "unik" + Date.now(); + + ss.setCustomWindowValue(newWin, uniqueKey, uniqueValue); + is( + ss.getCustomWindowValue(newWin, uniqueKey), + uniqueValue, + "window value was set before the window was overwritten" + ); + + await setWindowState(newWin, newState, true); + // use newWin.setTimeout(..., 0) to mirror sss_restoreWindowFeatures + await new Promise(resolve => newWin.setTimeout(resolve, 0)); + + is( + ss.getCustomWindowValue(newWin, uniqueKey), + "", + "window value was implicitly cleared" + ); + + is(newWin.windowState, newWin.STATE_MAXIMIZED, "the window was maximized"); + + is( + ss.getClosedTabDataForWindow(newWin).length, + 1, + "the closed tab was added before the window was overwritten" + ); + delete newState.windows[0]._closedTabs; + delete newState.windows[0].sizemode; + + await setWindowState(newWin, newState, true); + await new Promise(resolve => newWin.setTimeout(resolve, 0)); + + is( + ss.getClosedTabDataForWindow(newWin).length, + 0, + "closed tabs were implicitly cleared" + ); + + is( + newWin.windowState, + newWin.STATE_MAXIMIZED, + "the window remains maximized" + ); + newState.windows[0].sizemode = "normal"; + + await setWindowState(newWin, newState, true); + await new Promise(resolve => newWin.setTimeout(resolve, 0)); + + isnot( + newWin.windowState, + newWin.STATE_MAXIMIZED, + "the window was explicitly unmaximized" + ); + + await BrowserTestUtils.closeWindow(newWin); +}); -- cgit v1.2.3