xref: /vim-8.2.3635/src/testdir/test_timers.vim (revision cf2d8dee)
1" Test for timers
2
3if !has('timers')
4  finish
5endif
6
7func MyHandler(timer)
8  let s:val += 1
9endfunc
10
11func Test_oneshot()
12  let s:val = 0
13  let timer = timer_start(50, 'MyHandler')
14  sleep 200m
15  call assert_equal(1, s:val)
16endfunc
17
18func Test_repeat_three()
19  let s:val = 0
20  let timer = timer_start(50, 'MyHandler', {'repeat': 3})
21  sleep 500m
22  call assert_equal(3, s:val)
23endfunc
24
25func Test_repeat_many()
26  let s:val = 0
27  let timer = timer_start(50, 'MyHandler', {'repeat': -1})
28  sleep 200m
29  call timer_stop(timer)
30  call assert_true(s:val > 1)
31  call assert_true(s:val < 5)
32endfunc
33
34func Test_with_partial_callback()
35  let s:val = 0
36  let s:meow = {}
37  function s:meow.bite(...)
38    let s:val += 1
39  endfunction
40
41  call timer_start(50, s:meow.bite)
42  sleep 200m
43  call assert_equal(1, s:val)
44endfunc
45" vim: ts=2 sw=0 et
46