blob: 187d8d2a2cdc202fb51fab6fa35c34a4bfe643a1 [file] [log] [blame]
Bram Moolenaar14735512016-03-26 21:00:08 +01001" Tests for autocommands
2
3func Test_vim_did_enter()
4 call assert_false(v:vim_did_enter)
5
6 " This script will never reach the main loop, can't check if v:vim_did_enter
7 " becomes one.
8endfunc
Bram Moolenaar40b1b542016-04-20 20:18:23 +02009
Bram Moolenaarc67e8922016-05-24 16:07:40 +020010if has('timers')
11 func ExitInsertMode(id)
12 call feedkeys("\<Esc>")
13 endfunc
14
15 func Test_cursorhold_insert()
16 let g:triggered = 0
17 au CursorHoldI * let g:triggered += 1
18 set updatetime=20
19 call timer_start(100, 'ExitInsertMode')
20 call feedkeys('a', 'x!')
21 call assert_equal(1, g:triggered)
22 endfunc
23
24 func Test_cursorhold_insert_ctrl_x()
25 let g:triggered = 0
26 au CursorHoldI * let g:triggered += 1
27 set updatetime=20
28 call timer_start(100, 'ExitInsertMode')
29 " CursorHoldI does not trigger after CTRL-X
30 call feedkeys("a\<C-X>", 'x!')
31 call assert_equal(0, g:triggered)
32 endfunc
Bram Moolenaar40b1b542016-04-20 20:18:23 +020033endif
34
Bram Moolenaarc67e8922016-05-24 16:07:40 +020035function Test_bufunload()
36 augroup test_bufunload_group
37 autocmd!
38 autocmd BufUnload * call add(s:li, "bufunload")
39 autocmd BufDelete * call add(s:li, "bufdelete")
40 autocmd BufWipeout * call add(s:li, "bufwipeout")
41 augroup END
Bram Moolenaar40b1b542016-04-20 20:18:23 +020042
Bram Moolenaarc67e8922016-05-24 16:07:40 +020043 let s:li=[]
44 new
45 setlocal bufhidden=
46 bunload
47 call assert_equal(["bufunload", "bufdelete"], s:li)
Bram Moolenaar40b1b542016-04-20 20:18:23 +020048
Bram Moolenaarc67e8922016-05-24 16:07:40 +020049 let s:li=[]
50 new
51 setlocal bufhidden=delete
52 bunload
53 call assert_equal(["bufunload", "bufdelete"], s:li)
54
55 let s:li=[]
56 new
57 setlocal bufhidden=unload
58 bwipeout
59 call assert_equal(["bufunload", "bufdelete", "bufwipeout"], s:li)
60
61 augroup! test_bufunload_group
Bram Moolenaar40b1b542016-04-20 20:18:23 +020062endfunc
Bram Moolenaar30445cb2016-07-09 15:21:02 +020063
64" SEGV occurs in older versions. (At least 7.4.2005 or older)
65function Test_autocmd_bufunload_with_tabnext()
66 tabedit
67 tabfirst
68
69 augroup test_autocmd_bufunload_with_tabnext_group
70 autocmd!
71 autocmd BufUnload <buffer> tabnext
72 augroup END
73
74 quit
75 call assert_equal(2, tabpagenr('$'))
76
77 augroup! test_autocmd_bufunload_with_tabnext_group
78 tablast
79 quit
80endfunc