blob: 9316ff63af7a71cc2fdf78ba3a21474f1127a835 [file] [log] [blame]
Bram Moolenaar6315a9a2017-11-25 15:20:02 +01001source view_util.vim
2
3let s:imactivatefunc_called = 0
4let s:imstatusfunc_called = 0
Bram Moolenaara3a12462019-09-07 15:08:38 +02005let s:imstatus_active = 0
Bram Moolenaar6315a9a2017-11-25 15:20:02 +01006
7func IM_activatefunc(active)
8 let s:imactivatefunc_called = 1
Bram Moolenaara3a12462019-09-07 15:08:38 +02009let s:imstatus_active = a:active
Bram Moolenaar6315a9a2017-11-25 15:20:02 +010010endfunc
11
12func IM_statusfunc()
13 let s:imstatusfunc_called = 1
Bram Moolenaara3a12462019-09-07 15:08:38 +020014 return s:imstatus_active
Bram Moolenaar6315a9a2017-11-25 15:20:02 +010015endfunc
16
17func Test_iminsert2()
Bram Moolenaara3a12462019-09-07 15:08:38 +020018 let s:imactivatefunc_called = 0
19 let s:imstatusfunc_called = 0
20
Bram Moolenaar6315a9a2017-11-25 15:20:02 +010021 set imactivatefunc=IM_activatefunc
22 set imstatusfunc=IM_statusfunc
23 set iminsert=2
24 normal! i
25 set iminsert=0
26 set imactivatefunc=
27 set imstatusfunc=
Bram Moolenaar2877d332017-11-26 14:56:16 +010028
29 let expected = has('gui_running') ? 0 : 1
30 call assert_equal(expected, s:imactivatefunc_called)
31 call assert_equal(expected, s:imstatusfunc_called)
Bram Moolenaar6315a9a2017-11-25 15:20:02 +010032endfunc
Bram Moolenaara3a12462019-09-07 15:08:38 +020033
34func Test_imgetstatus()
35 if has('gui_running')
36 if !has('win32')
37 throw 'Skipped: running in the GUI, only works on MS-Windows'
38 endif
39 set imactivatefunc=
40 set imstatusfunc=
41 else
42 set imactivatefunc=IM_activatefunc
43 set imstatusfunc=IM_statusfunc
44 let s:imstatus_active = 0
45 endif
46
47 new
48 set iminsert=2
49 call feedkeys("i\<C-R>=getimstatus()\<CR>\<ESC>", 'nx')
50 call assert_equal('1', getline(1))
51 set iminsert=0
52 call feedkeys("o\<C-R>=getimstatus()\<CR>\<ESC>", 'nx')
53 call assert_equal('0', getline(2))
54 bw!
55
56 set imactivatefunc=
57 set imstatusfunc=
58endfunc