12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- local t = require('test.testutil')
- local n = require('test.functional.testnvim')()
- local tt = require('test.functional.testterm')
- local ok = t.ok
- if t.skip(t.is_os('win')) then
- return
- end
- describe('api', function()
- local screen
- local socket_name = './Xtest_functional_api.sock'
- before_each(function()
- n.clear()
- os.remove(socket_name)
- screen = tt.setup_child_nvim({
- '-u',
- 'NONE',
- '-i',
- 'NONE',
- '--cmd',
- 'colorscheme vim',
- '--cmd',
- n.nvim_set .. ' notermguicolors',
- })
- end)
- after_each(function()
- os.remove(socket_name)
- end)
- it('qa! RPC request during insert-mode', function()
- screen:expect {
- grid = [[
- {1: } |
- {4:~ }|*4
- |
- {3:-- TERMINAL --} |
- ]],
- }
- -- Start the socket from the child nvim.
- tt.feed_data(":echo serverstart('" .. socket_name .. "')\n")
- -- Wait for socket creation.
- screen:expect([[
- {1: } |
- {4:~ }|*4
- ]] .. socket_name .. [[ |
- {3:-- TERMINAL --} |
- ]])
- local socket_session1 = n.connect(socket_name)
- local socket_session2 = n.connect(socket_name)
- tt.feed_data('i[tui] insert-mode')
- -- Wait for stdin to be processed.
- screen:expect([[
- [tui] insert-mode{1: } |
- {4:~ }|*4
- {3:-- INSERT --} |
- {3:-- TERMINAL --} |
- ]])
- 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 |
- han 25 columns |
- [socket 2] input{1: } |
- {4:~ } |
- {3:-- INSERT --} |
- {3:-- TERMINAL --} |
- ]])
- socket_session1:request('nvim_command', 'qa!')
- end)
- end)
|