blob: 706c379e7ce780d58a886797a590b4618690a324 [file] [log] [blame]
Tests for find completion.
STARTTEST
:" Do all test in a separate window to avoid E211 when we recursively
:" delete the Xfind directory during cleanup
:"
:" This will cause a few errors, do it silently.
:set visualbell
:"
:function! DeleteDirectory(dir)
: if has("win16") || has("win32") || has("win64")
: exec "silent !rmdir /Q /S " . a:dir
: else
: exec "silent !rm -rf " . a:dir
: endif
:endfun
:" On windows a stale "Xfind" directory may exist, remove it so that
:" we start from a clean state.
:call DeleteDirectory("Xfind")
:set nocp
:new
:let cwd=getcwd()
:!mkdir Xfind
:cd Xfind
:set path=
:find
:w! ../test.out
:close
:new
:set path=.
:find
:w >>../test.out
:close
:new
:set path=.,,
:find
:w >>../test.out
:close
:new
:set path=./**
:find
:w >>../test.out
:close
:new
:" We shouldn't find any file at this point, ../test.out must be empty.
:!mkdir in
:cd in
:!mkdir path
:exec "cd " . cwd
:e Xfind/file.txt
SHoly Grail:w
:e Xfind/in/file.txt
SJimmy Hoffa:w
:e Xfind/in/stuff.txt
SAnother Holy Grail:w
:e Xfind/in/path/file.txt
SE.T.:w
:set path=Xfind/**
:find file
:w >> test.out
:find file
:w >>test.out
:find file
:w >>test.out
:" Rerun the previous three find completions, using fullpath in 'path'
:exec "set path=" . cwd . "/Xfind/**"
:find file
:w >> test.out
:find file
:w >>test.out
:find file
:w >>test.out
:" Same steps again, using relative and fullpath items that point to the same
:" recursive location.
:" This is to test that there are no duplicates in the completion list.
:exec "set path+=Xfind/**"
:find file
:w >> test.out
:find file
:w >>test.out
:find file
:w >>test.out
:find file
:" Test find completion for directory of current buffer, which at this point
:" is Xfind/in/file.txt.
:set path=.
:find st
:w >> test.out
:" Test find completion for empty path item ",," which is the current directory
:cd Xfind
:set path=,,
:find f
:w >> ../test.out
:cd ..
:q
:call DeleteDirectory("Xfind")
:qa!
ENDTEST