Skip to content

Commit

Permalink
chore: re-enable and fix some BrowserWindow tests on Linux
Browse files Browse the repository at this point in the history
  • Loading branch information
dsanders11 committed Jan 21, 2022
1 parent 6fb013f commit 56dc508
Showing 1 changed file with 20 additions and 15 deletions.
35 changes: 20 additions & 15 deletions spec-main/api-browser-window-spec.ts
Expand Up @@ -1071,16 +1071,18 @@ describe('BrowserWindow module', () => {
});
});

ifdescribe(process.platform !== 'linux')('Maximized state', () => {
it('checks normal bounds when maximized', async () => {
describe('Maximized state', () => {
// TODO(dsanders11): Enable these once BrowserWindow.getBounds() accurate on Linux.
// See https://github.com/electron/electron/issues/10388
ifit(process.platform !== 'linux')('checks normal bounds when maximized', async () => {
const bounds = w.getBounds();
const maximize = emittedOnce(w, 'maximize');
w.show();
w.maximize();
await maximize;
expectBoundsEqual(w.getNormalBounds(), bounds);
});
it('checks normal bounds when unmaximized', async () => {
ifit(process.platform !== 'linux')('checks normal bounds when unmaximized', async () => {
const bounds = w.getBounds();
w.once('maximize', () => {
w.unmaximize();
Expand Down Expand Up @@ -1120,12 +1122,12 @@ describe('BrowserWindow module', () => {
transparent: true
});

const maximize = emittedOnce(w, 'resize');
const maximize = emittedOnce(w, 'maximize');
w.show();
w.maximize();
await maximize;
expect(w.isMaximized()).to.equal(true);
const unmaximize = emittedOnce(w, 'resize');
const unmaximize = emittedOnce(w, 'unmaximize');
w.unmaximize();
await unmaximize;
expect(w.isMaximized()).to.equal(false);
Expand All @@ -1139,7 +1141,7 @@ describe('BrowserWindow module', () => {

w.setAspectRatio(16 / 11);

const maximize = emittedOnce(w, 'resize');
const maximize = emittedOnce(w, 'maximize');
w.show();
w.maximize();
await maximize;
Expand All @@ -1150,16 +1152,18 @@ describe('BrowserWindow module', () => {
});
});

ifdescribe(process.platform !== 'linux')('Minimized state', () => {
it('checks normal bounds when minimized', async () => {
describe('Minimized state', () => {
// TODO(dsanders11): Enable these once BrowserWindow.getBounds() accurate on Linux.
// See https://github.com/electron/electron/issues/10388
ifit(process.platform !== 'linux')('checks normal bounds when minimized', async () => {
const bounds = w.getBounds();
const minimize = emittedOnce(w, 'minimize');
w.show();
w.minimize();
await minimize;
expectBoundsEqual(w.getNormalBounds(), bounds);
});
it('checks normal bounds when restored', async () => {
ifit(process.platform !== 'linux')('checks normal bounds when restored', async () => {
const bounds = w.getBounds();
w.once('minimize', () => {
w.restore();
Expand Down Expand Up @@ -3181,7 +3185,7 @@ describe('BrowserWindow module', () => {
});
});

ifdescribe(process.platform !== 'linux')('max/minimize events', () => {
describe('max/minimize events', () => {
afterEach(closeAllWindows);
it('emits an event when window is maximized', async () => {
const w = new BrowserWindow({ show: false });
Expand All @@ -3191,20 +3195,23 @@ describe('BrowserWindow module', () => {
await maximize;
});

it('emits only one event when frameless window is maximized', () => {
it('emits only one event when frameless window is maximized', async () => {
const w = new BrowserWindow({ show: false, frame: false });
let emitted = 0;
w.on('maximize', () => emitted++);
w.show();
w.maximize();
await delay(1000);
expect(emitted).to.equal(1);
});

it('emits an event when window is unmaximized', async () => {
const w = new BrowserWindow({ show: false });
const maximize = emittedOnce(w, 'maximize');
const unmaximize = emittedOnce(w, 'unmaximize');
w.show();
w.maximize();
await maximize;
w.unmaximize();
await unmaximize;
});
Expand Down Expand Up @@ -3380,9 +3387,7 @@ describe('BrowserWindow module', () => {
expectBoundsEqual(w.getPosition(), initialPosition);
});

// TODO(dsanders11): Enable once minimize event works on Linux again.
// See https://github.com/electron/electron/issues/28699
ifit(process.platform !== 'linux')('should not restore a minimized window', async () => {
it('should not restore a minimized window', async () => {
const w = new BrowserWindow();
const minimize = emittedOnce(w, 'minimize');
w.minimize();
Expand All @@ -3394,7 +3399,7 @@ describe('BrowserWindow module', () => {

it('should not change the size or position of a normal window', async () => {
const w = new BrowserWindow();

await delay(1000);
const initialSize = w.getSize();
const initialPosition = w.getPosition();
w.unmaximize();
Expand Down

0 comments on commit 56dc508

Please sign in to comment.