|
@@ -3008,15 +3008,53 @@ describe('BrowserWindow module', () => {
|
|
|
})
|
|
|
|
|
|
// The isEnabled API is not reliable on macOS.
|
|
|
- ifdescribe(process.platform !== 'darwin')('modal option', () => {
|
|
|
- it('disables parent window', () => {
|
|
|
+ describe('modal option', () => {
|
|
|
+ it('does not crash', async () => {
|
|
|
+ const parentWindow = new BrowserWindow()
|
|
|
+
|
|
|
+ const createTwo = async () => {
|
|
|
+ const two = new BrowserWindow({
|
|
|
+ width: 300,
|
|
|
+ height: 200,
|
|
|
+ parent: parentWindow,
|
|
|
+ modal: true,
|
|
|
+ show: false
|
|
|
+ })
|
|
|
+
|
|
|
+ const twoShown = emittedOnce(two, 'show')
|
|
|
+ two.show()
|
|
|
+ await twoShown
|
|
|
+ setTimeout(() => two.close(), 500)
|
|
|
+
|
|
|
+ await emittedOnce(two, 'closed')
|
|
|
+ }
|
|
|
+
|
|
|
+ const one = new BrowserWindow({
|
|
|
+ width: 600,
|
|
|
+ height: 400,
|
|
|
+ parent: parentWindow,
|
|
|
+ modal: true,
|
|
|
+ show: false
|
|
|
+ })
|
|
|
+
|
|
|
+ const oneShown = emittedOnce(one, 'show')
|
|
|
+ one.show()
|
|
|
+ await oneShown
|
|
|
+ setTimeout(() => one.destroy(), 500)
|
|
|
+
|
|
|
+ await emittedOnce(one, 'closed')
|
|
|
+ await createTwo()
|
|
|
+ })
|
|
|
+
|
|
|
+ ifit(process.platform !== 'darwin')('disables parent window', () => {
|
|
|
const w = new BrowserWindow({show: false})
|
|
|
const c = new BrowserWindow({ show: false, parent: w, modal: true })
|
|
|
expect(w.isEnabled()).to.be.true('w.isEnabled')
|
|
|
c.show()
|
|
|
expect(w.isEnabled()).to.be.false('w.isEnabled')
|
|
|
})
|
|
|
- it('re-enables an enabled parent window when closed', (done) => {
|
|
|
+
|
|
|
+ ifit(process.platform !== 'darwin')('re-enables an enabled parent window when closed', (done) => {
|
|
|
const w = new BrowserWindow({show: false})
|
|
|
const c = new BrowserWindow({ show: false, parent: w, modal: true })
|
|
|
c.once('closed', () => {
|
|
@@ -3026,7 +3064,8 @@ describe('BrowserWindow module', () => {
|
|
|
c.show()
|
|
|
c.close()
|
|
|
})
|
|
|
- it('does not re-enable a disabled parent window when closed', (done) => {
|
|
|
+
|
|
|
+ ifit(process.platform !== 'darwin')('does not re-enable a disabled parent window when closed', (done) => {
|
|
|
const w = new BrowserWindow({show: false})
|
|
|
const c = new BrowserWindow({ show: false, parent: w, modal: true })
|
|
|
c.once('closed', () => {
|
|
@@ -3037,7 +3076,8 @@ describe('BrowserWindow module', () => {
|
|
|
c.show()
|
|
|
c.close()
|
|
|
})
|
|
|
- it('disables parent window recursively', () => {
|
|
|
+
|
|
|
+ ifit(process.platform !== 'darwin')('disables parent window recursively', () => {
|
|
|
const w = new BrowserWindow({show: false})
|
|
|
const c = new BrowserWindow({ show: false, parent: w, modal: true })
|
|
|
const c2 = new BrowserWindow({ show: false, parent: w, modal: true })
|