diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2016-06-26 15:35:14 -0400 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2016-09-22 20:04:32 +0200 |
commit | e54c0ab367af65bf43650c4411c1614016780ea9 (patch) | |
tree | 2d936451dee2cd0d7c7dc8ea3437b70716f8a20a /test/functional/terminal/api_spec.lua | |
parent | e2ad3fbf278ff25565fc720ef17a8ef997307bb7 (diff) | |
download | rneovim-e54c0ab367af65bf43650c4411c1614016780ea9.tar.gz rneovim-e54c0ab367af65bf43650c4411c1614016780ea9.tar.bz2 rneovim-e54c0ab367af65bf43650c4411c1614016780ea9.zip |
test: api_spec
This is an (unsuccessful) attempt to cover #4163.
It covers other behavior, so it's worth keeping.
Diffstat (limited to 'test/functional/terminal/api_spec.lua')
-rw-r--r-- | test/functional/terminal/api_spec.lua | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/test/functional/terminal/api_spec.lua b/test/functional/terminal/api_spec.lua new file mode 100644 index 0000000000..58d6c75940 --- /dev/null +++ b/test/functional/terminal/api_spec.lua @@ -0,0 +1,60 @@ +local helpers = require('test.functional.helpers')(after_each) +local child_session = require('test.functional.terminal.helpers') +local ok = helpers.ok + +if helpers.pending_win32(pending) then return end + +describe('api', function() + local screen + local socket_name = "Xtest_functional_api.sock" + + before_each(function() + helpers.clear() + os.remove(socket_name) + screen = child_session.screen_setup(0, '["'..helpers.nvim_prog + ..'", "-u", "NONE", "-i", "NONE", "--cmd", "set noswapfile"]') + end) + after_each(function() + os.remove(socket_name) + end) + + it("qa! RPC request during insert-mode", function() + -- Start the socket from the child nvim. + child_session.feed_data(":echo serverstart('"..socket_name.."')\n") + + -- Wait for socket creation by abusing expect(). + screen:expect([[ + {1: } | + {4:~ }| + {4:~ }| + {4:~ }| + {5:[No Name] }| + ]]..socket_name..[[ | + {3:-- TERMINAL --} | + ]]) + + local socket_session1 = helpers.connect(socket_name) + local socket_session2 = helpers.connect(socket_name) + + child_session.feed_data("i[tui] insert-mode") + + ok(socket_session1:request("nvim_ui_attach", 42, 6, {rgb=true})) + ok(socket_session2:request("nvim_ui_attach", 25, 30, {rgb=true})) + + socket_session1:notify("nvim_input", "\n[socket 1] this is more than 25 columns") + socket_session2:notify("nvim_input", "\n[socket 2] input") + + screen:expect([[ + [tui] insert-mode | + [socket 1] this is more t{4: }| + han 25 columns {4: }| + [socket 2] input{1: } {4: }| + {5:[No Name] [+] }| + {3:-- INSERT --} | + {3:-- TERMINAL --} | + ]]) + + socket_session1:request("nvim_command", "qa!") + end) +end) + |