mirror of
https://github.com/neovim/neovim.git
synced 2024-12-29 14:41:06 -07:00
9f534f338a
The ':tcd' command is the first tab-specific command written to the file and it is wrapped inside an 'if has('nvim')' block to keep the session file compatible with Vim. Closes #6678
50 lines
1.3 KiB
Lua
50 lines
1.3 KiB
Lua
local lfs = require('lfs')
|
|
local helpers = require('test.functional.helpers')(after_each)
|
|
|
|
local clear = helpers.clear
|
|
local command = helpers.command
|
|
local get_pathsep = helpers.get_pathsep
|
|
local eq = helpers.eq
|
|
local funcs = helpers.funcs
|
|
|
|
local file_prefix = 'Xtest-functional-ex_cmds-mksession_spec'
|
|
|
|
describe(':mksession', function()
|
|
local session_file = file_prefix .. '.vim'
|
|
local tab_dir = file_prefix .. '.d'
|
|
|
|
before_each(function()
|
|
clear()
|
|
lfs.mkdir(tab_dir)
|
|
end)
|
|
|
|
after_each(function()
|
|
os.remove(session_file)
|
|
lfs.rmdir(tab_dir)
|
|
end)
|
|
|
|
it('restores tab-local working directories', function()
|
|
local tmpfile_base = file_prefix .. '-tmpfile'
|
|
local cwd_dir = funcs.getcwd()
|
|
|
|
-- :mksession does not save empty tabs, so create some buffers.
|
|
command('edit ' .. tmpfile_base .. '1')
|
|
command('tabnew')
|
|
command('edit ' .. tmpfile_base .. '2')
|
|
command('tcd ' .. tab_dir)
|
|
command('tabfirst')
|
|
command('mksession ' .. session_file)
|
|
|
|
-- Create a new test instance of Nvim.
|
|
clear()
|
|
|
|
command('source ' .. session_file)
|
|
-- First tab should have the original working directory.
|
|
command('tabnext 1')
|
|
eq(cwd_dir, funcs.getcwd())
|
|
-- Second tab should have the tab-local working directory.
|
|
command('tabnext 2')
|
|
eq(cwd_dir .. get_pathsep() .. tab_dir, funcs.getcwd())
|
|
end)
|
|
end)
|