diff src/testdir/test_channel.vim @ 8210:b717dae2f26d v7.4.1398

commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Feb 23 13:20:22 2016 +0100 patch 7.4.1398 Problem: The close-cb option is not implemented yet. Solution: Implemente close-cb. (Yasuhiro Matsumoto)
author Christian Brabandt <cb@256bit.org>
date Tue, 23 Feb 2016 13:30:07 +0100
parents f2286ff0c102
children 4f0677020a43
line wrap: on
line diff
--- a/src/testdir/test_channel.vim
+++ b/src/testdir/test_channel.vim
@@ -471,9 +471,9 @@ endfunc
 
 """""""""
 
-let s:job_ret = 'not yet'
+let s:job_exit_ret = 'not yet'
 function MyExitCb(job, status)
-  let s:job_ret = 'done'
+  let s:job_exit_ret = 'done'
 endfunc
 
 function s:test_exit_callback(port)
@@ -490,6 +490,32 @@ func Test_exit_callback()
 
     " calling job_status() triggers the callback
     call job_status(s:exit_job)
-    call assert_equal('done', s:job_ret)
+    call assert_equal('done', s:job_exit_ret)
   endif
 endfunc
+
+"""""""""
+
+let s:ch_close_ret = 'alive'
+function MyCloseCb(ch)
+  let s:ch_close_ret = 'closed'
+endfunc
+
+function s:test_close_callback(port)
+  let handle = ch_open('localhost:' . a:port, s:chopt)
+  if ch_status(handle) == "fail"
+    call assert_false(1, "Can't open channel")
+    return
+  endif
+  call ch_setoptions(handle, {'close-cb': 'MyCloseCb'})
+
+  call assert_equal('', ch_sendexpr(handle, 'close me'))
+  sleep 20m
+  call assert_equal('closed', s:ch_close_ret)
+endfunc
+
+func Test_close_callback()
+  call ch_log('Test_close_callback()')
+  call s:run_server('s:test_close_callback')
+endfunc
+