aboutsummaryrefslogtreecommitdiff
path: root/test/functional/autocmd/winscrolled_spec.lua
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2020-11-07 15:13:20 +0100
committerGitHub <noreply@github.com>2020-11-07 15:13:20 +0100
commite5d83a3bf344a4ab0ef539d70004c2b771e1044a (patch)
treec4de9a896700ff8a7131ab430cc108d90fd2774a /test/functional/autocmd/winscrolled_spec.lua
parentda134270d3e9f8a4824b0e0540bf017f7e59b06e (diff)
parent0fce70252d8e5ccf4cb6f141d1c388966f9f3482 (diff)
downloadrneovim-e5d83a3bf344a4ab0ef539d70004c2b771e1044a.tar.gz
rneovim-e5d83a3bf344a4ab0ef539d70004c2b771e1044a.tar.bz2
rneovim-e5d83a3bf344a4ab0ef539d70004c2b771e1044a.zip
Merge pull request #13117 from romgrk/add-scroll-events
Implement scroll autocommand
Diffstat (limited to 'test/functional/autocmd/winscrolled_spec.lua')
-rw-r--r--test/functional/autocmd/winscrolled_spec.lua62
1 files changed, 62 insertions, 0 deletions
diff --git a/test/functional/autocmd/winscrolled_spec.lua b/test/functional/autocmd/winscrolled_spec.lua
new file mode 100644
index 0000000000..1ef5a37479
--- /dev/null
+++ b/test/functional/autocmd/winscrolled_spec.lua
@@ -0,0 +1,62 @@
+local helpers = require('test.functional.helpers')(after_each)
+
+local clear = helpers.clear
+local eq = helpers.eq
+local eval = helpers.eval
+local source = helpers.source
+
+describe('WinScrolled', function()
+ before_each(clear)
+
+ it('is triggered by scrolling vertically', function()
+ source([[
+ set nowrap
+ let width = winwidth(0)
+ let line = '123' . repeat('*', width * 2)
+ let lines = [line, line]
+ call nvim_buf_set_lines(0, 0, -1, v:true, lines)
+
+ let g:scrolled = 0
+ autocmd WinScrolled * let g:scrolled += 1
+ execute "normal! \<C-e>"
+ ]])
+ eq(1, eval('g:scrolled'))
+ end)
+
+ it('is triggered by scrolling horizontally', function()
+ source([[
+ set nowrap
+ let width = winwidth(0)
+ let line = '123' . repeat('*', width * 2)
+ let lines = [line, line]
+ call nvim_buf_set_lines(0, 0, -1, v:true, lines)
+
+ let g:scrolled = 0
+ autocmd WinScrolled * let g:scrolled += 1
+ execute "normal! zl"
+ ]])
+ eq(1, eval('g:scrolled'))
+ end)
+
+ it('is triggered when the window scrolls in insert mode', function()
+ source([[
+ let height = winheight(0)
+ let lines = map(range(height * 2), {_, i -> string(i)})
+ call nvim_buf_set_lines(0, 0, -1, v:true, lines)
+
+ let g:scrolled = 0
+ autocmd WinScrolled * let g:scrolled += 1
+ call feedkeys("LA\<CR><Esc>", "n")
+ ]])
+ eq(2, eval('g:scrolled'))
+ end)
+
+ it('is triggered when the window is resized', function()
+ source([[
+ let g:scrolled = 0
+ autocmd WinScrolled * let g:scrolled += 1
+ wincmd v
+ ]])
+ eq(1, eval('g:scrolled'))
+ end)
+end)