spec: Add test for sendInputEvent
authorCheng Zhao <zcbenz@gmail.com>
Fri, 18 Sep 2015 10:28:34 +0000 (18:28 +0800)
committerCheng Zhao <zcbenz@gmail.com>
Fri, 18 Sep 2015 10:28:34 +0000 (18:28 +0800)
spec/fixtures/pages/onkeyup.html [new file with mode: 0644]
spec/fixtures/pages/onmouseup.html [new file with mode: 0644]
spec/webview-spec.coffee

diff --git a/spec/fixtures/pages/onkeyup.html b/spec/fixtures/pages/onkeyup.html
new file mode 100644 (file)
index 0000000..99e6c3e
--- /dev/null
@@ -0,0 +1,9 @@
+<html>
+<body>
+<script type="text/javascript" charset="utf-8">
+document.onkeyup = function(e) {
+  require('ipc').sendToHost('keyup', e.keyCode, e.shiftKey, e.ctrlKey);
+}
+</script>
+</body>
+</html>
diff --git a/spec/fixtures/pages/onmouseup.html b/spec/fixtures/pages/onmouseup.html
new file mode 100644 (file)
index 0000000..1fd38bc
--- /dev/null
@@ -0,0 +1,9 @@
+<html>
+<body>
+<script type="text/javascript" charset="utf-8">
+document.onmouseup = function(e) {
+  require('ipc').sendToHost('mouseup', e.x, e.y, e.shiftKey, e.ctrlKey);
+}
+</script>
+</body>
+</html>
index e4b40c28ebeb5853eb3e454224f517ab4911c8a3..b310b7b129f8cd2ce10a65e5d3206993b29b02da 100644 (file)
@@ -336,3 +336,26 @@ describe '<webview> 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