12f10658bSBram Moolenaar" Tests for 'balloonevalterm'. 2b46fecd3SBram Moolenaar" A few tests only work in the terminal. 32f10658bSBram Moolenaar 4b46fecd3SBram Moolenaarsource check.vim 58c5a278fSBram MoolenaarCheckNotGui 6b46fecd3SBram MoolenaarCheckFeature balloon_eval_term 72f10658bSBram Moolenaar 82f10658bSBram Moolenaarsource screendump.vim 98c5a278fSBram MoolenaarCheckScreendump 102f10658bSBram Moolenaar 11e7eb9270SBram Moolenaarlet s:common_script =<< trim [CODE] 12c79745a8SBram Moolenaar call setline(1, ["one one one", "two tXo two", "three three three"]) 13c79745a8SBram Moolenaar set balloonevalterm balloonexpr=MyBalloonExpr() balloondelay=100 14c79745a8SBram Moolenaar func MyBalloonExpr() 15d1c1c823SBram Moolenaar return "line " .. v:beval_lnum .. " column " .. v:beval_col .. ":\n" .. v:beval_text 16c79745a8SBram Moolenaar endfun 17c79745a8SBram Moolenaar redraw 18c79745a8SBram Moolenaar[CODE] 1906bd8248SBram Moolenaar 2006bd8248SBram Moolenaarfunc Test_balloon_eval_term() 2106bd8248SBram Moolenaar " Use <Ignore> after <MouseMove> to return from vgetc() without removing 2206bd8248SBram Moolenaar " the balloon. 23c2f5054bSBram Moolenaar let xtra_lines =<< trim [CODE] 24c2f5054bSBram Moolenaar set updatetime=300 25c2f5054bSBram Moolenaar au CursorHold * echo 'hold fired' 26c2f5054bSBram Moolenaar func Trigger() 27c2f5054bSBram Moolenaar call test_setmouse(2, 6) 28c2f5054bSBram Moolenaar call feedkeys("\<MouseMove>\<Ignore>", "xt") 29c2f5054bSBram Moolenaar endfunc 30c2f5054bSBram Moolenaar [CODE] 31c2f5054bSBram Moolenaar call writefile(s:common_script + xtra_lines, 'XTest_beval') 322f10658bSBram Moolenaar 3306bd8248SBram Moolenaar " Check that the balloon shows up after a mouse move 342f10658bSBram Moolenaar let buf = RunVimInTerminal('-S XTest_beval', {'rows': 10, 'cols': 50}) 356a2c5a7dSBram Moolenaar call TermWait(buf, 50) 36c2f5054bSBram Moolenaar call term_sendkeys(buf, 'll') 37c2f5054bSBram Moolenaar call term_sendkeys(buf, ":call Trigger()\<CR>") 382f10658bSBram Moolenaar call VerifyScreenDump(buf, 'Test_balloon_eval_term_01', {}) 392f10658bSBram Moolenaar 40c2f5054bSBram Moolenaar " Make sure the balloon still shows after 'updatetime' passed and CursorHold 41c2f5054bSBram Moolenaar " was triggered. 426a2c5a7dSBram Moolenaar call TermWait(buf, 150) 43c2f5054bSBram Moolenaar call VerifyScreenDump(buf, 'Test_balloon_eval_term_01a', {}) 44c2f5054bSBram Moolenaar 452f10658bSBram Moolenaar " clean up 462f10658bSBram Moolenaar call StopVimInTerminal(buf) 472f10658bSBram Moolenaar call delete('XTest_beval') 482f10658bSBram Moolenaarendfunc 4906bd8248SBram Moolenaar 5006bd8248SBram Moolenaarfunc Test_balloon_eval_term_visual() 5106bd8248SBram Moolenaar " Use <Ignore> after <MouseMove> to return from vgetc() without removing 5206bd8248SBram Moolenaar " the balloon. 5306bd8248SBram Moolenaar call writefile(s:common_script + [ 5406bd8248SBram Moolenaar \ 'call test_setmouse(3, 6)', 5506bd8248SBram Moolenaar \ 'call feedkeys("3Gevfr\<MouseMove>\<Ignore>", "xt")', 5606bd8248SBram Moolenaar \ ], 'XTest_beval_visual') 5706bd8248SBram Moolenaar 5806bd8248SBram Moolenaar " Check that the balloon shows up after a mouse move 5906bd8248SBram Moolenaar let buf = RunVimInTerminal('-S XTest_beval_visual', {'rows': 10, 'cols': 50}) 606a2c5a7dSBram Moolenaar call TermWait(buf, 50) 6106bd8248SBram Moolenaar call VerifyScreenDump(buf, 'Test_balloon_eval_term_02', {}) 6206bd8248SBram Moolenaar 6306bd8248SBram Moolenaar " clean up 6406bd8248SBram Moolenaar call StopVimInTerminal(buf) 6506bd8248SBram Moolenaar call delete('XTest_beval_visual') 6606bd8248SBram Moolenaarendfunc 67*6d91bcb4SBram Moolenaar 68*6d91bcb4SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab 69