diff --git a/spec/fixtures/pages/permissions/notification.html b/spec/fixtures/pages/permissions/notification.html new file mode 100644 index 000000000000..264fc9faf875 --- /dev/null +++ b/spec/fixtures/pages/permissions/notification.html @@ -0,0 +1,10 @@ + diff --git a/spec/webview-spec.js b/spec/webview-spec.js index 059fc7228889..01fbfe8953b5 100644 --- a/spec/webview-spec.js +++ b/spec/webview-spec.js @@ -946,6 +946,24 @@ describe(' 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('.getWebContents', function () {