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