xref: /vim-8.2.3635/src/testdir/test_balloon.vim (revision 6d91bcb4)
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