Bug 1631735 Part 4: Make tests that minimize windows wait for size mode change events. r=mstange

Depends on D170841

Differential Revision: https://phabricator.services.mozilla.com/D171626
This commit is contained in:
Brad Werth 2023-03-06 19:38:12 +00:00
Родитель ee9a12ee0d
Коммит 73c097499a
3 изменённых файлов: 31 добавлений и 3 удалений

Просмотреть файл

@ -177,8 +177,18 @@ add_task(async function test_check_minimize_response() {
set: [["prompts.windowPromptSubDialog", true]],
});
let promiseSizeModeChange = BrowserTestUtils.waitForEvent(
window,
"sizemodechange"
);
window.minimize();
await promiseSizeModeChange;
is(window.windowState, window.STATE_MINIMIZED, "Should be minimized.");
promiseSizeModeChange = BrowserTestUtils.waitForEvent(
window,
"sizemodechange"
);
let dialogPromise = BrowserTestUtils.promiseAlertDialogOpen();
// Use an async alert to avoid blocking.
Services.prompt.asyncAlert(
@ -188,6 +198,7 @@ add_task(async function test_check_minimize_response() {
"some message"
);
let dialogWin = await dialogPromise;
await promiseSizeModeChange;
isnot(
window.windowState,

Просмотреть файл

@ -24,7 +24,7 @@ function test() {
// Now minimize window_B. The selected window shouldn't have the secret data
window_B.minimize();
waitForFocus(function() {
waitForFocus(async function() {
state = JSON.parse(ss.getBrowserState());
selectedWindow = state.windows[state.selectedWindow - 1];
ok(
@ -33,7 +33,12 @@ function test() {
);
// Now minimize the last open window (assumes no other tests left windows open)
let promiseSizeModeChange = BrowserTestUtils.waitForEvent(
window,
"sizemodechange"
);
window.minimize();
await promiseSizeModeChange;
state = JSON.parse(ss.getBrowserState());
is(
state.selectedWindow,

Просмотреть файл

@ -21,7 +21,9 @@ var fm = Services.focus;
var is = function(l, r, v) { window.arguments[0].SimpleTest.is(l, r, v); }
var isnot = function(l, r, v) { window.arguments[0].SimpleTest.isnot(l, r, v); }
function runTest()
const {BrowserTestUtils} = ChromeUtils.import("resource://testing-common/BrowserTestUtils.jsm");
async function runTest()
{
var menu = document.getElementById("menu");
@ -34,7 +36,12 @@ function runTest()
menu.open = true;
return;
}
let promiseSizeModeChange = BrowserTestUtils.waitForEvent(
window,
"sizemodechange"
);
window.minimize();
await promiseSizeModeChange;
is(window.windowState, window.STATE_MINIMIZED, "window is minimized");
isnot(fm.activeWindow, window, "active window after minimize");
@ -45,12 +52,17 @@ function runTest()
setTimeout(runTestAfterMinimize, 0);
}
function runTestAfterMinimize()
async function runTestAfterMinimize()
{
var menu = document.getElementById("menu");
is(menu.firstChild.state, "closed", "popup not opened when window minimized");
let promiseSizeModeChange = BrowserTestUtils.waitForEvent(
window,
"sizemodechange"
);
window.restore();
await promiseSizeModeChange;
is(window.windowState, window.STATE_NORMAL, "window is restored");
is(fm.activeWindow, window, "active window after restore");