diff --git a/spec/fixtures/pages/onkeyup.html b/spec/fixtures/pages/onkeyup.html
new file mode 100644
index 0000000000..99e6c3e983
--- /dev/null
+++ b/spec/fixtures/pages/onkeyup.html
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/spec/fixtures/pages/onmouseup.html b/spec/fixtures/pages/onmouseup.html
new file mode 100644
index 0000000000..1fd38bc721
--- /dev/null
+++ b/spec/fixtures/pages/onmouseup.html
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/spec/webview-spec.coffee b/spec/webview-spec.coffee
index e4b40c28eb..b310b7b129 100644
--- a/spec/webview-spec.coffee
+++ b/spec/webview-spec.coffee
@@ -336,3 +336,26 @@ describe ' tag', ->
webview.addEventListener 'did-finish-load', listener2
webview.src = "file://#{fixtures}/pages/fullscreen.html"
document.body.appendChild webview
+
+ describe 'sendInputEvent', ->
+ it 'can send keyboard event', (done) ->
+ webview.addEventListener 'ipc-message', (e) ->
+ assert.equal e.channel, 'keyup'
+ assert.deepEqual e.args, [67, true, false]
+ done()
+ webview.addEventListener 'dom-ready', ->
+ webview.sendInputEvent type: 'keyup', keyCode: 'c', modifiers: ['shift']
+ webview.src = "file://#{fixtures}/pages/onkeyup.html"
+ webview.setAttribute 'nodeintegration', 'on'
+ document.body.appendChild webview
+
+ it 'can send mouse event', (done) ->
+ webview.addEventListener 'ipc-message', (e) ->
+ assert.equal e.channel, 'mouseup'
+ assert.deepEqual e.args, [10, 20, false, true]
+ done()
+ webview.addEventListener 'dom-ready', ->
+ webview.sendInputEvent type: 'mouseup', modifiers: ['ctrl'], x: 10, y: 20
+ webview.src = "file://#{fixtures}/pages/onmouseup.html"
+ webview.setAttribute 'nodeintegration', 'on'
+ document.body.appendChild webview