Add spec for closing from will-navigate listener
authorKevin Sawicki <kevinsawicki@gmail.com>
Wed, 21 Dec 2016 18:00:27 +0000 (10:00 -0800)
committerKevin Sawicki <kevinsawicki@gmail.com>
Wed, 28 Dec 2016 21:40:07 +0000 (13:40 -0800)
spec/api-browser-window-spec.js
spec/static/main.js

index b718a6a..eabd920 100644 (file)
@@ -267,6 +267,16 @@ describe('BrowserWindow module', function () {
     })
   })
 
+  describe('will-navigate event', function () {
+    it('allows the window to be closed from the event listener', (done) => {
+      ipcRenderer.send('close-on-will-navigate', w.id)
+      ipcRenderer.once('closed-on-will-navigate', () => {
+        done()
+      })
+      w.loadURL('file://' + fixtures + '/pages/will-navigate.html')
+    })
+  })
+
   describe('BrowserWindow.show()', function () {
     if (isCI) {
       return
index 19b0739..259350f 100644 (file)
@@ -221,3 +221,12 @@ ipcMain.on('set-client-certificate-option', function (event, skip) {
   })
   event.returnValue = 'done'
 })
+
+ipcMain.on('close-on-will-navigate', (event, id) => {
+  const contents = event.sender
+  const window = BrowserWindow.fromId(id)
+  window.webContents.once('will-navigate', (event, input) => {
+    window.close()
+    contents.send('closed-on-will-navigate')
+  })
+})