xref: /vim-8.2.3635/src/testdir/test_winbar.vim (revision 49c51b82)
11b9645deSBram Moolenaar" Test WinBar
21b9645deSBram Moolenaar
3b46fecd3SBram Moolenaarsource check.vim
4b46fecd3SBram MoolenaarCheckFeature menu
51b9645deSBram Moolenaar
68caef443SBram Moolenaarsource shared.vim
7ae0f151dSBram Moolenaarsource screendump.vim
88caef443SBram Moolenaar
91b9645deSBram Moolenaarfunc Test_add_remove_menu()
101b9645deSBram Moolenaar  new
111b9645deSBram Moolenaar  amenu 1.10 WinBar.Next :let g:did_next = 11<CR>
121b9645deSBram Moolenaar  amenu 1.20 WinBar.Cont :let g:did_cont = 12<CR>
138caef443SBram Moolenaar  redraw
148caef443SBram Moolenaar  call assert_match('Next    Cont', Screenline(1))
158caef443SBram Moolenaar
161b9645deSBram Moolenaar  emenu WinBar.Next
171b9645deSBram Moolenaar  call assert_equal(11, g:did_next)
181b9645deSBram Moolenaar  emenu WinBar.Cont
191b9645deSBram Moolenaar  call assert_equal(12, g:did_cont)
201b9645deSBram Moolenaar
211b9645deSBram Moolenaar  wincmd w
22e2e4075fSBram Moolenaar  call assert_fails('emenu WinBar.Next', 'E334:')
231b9645deSBram Moolenaar  wincmd p
241b9645deSBram Moolenaar
251b9645deSBram Moolenaar  aunmenu WinBar.Next
261b9645deSBram Moolenaar  aunmenu WinBar.Cont
271b9645deSBram Moolenaar  close
281b9645deSBram Moolenaarendfunc
2966f83111SBram Moolenaar
30711f02daSBram Moolenaar" Create a WinBar with three buttons.
31711f02daSBram Moolenaar" Columns of the button edges:
32711f02daSBram Moolenaar" _Next_  _Cont_  _Close_
33711f02daSBram Moolenaar" 2    7  10  15  18   24
34711f02daSBram Moolenaarfunc SetupWinbar()
3566f83111SBram Moolenaar  amenu 1.10 WinBar.Next :let g:did_next = 11<CR>
3666f83111SBram Moolenaar  amenu 1.20 WinBar.Cont :let g:did_cont = 12<CR>
3766f83111SBram Moolenaar  amenu 1.30 WinBar.Close :close<CR>
3866f83111SBram Moolenaar  redraw
398caef443SBram Moolenaar  call assert_match('Next    Cont    Close', Screenline(1))
40711f02daSBram Moolenaarendfunc
4166f83111SBram Moolenaar
42711f02daSBram Moolenaarfunc Test_click_in_winbar()
43711f02daSBram Moolenaar  new
44711f02daSBram Moolenaar  call SetupWinbar()
4566f83111SBram Moolenaar  let save_mouse = &mouse
4666f83111SBram Moolenaar  set mouse=a
4766f83111SBram Moolenaar
4866f83111SBram Moolenaar  let g:did_next = 0
4966f83111SBram Moolenaar  let g:did_cont = 0
5066f83111SBram Moolenaar  for col in [1, 8, 9, 16, 17, 25, 26]
518caef443SBram Moolenaar    call test_setmouse(1, col)
5266f83111SBram Moolenaar    call feedkeys("\<LeftMouse>", "xt")
5366f83111SBram Moolenaar    call assert_equal(0, g:did_next, 'col ' .. col)
5466f83111SBram Moolenaar    call assert_equal(0, g:did_cont, 'col ' .. col)
5566f83111SBram Moolenaar  endfor
5666f83111SBram Moolenaar
5766f83111SBram Moolenaar  for col in range(2, 7)
5866f83111SBram Moolenaar    let g:did_next = 0
5966f83111SBram Moolenaar    call test_setmouse(1, col)
6066f83111SBram Moolenaar    call feedkeys("\<LeftMouse>", "xt")
6166f83111SBram Moolenaar    call assert_equal(11, g:did_next, 'col ' .. col)
6266f83111SBram Moolenaar  endfor
6366f83111SBram Moolenaar
6466f83111SBram Moolenaar  for col in range(10, 15)
6566f83111SBram Moolenaar    let g:did_cont = 0
6666f83111SBram Moolenaar    call test_setmouse(1, col)
6766f83111SBram Moolenaar    call feedkeys("\<LeftMouse>", "xt")
6866f83111SBram Moolenaar    call assert_equal(12, g:did_cont, 'col ' .. col)
6966f83111SBram Moolenaar  endfor
7066f83111SBram Moolenaar
7166f83111SBram Moolenaar  let wincount = winnr('$')
7266f83111SBram Moolenaar  call test_setmouse(1, 20)
7366f83111SBram Moolenaar  call feedkeys("\<LeftMouse>", "xt")
7466f83111SBram Moolenaar  call assert_equal(wincount - 1, winnr('$'))
7566f83111SBram Moolenaar
7666f83111SBram Moolenaar  let &mouse = save_mouse
7766f83111SBram Moolenaarendfunc
78711f02daSBram Moolenaar
79711f02daSBram Moolenaarfunc Test_click_in_other_winbar()
80711f02daSBram Moolenaar  new
81711f02daSBram Moolenaar  call SetupWinbar()
82711f02daSBram Moolenaar  let save_mouse = &mouse
83711f02daSBram Moolenaar  set mouse=a
84711f02daSBram Moolenaar  let winid = win_getid()
85711f02daSBram Moolenaar
86711f02daSBram Moolenaar  split
87711f02daSBram Moolenaar  let [row, col] = win_screenpos(winid)
88711f02daSBram Moolenaar
89711f02daSBram Moolenaar  " Click on Next button in other window
90711f02daSBram Moolenaar  let g:did_next = 0
91711f02daSBram Moolenaar  call test_setmouse(row, 5)
92711f02daSBram Moolenaar  call feedkeys("\<LeftMouse>", "xt")
93711f02daSBram Moolenaar  call assert_equal(11, g:did_next)
94711f02daSBram Moolenaar
95711f02daSBram Moolenaar  " Click on Cont button in other window from Visual mode
96711f02daSBram Moolenaar  let g:did_cont = 0
97711f02daSBram Moolenaar  call setline(1, 'select XYZ here')
98711f02daSBram Moolenaar  call test_setmouse(row, 12)
99711f02daSBram Moolenaar  call feedkeys("0fXvfZ\<LeftMouse>x", "xt")
100711f02daSBram Moolenaar  call assert_equal(12, g:did_cont)
101711f02daSBram Moolenaar  call assert_equal('select  here', getline(1))
102711f02daSBram Moolenaar
103711f02daSBram Moolenaar  " Click on Close button in other window
104711f02daSBram Moolenaar  let wincount = winnr('$')
105711f02daSBram Moolenaar  let winid = win_getid()
106711f02daSBram Moolenaar  call test_setmouse(row, 20)
107711f02daSBram Moolenaar  call feedkeys("\<LeftMouse>", "xt")
108711f02daSBram Moolenaar  call assert_equal(wincount - 1, winnr('$'))
109711f02daSBram Moolenaar  call assert_equal(winid, win_getid())
110711f02daSBram Moolenaar
111711f02daSBram Moolenaar  bwipe!
112711f02daSBram Moolenaarendfunc
11398fb65cbSBram Moolenaar
11498fb65cbSBram Moolenaarfunc Test_redraw_after_scroll()
11598fb65cbSBram Moolenaar  new
11698fb65cbSBram Moolenaar  amenu 1.10 WinBar.Next :let g:did_next = 11<CR>
11798fb65cbSBram Moolenaar  redraw
11898fb65cbSBram Moolenaar  call assert_equal("  Next", Screenline(1))
11998fb65cbSBram Moolenaar  echo "some\nmore"
12098fb65cbSBram Moolenaar  redraw
12198fb65cbSBram Moolenaar  call assert_equal("  Next", Screenline(1))
12298fb65cbSBram Moolenaar  bwipe!
12398fb65cbSBram Moolenaarendfunc
12498fb65cbSBram Moolenaar
125ae0f151dSBram Moolenaarfunc Test_winbar_not_visible()
126ae0f151dSBram Moolenaar  CheckScreendump
127ae0f151dSBram Moolenaar
128ae0f151dSBram Moolenaar  let lines =<< trim END
129ae0f151dSBram Moolenaar      split
130ae0f151dSBram Moolenaar      nnoremenu WinBar.Test :test
131ae0f151dSBram Moolenaar      set winminheight=0
132ae0f151dSBram Moolenaar      wincmd j
133ae0f151dSBram Moolenaar      wincmd _
134ae0f151dSBram Moolenaar  END
135ae0f151dSBram Moolenaar  call writefile(lines, 'XtestWinbarNotVisble')
136ae0f151dSBram Moolenaar  let buf = RunVimInTerminal('-S XtestWinbarNotVisble', #{rows: 10})
137ae0f151dSBram Moolenaar  call VerifyScreenDump(buf, 'Test_winbar_not_visible', {})
138ae0f151dSBram Moolenaar
139ae0f151dSBram Moolenaar  " clean up
140ae0f151dSBram Moolenaar  call StopVimInTerminal(buf)
141ae0f151dSBram Moolenaar  call delete('XtestWinbarNotVisble')
142ae0f151dSBram Moolenaarendfunction
143ae0f151dSBram Moolenaar
144*49c51b82SBram Moolenaarfunc Test_winbar_not_visible_custom_statusline()
145*49c51b82SBram Moolenaar  CheckScreendump
146*49c51b82SBram Moolenaar
147*49c51b82SBram Moolenaar  let lines =<< trim END
148*49c51b82SBram Moolenaar      split
149*49c51b82SBram Moolenaar      nnoremenu WinBar.Test :test
150*49c51b82SBram Moolenaar      set winminheight=0
151*49c51b82SBram Moolenaar      set statusline=abcde
152*49c51b82SBram Moolenaar      wincmd j
153*49c51b82SBram Moolenaar      wincmd _
154*49c51b82SBram Moolenaar  END
155*49c51b82SBram Moolenaar  call writefile(lines, 'XtestWinbarNotVisble')
156*49c51b82SBram Moolenaar  let buf = RunVimInTerminal('-S XtestWinbarNotVisble', #{rows: 10})
157*49c51b82SBram Moolenaar  call VerifyScreenDump(buf, 'Test_winbar_not_visible_custom_statusline', {})
158*49c51b82SBram Moolenaar
159*49c51b82SBram Moolenaar  " clean up
160*49c51b82SBram Moolenaar  call StopVimInTerminal(buf)
161*49c51b82SBram Moolenaar  call delete('XtestWinbarNotVisble')
162*49c51b82SBram Moolenaarendfunction
163*49c51b82SBram Moolenaar
1646d91bcb4SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
165