diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/legacy/window_cmd_spec.lua | 55 | ||||
-rw-r--r-- | test/old/testdir/test_window_cmd.vim | 27 |
2 files changed, 82 insertions, 0 deletions
diff --git a/test/functional/legacy/window_cmd_spec.lua b/test/functional/legacy/window_cmd_spec.lua index 373a9c7163..979b46ae47 100644 --- a/test/functional/legacy/window_cmd_spec.lua +++ b/test/functional/legacy/window_cmd_spec.lua @@ -43,6 +43,61 @@ describe('splitkeep', function() screen:attach() end) + -- oldtest: Test_splitkeep_cursor() + it('does not adjust cursor in window that did not change size', function() + screen:try_resize(75, 8) + -- FIXME: bottom window is different without the "vsplit | close" + exec([[ + vsplit | close + set scrolloff=5 + set splitkeep=screen + autocmd CursorMoved * wincmd p | wincmd p + call setline(1, range(1, 200)) + func CursorEqualize() + call cursor(100, 1) + wincmd = + endfunc + wincmd s + call CursorEqualize() + ]]) + + screen:expect([[ + 99 | + ^100 | + 101 | + [No Name] [+] | + 5 | + 6 | + [No Name] [+] | + | + ]]) + + feed('j') + screen:expect([[ + 100 | + ^101 | + 102 | + [No Name] [+] | + 5 | + 6 | + [No Name] [+] | + | + ]]) + + command('set scrolloff=0') + feed('G') + screen:expect([[ + 198 | + 199 | + ^200 | + [No Name] [+] | + 5 | + 6 | + [No Name] [+] | + | + ]]) + end) + -- oldtest: Test_splitkeep_callback() it('does not scroll when split in callback', function() exec([[ diff --git a/test/old/testdir/test_window_cmd.vim b/test/old/testdir/test_window_cmd.vim index 7d4932a2b5..bd4cb44b2b 100644 --- a/test/old/testdir/test_window_cmd.vim +++ b/test/old/testdir/test_window_cmd.vim @@ -1805,6 +1805,33 @@ func Test_splitkeep_misc() set splitkeep& endfunc +func Test_splitkeep_cursor() + CheckScreendump + let lines =<< trim END + set splitkeep=screen + autocmd CursorMoved * wincmd p | wincmd p + call setline(1, range(1, 200)) + func CursorEqualize() + call cursor(100, 1) + wincmd = + endfunc + wincmd s + call CursorEqualize() + END + call writefile(lines, 'XTestSplitkeepCallback', 'D') + let buf = RunVimInTerminal('-S XTestSplitkeepCallback', #{rows: 8}) + + call VerifyScreenDump(buf, 'Test_splitkeep_cursor_1', {}) + + call term_sendkeys(buf, "j") + call VerifyScreenDump(buf, 'Test_splitkeep_cursor_2', {}) + + call term_sendkeys(buf, ":set scrolloff=0\<CR>G") + call VerifyScreenDump(buf, 'Test_splitkeep_cursor_3', {}) + + call StopVimInTerminal(buf) +endfunc + func Test_splitkeep_callback() CheckScreendump let lines =<< trim END |