mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	 743860de40
			
		
	
	743860de40
	
	
	
		
			
			test: replace lfs with luv luv already pretty much does everything lfs does, so this duplication of dependencies isn't needed.
		
			
				
	
	
		
			117 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local helpers = require('test.functional.helpers')(after_each)
 | |
| local clear, eq, matches = helpers.clear, helpers.eq, helpers.matches
 | |
| local eval, command, call, meths = helpers.eval, helpers.command, helpers.call, helpers.meths
 | |
| local source, exec_capture = helpers.source, helpers.exec_capture
 | |
| local mkdir = helpers.mkdir
 | |
| 
 | |
| local function expected_empty()
 | |
|   eq({}, meths.get_vvar('errors'))
 | |
| end
 | |
| 
 | |
| describe('autochdir behavior', function()
 | |
|   local dir = 'Xtest_functional_legacy_autochdir'
 | |
| 
 | |
|   before_each(function()
 | |
|     mkdir(dir)
 | |
|     clear()
 | |
|     command('set shellslash')
 | |
|   end)
 | |
| 
 | |
|   after_each(function()
 | |
|     helpers.rmdir(dir)
 | |
|   end)
 | |
| 
 | |
|   -- Tests vim/vim#777 without test_autochdir().
 | |
|   it('sets filename', function()
 | |
|     command('set acd')
 | |
|     command('new')
 | |
|     command('w '..dir..'/Xtest')
 | |
|     eq('Xtest', eval("expand('%')"))
 | |
|     eq(dir, eval([[substitute(getcwd(), '.*/\(\k*\)', '\1', '')]]))
 | |
|   end)
 | |
| 
 | |
|   it(':file in win_execute() does not cause wrong directory', function()
 | |
|     command('cd '..dir)
 | |
|     source([[
 | |
|       func Test_set_filename_other_window()
 | |
|         let cwd = getcwd()
 | |
|         call mkdir('Xa')
 | |
|         call mkdir('Xb')
 | |
|         call mkdir('Xc')
 | |
|         try
 | |
|           args Xa/aaa.txt Xb/bbb.txt
 | |
|           set acd
 | |
|           let winid = win_getid()
 | |
|           snext
 | |
|           call assert_equal('Xb', substitute(getcwd(), '.*/\([^/]*\)$', '\1', ''))
 | |
|           call win_execute(winid, 'file ' .. cwd .. '/Xc/ccc.txt')
 | |
|           call assert_equal('Xb', substitute(getcwd(), '.*/\([^/]*\)$', '\1', ''))
 | |
|         finally
 | |
|           set noacd
 | |
|           call chdir(cwd)
 | |
|           call delete('Xa', 'rf')
 | |
|           call delete('Xb', 'rf')
 | |
|           call delete('Xc', 'rf')
 | |
|           bwipe! aaa.txt
 | |
|           bwipe! bbb.txt
 | |
|           bwipe! ccc.txt
 | |
|         endtry
 | |
|       endfunc
 | |
|     ]])
 | |
|     call('Test_set_filename_other_window')
 | |
|     expected_empty()
 | |
|   end)
 | |
| 
 | |
|   it('win_execute() does not change directory', function()
 | |
|     local subdir = 'Xfile'
 | |
|     command('cd '..dir)
 | |
|     command('set acd')
 | |
|     call('mkdir', subdir)
 | |
|     local winid = eval('win_getid()')
 | |
|     command('new '..subdir..'/file')
 | |
|     matches(dir..'/'..subdir..'$', eval('getcwd()'))
 | |
|     command('cd ..')
 | |
|     matches(dir..'$', eval('getcwd()'))
 | |
|     call('win_execute', winid, 'echo')
 | |
|     matches(dir..'$', eval('getcwd()'))
 | |
|   end)
 | |
| 
 | |
|   it(':verbose pwd shows whether autochdir is used', function()
 | |
|     local subdir = 'Xautodir'
 | |
|     command('cd '..dir)
 | |
|     local cwd = eval('getcwd()')
 | |
|     command('edit global.txt')
 | |
|     matches('%[global%].*'..dir..'$', exec_capture('verbose pwd'))
 | |
|     call('mkdir', subdir)
 | |
|     command('split '..subdir..'/local.txt')
 | |
|     command('lcd '..subdir)
 | |
|     matches('%[window%].*'..dir..'/'..subdir..'$', exec_capture('verbose pwd'))
 | |
|     command('set acd')
 | |
|     command('wincmd w')
 | |
|     matches('%[autochdir%].*'..dir..'$', exec_capture('verbose pwd'))
 | |
|     command('tcd '..cwd)
 | |
|     matches('%[tabpage%].*'..dir..'$', exec_capture('verbose pwd'))
 | |
|     command('cd '..cwd)
 | |
|     matches('%[global%].*'..dir..'$', exec_capture('verbose pwd'))
 | |
|     command('lcd '..cwd)
 | |
|     matches('%[window%].*'..dir..'$', exec_capture('verbose pwd'))
 | |
|     command('edit')
 | |
|     matches('%[autochdir%].*'..dir..'$', exec_capture('verbose pwd'))
 | |
|     command('enew')
 | |
|     command('wincmd w')
 | |
|     matches('%[autochdir%].*'..dir..'/'..subdir..'$', exec_capture('verbose pwd'))
 | |
|     command('wincmd w')
 | |
|     matches('%[window%].*'..dir..'$', exec_capture('verbose pwd'))
 | |
|     command('wincmd w')
 | |
|     matches('%[autochdir%].*'..dir..'/'..subdir..'$', exec_capture('verbose pwd'))
 | |
|     command('set noacd')
 | |
|     matches('%[autochdir%].*'..dir..'/'..subdir..'$', exec_capture('verbose pwd'))
 | |
|     command('wincmd w')
 | |
|     matches('%[window%].*'..dir..'$', exec_capture('verbose pwd'))
 | |
|     command('cd '..cwd)
 | |
|     matches('%[global%].*'..dir..'$', exec_capture('verbose pwd'))
 | |
|     command('wincmd w')
 | |
|     matches('%[window%].*'..dir..'/'..subdir..'$', exec_capture('verbose pwd'))
 | |
|   end)
 | |
| end)
 |