diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-04-04 14:00:39 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-04-04 14:00:39 +0200 |
commit | cde0ff39da2459b16007fef701ebaa449fb6fe9d (patch) | |
tree | 9ba0f500505470043d6e78a30600419375d4c76f /src/testdir/test_clientserver.vim | |
parent | d77a8525d5438cae49f670eb473ef60d87ca5f54 (diff) | |
download | vim-git-cde0ff39da2459b16007fef701ebaa449fb6fe9d.tar.gz |
patch 8.2.0509: various code is not properly tested.v8.2.0509
Problem: various code is not properly tested.
Solution: Add more tests. (Yegappan Lakshmanan, closes #5871)
Diffstat (limited to 'src/testdir/test_clientserver.vim')
-rw-r--r-- | src/testdir/test_clientserver.vim | 73 |
1 files changed, 65 insertions, 8 deletions
diff --git a/src/testdir/test_clientserver.vim b/src/testdir/test_clientserver.vim index 00b06b29d..8a333aa90 100644 --- a/src/testdir/test_clientserver.vim +++ b/src/testdir/test_clientserver.vim @@ -6,11 +6,7 @@ CheckFeature clientserver source shared.vim -func Test_client_server() - let cmd = GetVimCommand() - if cmd == '' - return - endif +func Check_X11_Connection() if has('x11') if empty($DISPLAY) throw 'Skipped: $DISPLAY is not set' @@ -19,11 +15,19 @@ func Test_client_server() call remote_send('xxx', '') catch if v:exception =~ 'E240:' - throw 'Skipped: no connection to the X server' + throw 'Skipped: no connection to the X server' endif " ignore other errors endtry endif +endfunc + +func Test_client_server() + let cmd = GetVimCommand() + if cmd == '' + return + endif + call Check_X11_Connection() let name = 'XVIMTEST' let cmd .= ' --servername ' . name @@ -72,6 +76,10 @@ func Test_client_server() endif let g:testvar = 'myself' call assert_equal('myself', remote_expr(v:servername, 'testvar')) + call remote_send(v:servername, ":let g:testvar2 = 75\<CR>") + call feedkeys('', 'x') + call assert_equal(75, g:testvar2) + call assert_fails('let v = remote_expr(v:servername, "/2")', 'E449:') call remote_send(name, ":call server2client(expand('<client>'), 'got it')\<CR>", 'g:myserverid') call assert_equal('got it', g:myserverid->remote_read(2)) @@ -92,6 +100,55 @@ func Test_client_server() call assert_equal('another', g:peek_result) call assert_equal('another', remote_read(g:myserverid, 2)) + if !has('gui_running') + " In GUI vim, the following tests display a dialog box + + let cmd = GetVimProg() .. ' --servername ' .. name + + " Run a separate instance to send a command to the server + call remote_expr(name, 'execute("only")') + call system(cmd .. ' --remote-send ":new Xfile<CR>"') + call assert_equal('2', remote_expr(name, 'winnr("$")')) + call assert_equal('Xfile', remote_expr(name, 'winbufnr(1)->bufname()')) + call remote_expr(name, 'execute("only")') + + " Invoke a remote-expr. On MS-Windows, the returned value has a carriage + " return. + let l = system(cmd .. ' --remote-expr "2 + 2"') + call assert_equal(['4'], split(l, "\n")) + + " Edit multiple files using --remote + call system(cmd .. ' --remote Xfile1 Xfile2 Xfile3') + call assert_equal("Xfile1\nXfile2\nXfile3\n", remote_expr(name, 'argv()')) + eval name->remote_send(":%bw!\<CR>") + + " Edit files in separate tab pages + call system(cmd .. ' --remote-tab Xfile1 Xfile2 Xfile3') + call assert_equal('3', remote_expr(name, 'tabpagenr("$")')) + call assert_equal('Xfile2', remote_expr(name, 'bufname(tabpagebuflist(2)[0])')) + eval name->remote_send(":%bw!\<CR>") + + " Edit a file using --remote-wait + eval name->remote_send(":source $VIMRUNTIME/plugin/rrhelper.vim\<CR>") + call system(cmd .. ' --remote-wait +enew Xfile1') + call assert_equal("Xfile1", remote_expr(name, 'bufname("#")')) + eval name->remote_send(":%bw!\<CR>") + + " Edit files using --remote-tab-wait + call system(cmd .. ' --remote-tabwait +tabonly\|enew Xfile1 Xfile2') + call assert_equal('1', remote_expr(name, 'tabpagenr("$")')) + eval name->remote_send(":%bw!\<CR>") + + " Error cases + if v:lang == "C" || v:lang =~ '^[Ee]n' + let l = split(system(cmd .. ' --remote +pwd'), "\n") + call assert_equal("Argument missing after: \"+pwd\"", l[1]) + endif + let l = system(cmd .. ' --remote-expr "abcd"') + call assert_match('^E449: ', l) + endif + + eval name->remote_send(":%bw!\<CR>") eval name->remote_send(":qa!\<CR>") try call WaitForAssert({-> assert_equal("dead", job_status(job))}) @@ -102,8 +159,8 @@ func Test_client_server() endif endtry - call assert_fails("let x=remote_peek([])", 'E730:') - call assert_fails("let x=remote_read('vim10')", 'E277:') + call assert_fails("let x = remote_peek([])", 'E730:') + call assert_fails("let x = remote_read('vim10')", 'E277:') endfunc " Uncomment this line to get a debugging log |