Browse Source

Add failing spec for notification permission crash

Kevin Sawicki 8 years ago
parent
commit
dda3fcef91
2 changed files with 28 additions and 0 deletions
  1. 10 0
      spec/fixtures/pages/permissions/notification.html
  2. 18 0
      spec/webview-spec.js

+ 10 - 0
spec/fixtures/pages/permissions/notification.html

@@ -0,0 +1,10 @@
+<script>
+var n1 = new Notification('Electron Notification.requestPermission test 1')
+var n2 = new Notification('Electron Notification.requestPermission test 2')
+Notification.requestPermission().then((result) => {
+  n1.close()
+  n2.close()
+
+  require('electron').ipcRenderer.sendToHost('message', result)
+})
+</script>

+ 18 - 0
spec/webview-spec.js

@@ -946,6 +946,24 @@ describe('<webview> tag', function () {
       setUpRequestHandler(webview, 'openExternal', done)
       document.body.appendChild(webview)
     })
+
+    it('emits when using Notification.requestPermission', function (done) {
+      webview.addEventListener('ipc-message', function (e) {
+        assert.equal(e.channel, 'message')
+        assert.deepEqual(e.args, ['granted'])
+        done()
+      })
+      webview.src = 'file://' + fixtures + '/pages/permissions/notification.html'
+      webview.partition = 'permissionTest'
+      webview.setAttribute('nodeintegration', 'on')
+      session.fromPartition(webview.partition).setPermissionRequestHandler(function (webContents, permission, callback) {
+        if (webContents.getId() === webview.getId()) {
+          assert.equal(permission, 'notifications')
+          callback(true)
+        }
+      })
+      document.body.appendChild(webview)
+    })
   })
 
   describe('<webview>.getWebContents', function () {