aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/testdir
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-12-17 21:53:14 -0500
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-12-29 22:31:20 -0500
commitca2551bc9b6a0c65b6fa83406fcfdc80d465759c (patch)
treeda34b9daca3146aa1f7394b5dbee64099e3fd3cf /src/nvim/testdir
parentc762f5220b02036e4eb9097a1d2a9fded6375fa0 (diff)
downloadrneovim-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.vim47
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()