diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2020-12-17 21:53:14 -0500 |
---|---|---|
committer | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2020-12-29 22:31:20 -0500 |
commit | ca2551bc9b6a0c65b6fa83406fcfdc80d465759c (patch) | |
tree | da34b9daca3146aa1f7394b5dbee64099e3fd3cf /src/nvim/testdir | |
parent | c762f5220b02036e4eb9097a1d2a9fded6375fa0 (diff) | |
download | rneovim-ca2551bc9b6a0c65b6fa83406fcfdc80d465759c.tar.gz rneovim-ca2551bc9b6a0c65b6fa83406fcfdc80d465759c.tar.bz2 rneovim-ca2551bc9b6a0c65b6fa83406fcfdc80d465759c.zip |
vim-patch:8.1.0149: session is wrong with multiple tabs when :lcd was used
Problem: The generated sessions file does not restore tabs properly if :lcd
was used in one of them.
Solution: Create the tab pages before setting the directory. (Yee Cheng
Chin, closes vim/vim#3152)
https://github.com/vim/vim/commit/26d4b896a789e65df7ee0cf3e25056eabc523fda
Diffstat (limited to 'src/nvim/testdir')
-rw-r--r-- | src/nvim/testdir/test_mksession.vim | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_mksession.vim b/src/nvim/testdir/test_mksession.vim index 8ef8bbc23a..b5add884f6 100644 --- a/src/nvim/testdir/test_mksession.vim +++ b/src/nvim/testdir/test_mksession.vim @@ -220,6 +220,53 @@ func Test_mksession_one_buffer_two_windows() call delete('Xtest_mks.out') endfunc +func Test_mksession_lcd_multiple_tabs() + tabnew + tabnew + lcd + tabfirst + lcd + mksession! Xtest_mks.out + tabonly + source Xtest_mks.out + call assert_true(haslocaldir(), 'Tab 1 localdir') + tabnext 2 + call assert_true(!haslocaldir(), 'Tab 2 localdir') + tabnext 3 + call assert_true(haslocaldir(), 'Tab 3 localdir') + call delete('Xtest_mks.out') +endfunc + +func Test_mksession_blank_tabs() + tabnew + tabnew + tabnew + tabnext 3 + mksession! Xtest_mks.out + tabnew + tabnew + tabnext 2 + source Xtest_mks.out + call assert_equal(4, tabpagenr('$'), 'session restore should restore number of tabs') + call assert_equal(3, tabpagenr(), 'session restore should restore the active tab') + call delete('Xtest_mks.out') +endfunc + +func Test_mksession_blank_windows() + split + split + split + 3 wincmd w + mksession! Xtest_mks.out + split + split + 2 wincmd w + source Xtest_mks.out + call assert_equal(4, winnr('$'), 'session restore should restore number of windows') + call assert_equal(3, winnr(), 'session restore should restore the active window') + call delete('Xtest_mks.out') +endfunc + if has('extra_search') func Test_mksession_hlsearch() |