summaryrefslogtreecommitdiffstats
path: root/src/testdir/test_balloon.vim
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 13:18:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 13:18:03 +0000
commitafce081b90c1e2c50c3507758c7558a0dfa1f33e (patch)
tree3fb840f0bd9de41b463443ddf17131a0ad77f226 /src/testdir/test_balloon.vim
parentInitial commit. (diff)
downloadvim-afce081b90c1e2c50c3507758c7558a0dfa1f33e.tar.xz
vim-afce081b90c1e2c50c3507758c7558a0dfa1f33e.zip
Adding upstream version 2:8.2.2434.upstream/2%8.2.2434upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/testdir/test_balloon.vim')
-rw-r--r--src/testdir/test_balloon.vim68
1 files changed, 68 insertions, 0 deletions
diff --git a/src/testdir/test_balloon.vim b/src/testdir/test_balloon.vim
new file mode 100644
index 0000000..319e546
--- /dev/null
+++ b/src/testdir/test_balloon.vim
@@ -0,0 +1,68 @@
+" Tests for 'balloonevalterm'.
+" A few tests only work in the terminal.
+
+source check.vim
+CheckNotGui
+CheckFeature balloon_eval_term
+
+source screendump.vim
+CheckScreendump
+
+let s:common_script =<< trim [CODE]
+ call setline(1, ["one one one", "two tXo two", "three three three"])
+ set balloonevalterm balloonexpr=MyBalloonExpr() balloondelay=100
+ func MyBalloonExpr()
+ return "line " .. v:beval_lnum .. " column " .. v:beval_col .. ":\n" .. v:beval_text
+ endfun
+ redraw
+[CODE]
+
+func Test_balloon_eval_term()
+ " Use <Ignore> after <MouseMove> to return from vgetc() without removing
+ " the balloon.
+ let xtra_lines =<< trim [CODE]
+ set updatetime=300
+ au CursorHold * echo 'hold fired'
+ func Trigger()
+ call test_setmouse(2, 6)
+ call feedkeys("\<MouseMove>\<Ignore>", "xt")
+ endfunc
+ [CODE]
+ call writefile(s:common_script + xtra_lines, 'XTest_beval')
+
+ " Check that the balloon shows up after a mouse move
+ let buf = RunVimInTerminal('-S XTest_beval', {'rows': 10, 'cols': 50})
+ call TermWait(buf, 50)
+ call term_sendkeys(buf, 'll')
+ call term_sendkeys(buf, ":call Trigger()\<CR>")
+ call VerifyScreenDump(buf, 'Test_balloon_eval_term_01', {})
+
+ " Make sure the balloon still shows after 'updatetime' passed and CursorHold
+ " was triggered.
+ call TermWait(buf, 150)
+ call VerifyScreenDump(buf, 'Test_balloon_eval_term_01a', {})
+
+ " clean up
+ call StopVimInTerminal(buf)
+ call delete('XTest_beval')
+endfunc
+
+func Test_balloon_eval_term_visual()
+ " Use <Ignore> after <MouseMove> to return from vgetc() without removing
+ " the balloon.
+ call writefile(s:common_script + [
+ \ 'call test_setmouse(3, 6)',
+ \ 'call feedkeys("3Gevfr\<MouseMove>\<Ignore>", "xt")',
+ \ ], 'XTest_beval_visual')
+
+ " Check that the balloon shows up after a mouse move
+ let buf = RunVimInTerminal('-S XTest_beval_visual', {'rows': 10, 'cols': 50})
+ call TermWait(buf, 50)
+ call VerifyScreenDump(buf, 'Test_balloon_eval_term_02', {})
+
+ " clean up
+ call StopVimInTerminal(buf)
+ call delete('XTest_beval_visual')
+endfunc
+
+" vim: shiftwidth=2 sts=2 expandtab