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 () {