mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.0.1302: still too many old style tests
Problem: Still too many old style tests.
Solution: Convert a few more tests to new style. (Yegappan Lakshmanan,
closes vim/vim#2326)
209d3874c1
This commit is contained in:
parent
04993f220a
commit
ef39f854d7
@ -23,7 +23,6 @@ SCRIPTS_DEFAULT = \
|
|||||||
test49.out \
|
test49.out \
|
||||||
test52.out \
|
test52.out \
|
||||||
test64.out \
|
test64.out \
|
||||||
test73.out \
|
|
||||||
|
|
||||||
ifneq ($(OS),Windows_NT)
|
ifneq ($(OS),Windows_NT)
|
||||||
SCRIPTS_DEFAULTS := $(SCRIPTS_DEFAULT) \
|
SCRIPTS_DEFAULTS := $(SCRIPTS_DEFAULT) \
|
||||||
@ -42,17 +41,21 @@ NEW_TESTS ?= \
|
|||||||
test_changedtick.res \
|
test_changedtick.res \
|
||||||
test_charsearch.res \
|
test_charsearch.res \
|
||||||
test_cindent.res \
|
test_cindent.res \
|
||||||
|
test_close_count.res \
|
||||||
test_cmdline.res \
|
test_cmdline.res \
|
||||||
test_command_count.res \
|
test_command_count.res \
|
||||||
test_cscope.res \
|
test_cscope.res \
|
||||||
test_curswant.res \
|
test_curswant.res \
|
||||||
test_digraph.res \
|
test_digraph.res \
|
||||||
test_edit.res \
|
test_edit.res \
|
||||||
|
test_erasebackword.res \
|
||||||
test_exists.res \
|
test_exists.res \
|
||||||
test_diffmode.res \
|
test_diffmode.res \
|
||||||
test_farsi.res \
|
test_farsi.res \
|
||||||
test_file_size.res \
|
test_file_size.res \
|
||||||
test_filter_map.res \
|
test_filter_map.res \
|
||||||
|
test_find_complete.res \
|
||||||
|
test_fixeol.res \
|
||||||
test_findfile.res \
|
test_findfile.res \
|
||||||
test_fnameescape.res \
|
test_fnameescape.res \
|
||||||
test_fold.res \
|
test_fold.res \
|
||||||
@ -73,6 +76,7 @@ NEW_TESTS ?= \
|
|||||||
test_listlbr.res \
|
test_listlbr.res \
|
||||||
test_let.res \
|
test_let.res \
|
||||||
test_lineending.res \
|
test_lineending.res \
|
||||||
|
test_listchars.res \
|
||||||
test_makeencoding.res \
|
test_makeencoding.res \
|
||||||
test_marks.res \
|
test_marks.res \
|
||||||
test_match.res \
|
test_match.res \
|
||||||
|
@ -95,6 +95,10 @@ func RunTheTest(test)
|
|||||||
" buffers.
|
" buffers.
|
||||||
%bwipe!
|
%bwipe!
|
||||||
|
|
||||||
|
" The test may change the current directory. Save and restore the
|
||||||
|
" directory after executing the test.
|
||||||
|
let save_cwd = getcwd()
|
||||||
|
|
||||||
if exists("*SetUp")
|
if exists("*SetUp")
|
||||||
try
|
try
|
||||||
call SetUp()
|
call SetUp()
|
||||||
@ -149,6 +153,8 @@ func RunTheTest(test)
|
|||||||
break
|
break
|
||||||
endif
|
endif
|
||||||
endwhile
|
endwhile
|
||||||
|
|
||||||
|
exe 'cd ' . save_cwd
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func AfterTheTest()
|
func AfterTheTest()
|
||||||
|
@ -1,168 +0,0 @@
|
|||||||
Tests for find completion.
|
|
||||||
|
|
||||||
STARTTEST
|
|
||||||
:set wildmode=full
|
|
||||||
:" 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
|
|
||||||
:"
|
|
||||||
:" On windows a stale "Xfind" directory may exist, remove it so that
|
|
||||||
:" we start from a clean state.
|
|
||||||
:call delete("Xfind", "rf")
|
|
||||||
:new
|
|
||||||
:let cwd=getcwd()
|
|
||||||
:let test_out = cwd . '/test.out'
|
|
||||||
:call mkdir('Xfind')
|
|
||||||
:cd Xfind
|
|
||||||
:set path=
|
|
||||||
:find
|
|
||||||
:exec "w! " . test_out
|
|
||||||
:close
|
|
||||||
:new
|
|
||||||
:set path=.
|
|
||||||
:find
|
|
||||||
:exec "w >>" . test_out
|
|
||||||
:close
|
|
||||||
:new
|
|
||||||
:set path=.,,
|
|
||||||
:find
|
|
||||||
:exec "w >>" . test_out
|
|
||||||
:close
|
|
||||||
:new
|
|
||||||
:set path=./**
|
|
||||||
:find
|
|
||||||
:exec "w >>" . test_out
|
|
||||||
:close
|
|
||||||
:new
|
|
||||||
:" We shouldn't find any file at this point, test.out must be empty.
|
|
||||||
:call mkdir('in')
|
|
||||||
:cd in
|
|
||||||
:call 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
|
|
||||||
:exec "w >>" . test_out
|
|
||||||
:find file
|
|
||||||
:exec "w >>" . test_out
|
|
||||||
:find file
|
|
||||||
:exec "w >>" . test_out
|
|
||||||
:" Rerun the previous three find completions, using fullpath in 'path'
|
|
||||||
:exec "set path=" . cwd . "/Xfind/**"
|
|
||||||
:find file
|
|
||||||
:exec "w >>" . test_out
|
|
||||||
:find file
|
|
||||||
:exec "w >>" . test_out
|
|
||||||
:find file
|
|
||||||
:exec "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
|
|
||||||
:exec "w >>" . test_out
|
|
||||||
:find file
|
|
||||||
:exec "w >>" . test_out
|
|
||||||
:find file
|
|
||||||
:exec "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
|
|
||||||
:exec "w >>" . test_out
|
|
||||||
:" Test find completion for empty path item ",," which is the current directory
|
|
||||||
:cd Xfind
|
|
||||||
:set path=,,
|
|
||||||
:find f
|
|
||||||
:exec "w >>" . test_out
|
|
||||||
:" Test shortening of
|
|
||||||
:"
|
|
||||||
:" foo/x/bar/voyager.txt
|
|
||||||
:" foo/y/bar/voyager.txt
|
|
||||||
:"
|
|
||||||
:" When current directory is above foo/ they should be shortened to (in order
|
|
||||||
:" of appearance):
|
|
||||||
:"
|
|
||||||
:" x/bar/voyager.txt
|
|
||||||
:" y/bar/voyager.txt
|
|
||||||
:call mkdir('foo')
|
|
||||||
:cd foo
|
|
||||||
:call mkdir('x')
|
|
||||||
:call mkdir('y')
|
|
||||||
:cd x
|
|
||||||
:call mkdir('bar')
|
|
||||||
:cd ..
|
|
||||||
:cd y
|
|
||||||
:call mkdir('bar')
|
|
||||||
:cd ..
|
|
||||||
:cd ..
|
|
||||||
:" We should now be in the Xfind directory
|
|
||||||
:e foo/x/bar/voyager.txt
|
|
||||||
SVoyager 1:w
|
|
||||||
:e foo/y/bar/voyager.txt
|
|
||||||
SVoyager 2:w
|
|
||||||
:exec "set path=" . cwd . "/Xfind/**"
|
|
||||||
:find voyager
|
|
||||||
:exec "w >>" . test_out
|
|
||||||
:find voyager
|
|
||||||
:exec "w >>" . test_out
|
|
||||||
:"
|
|
||||||
:" When current directory is .../foo/y/bar they should be shortened to (in
|
|
||||||
:" order of appearance):
|
|
||||||
:"
|
|
||||||
:" ./voyager.txt
|
|
||||||
:" x/bar/voyager.txt
|
|
||||||
:cd foo
|
|
||||||
:cd y
|
|
||||||
:cd bar
|
|
||||||
:find voyager
|
|
||||||
:exec "w >> " . test_out
|
|
||||||
:find voyager
|
|
||||||
:exec "w >> " . test_out
|
|
||||||
:" Check the opposite too:
|
|
||||||
:cd ..
|
|
||||||
:cd ..
|
|
||||||
:cd x
|
|
||||||
:cd bar
|
|
||||||
:find voyager
|
|
||||||
:exec "w >> " . test_out
|
|
||||||
:find voyager
|
|
||||||
:exec "w >> " . test_out
|
|
||||||
:" Check for correct handling of shorten_fname()'s behavior on windows
|
|
||||||
:exec "cd " . cwd . "/Xfind/in"
|
|
||||||
:find file
|
|
||||||
:exec "w >>" . test_out
|
|
||||||
:" Test for relative to current buffer 'path' item
|
|
||||||
:exec "cd " . cwd . "/Xfind/"
|
|
||||||
:set path=./path
|
|
||||||
:" Open the file where Jimmy Hoffa is found
|
|
||||||
:e in/file.txt
|
|
||||||
:" Find the file containing 'E.T.' in the Xfind/in/path directory
|
|
||||||
:find file
|
|
||||||
:exec "w >>" . test_out
|
|
||||||
:"
|
|
||||||
:" Test that completion works when path=.,,
|
|
||||||
:"
|
|
||||||
:set path=.,,
|
|
||||||
:" Open Jimmy Hoffa file
|
|
||||||
:e in/file.txt
|
|
||||||
:exec "w >>" . test_out
|
|
||||||
:" Search for the file containing Holy Grail in same directory as in/path.txt
|
|
||||||
:find stu
|
|
||||||
:exec "w >>" . test_out
|
|
||||||
:q
|
|
||||||
:exec "cd " . cwd
|
|
||||||
:call delete("Xfind", "rf")
|
|
||||||
:qa!
|
|
||||||
ENDTEST
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
|||||||
Holy Grail
|
|
||||||
Jimmy Hoffa
|
|
||||||
E.T.
|
|
||||||
Holy Grail
|
|
||||||
Jimmy Hoffa
|
|
||||||
E.T.
|
|
||||||
Holy Grail
|
|
||||||
Jimmy Hoffa
|
|
||||||
E.T.
|
|
||||||
Another Holy Grail
|
|
||||||
Holy Grail
|
|
||||||
Voyager 1
|
|
||||||
Voyager 2
|
|
||||||
Voyager 2
|
|
||||||
Voyager 1
|
|
||||||
Voyager 1
|
|
||||||
Voyager 2
|
|
||||||
Jimmy Hoffa
|
|
||||||
E.T.
|
|
||||||
Jimmy Hoffa
|
|
||||||
Another Holy Grail
|
|
174
src/nvim/testdir/test_close_count.vim
Normal file
174
src/nvim/testdir/test_close_count.vim
Normal file
@ -0,0 +1,174 @@
|
|||||||
|
|
||||||
|
" Tests for :[count]close! command
|
||||||
|
func Test_close_count()
|
||||||
|
enew! | only
|
||||||
|
|
||||||
|
let wids = [win_getid()]
|
||||||
|
for i in range(5)
|
||||||
|
new
|
||||||
|
call add(wids, win_getid())
|
||||||
|
endfor
|
||||||
|
|
||||||
|
4wincmd w
|
||||||
|
close!
|
||||||
|
let ids = []
|
||||||
|
windo call add(ids, win_getid())
|
||||||
|
call assert_equal([wids[5], wids[4], wids[3], wids[1], wids[0]], ids)
|
||||||
|
|
||||||
|
1close!
|
||||||
|
let ids = []
|
||||||
|
windo call add(ids, win_getid())
|
||||||
|
call assert_equal([wids[4], wids[3], wids[1], wids[0]], ids)
|
||||||
|
|
||||||
|
$close!
|
||||||
|
let ids = []
|
||||||
|
windo call add(ids, win_getid())
|
||||||
|
call assert_equal([wids[4], wids[3], wids[1]], ids)
|
||||||
|
|
||||||
|
1wincmd w
|
||||||
|
2close!
|
||||||
|
let ids = []
|
||||||
|
windo call add(ids, win_getid())
|
||||||
|
call assert_equal([wids[4], wids[1]], ids)
|
||||||
|
|
||||||
|
1wincmd w
|
||||||
|
new
|
||||||
|
call add(wids, win_getid())
|
||||||
|
new
|
||||||
|
call add(wids, win_getid())
|
||||||
|
2wincmd w
|
||||||
|
-1close!
|
||||||
|
let ids = []
|
||||||
|
windo call add(ids, win_getid())
|
||||||
|
call assert_equal([wids[6], wids[4], wids[1]], ids)
|
||||||
|
|
||||||
|
2wincmd w
|
||||||
|
+1close!
|
||||||
|
let ids = []
|
||||||
|
windo call add(ids, win_getid())
|
||||||
|
call assert_equal([wids[6], wids[4]], ids)
|
||||||
|
|
||||||
|
only!
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Tests for :[count]hide command
|
||||||
|
func Test_hide_count()
|
||||||
|
enew! | only
|
||||||
|
|
||||||
|
let wids = [win_getid()]
|
||||||
|
for i in range(5)
|
||||||
|
new
|
||||||
|
call add(wids, win_getid())
|
||||||
|
endfor
|
||||||
|
|
||||||
|
4wincmd w
|
||||||
|
.hide
|
||||||
|
let ids = []
|
||||||
|
windo call add(ids, win_getid())
|
||||||
|
call assert_equal([wids[5], wids[4], wids[3], wids[1], wids[0]], ids)
|
||||||
|
|
||||||
|
1hide
|
||||||
|
let ids = []
|
||||||
|
windo call add(ids, win_getid())
|
||||||
|
call assert_equal([wids[4], wids[3], wids[1], wids[0]], ids)
|
||||||
|
|
||||||
|
$hide
|
||||||
|
let ids = []
|
||||||
|
windo call add(ids, win_getid())
|
||||||
|
call assert_equal([wids[4], wids[3], wids[1]], ids)
|
||||||
|
|
||||||
|
1wincmd w
|
||||||
|
2hide
|
||||||
|
let ids = []
|
||||||
|
windo call add(ids, win_getid())
|
||||||
|
call assert_equal([wids[4], wids[1]], ids)
|
||||||
|
|
||||||
|
1wincmd w
|
||||||
|
new
|
||||||
|
call add(wids, win_getid())
|
||||||
|
new
|
||||||
|
call add(wids, win_getid())
|
||||||
|
3wincmd w
|
||||||
|
-hide
|
||||||
|
let ids = []
|
||||||
|
windo call add(ids, win_getid())
|
||||||
|
call assert_equal([wids[7], wids[4], wids[1]], ids)
|
||||||
|
|
||||||
|
2wincmd w
|
||||||
|
+hide
|
||||||
|
let ids = []
|
||||||
|
windo call add(ids, win_getid())
|
||||||
|
call assert_equal([wids[7], wids[4]], ids)
|
||||||
|
|
||||||
|
only!
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Tests for :[count]close! command with 'hidden'
|
||||||
|
func Test_hidden_close_count()
|
||||||
|
enew! | only
|
||||||
|
|
||||||
|
let wids = [win_getid()]
|
||||||
|
for i in range(5)
|
||||||
|
new
|
||||||
|
call add(wids, win_getid())
|
||||||
|
endfor
|
||||||
|
|
||||||
|
set hidden
|
||||||
|
|
||||||
|
$ hide
|
||||||
|
let ids = []
|
||||||
|
windo call add(ids, win_getid())
|
||||||
|
call assert_equal([wids[5], wids[4], wids[3], wids[2], wids[1]], ids)
|
||||||
|
|
||||||
|
$-1 close!
|
||||||
|
let ids = []
|
||||||
|
windo call add(ids, win_getid())
|
||||||
|
call assert_equal([wids[5], wids[4], wids[3], wids[1]], ids)
|
||||||
|
|
||||||
|
1wincmd w
|
||||||
|
.+close!
|
||||||
|
let ids = []
|
||||||
|
windo call add(ids, win_getid())
|
||||||
|
call assert_equal([wids[5], wids[3], wids[1]], ids)
|
||||||
|
|
||||||
|
set nohidden
|
||||||
|
only!
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Tests for 'CTRL-W c' command to close windows.
|
||||||
|
func Test_winclose_command()
|
||||||
|
enew! | only
|
||||||
|
|
||||||
|
let wids = [win_getid()]
|
||||||
|
for i in range(5)
|
||||||
|
new
|
||||||
|
call add(wids, win_getid())
|
||||||
|
endfor
|
||||||
|
|
||||||
|
set hidden
|
||||||
|
|
||||||
|
4wincmd w
|
||||||
|
exe "normal \<C-W>c"
|
||||||
|
let ids = []
|
||||||
|
windo call add(ids, win_getid())
|
||||||
|
call assert_equal([wids[5], wids[4], wids[3], wids[1], wids[0]], ids)
|
||||||
|
|
||||||
|
exe "normal 1\<C-W>c"
|
||||||
|
let ids = []
|
||||||
|
windo call add(ids, win_getid())
|
||||||
|
call assert_equal([wids[4], wids[3], wids[1], wids[0]], ids)
|
||||||
|
|
||||||
|
exe "normal 9\<C-W>c"
|
||||||
|
let ids = []
|
||||||
|
windo call add(ids, win_getid())
|
||||||
|
call assert_equal([wids[4], wids[3], wids[1]], ids)
|
||||||
|
|
||||||
|
1wincmd w
|
||||||
|
exe "normal 2\<C-W>c"
|
||||||
|
let ids = []
|
||||||
|
windo call add(ids, win_getid())
|
||||||
|
call assert_equal([wids[4], wids[1]], ids)
|
||||||
|
|
||||||
|
set nohidden
|
||||||
|
only!
|
||||||
|
endfunc
|
25
src/nvim/testdir/test_erasebackword.vim
Normal file
25
src/nvim/testdir/test_erasebackword.vim
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
func Test_erasebackword()
|
||||||
|
if !has('multi_byte')
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
set encoding=utf-8
|
||||||
|
enew
|
||||||
|
|
||||||
|
exe "normal o wwwこんにちわ世界ワールドvim \<C-W>"
|
||||||
|
call assert_equal(' wwwこんにちわ世界ワールド', getline('.'))
|
||||||
|
exe "normal o wwwこんにちわ世界ワールドvim \<C-W>\<C-W>"
|
||||||
|
call assert_equal(' wwwこんにちわ世界', getline('.'))
|
||||||
|
exe "normal o wwwこんにちわ世界ワールドvim \<C-W>\<C-W>\<C-W>"
|
||||||
|
call assert_equal(' wwwこんにちわ', getline('.'))
|
||||||
|
exe "normal o wwwこんにちわ世界ワールドvim \<C-W>\<C-W>\<C-W>\<C-W>"
|
||||||
|
call assert_equal(' www', getline('.'))
|
||||||
|
exe "normal o wwwこんにちわ世界ワールドvim \<C-W>\<C-W>\<C-W>\<C-W>\<C-W>"
|
||||||
|
call assert_equal(' ', getline('.'))
|
||||||
|
exe "normal o wwwこんにちわ世界ワールドvim \<C-W>\<C-W>\<C-W>\<C-W>\<C-W>\<C-W>"
|
||||||
|
call assert_equal('', getline('.'))
|
||||||
|
|
||||||
|
enew!
|
||||||
|
set encoding&
|
||||||
|
endfunc
|
157
src/nvim/testdir/test_find_complete.vim
Normal file
157
src/nvim/testdir/test_find_complete.vim
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
" Tests for the 'find' command completion.
|
||||||
|
|
||||||
|
" Do all the tests in a separate window to avoid E211 when we recursively
|
||||||
|
" delete the Xfind directory during cleanup
|
||||||
|
func Test_find_complete()
|
||||||
|
set belloff=all
|
||||||
|
|
||||||
|
" On windows a stale "Xfind" directory may exist, remove it so that
|
||||||
|
" we start from a clean state.
|
||||||
|
call delete("Xfind", "rf")
|
||||||
|
let cwd = getcwd()
|
||||||
|
let test_out = cwd . '/test.out'
|
||||||
|
call mkdir('Xfind')
|
||||||
|
cd Xfind
|
||||||
|
|
||||||
|
new
|
||||||
|
set path=
|
||||||
|
call assert_fails('call feedkeys(":find\t\n", "xt")', 'E345:')
|
||||||
|
close
|
||||||
|
|
||||||
|
new
|
||||||
|
set path=.
|
||||||
|
call assert_fails('call feedkeys(":find\t\n", "xt")', 'E32:')
|
||||||
|
close
|
||||||
|
|
||||||
|
new
|
||||||
|
set path=.,,
|
||||||
|
call assert_fails('call feedkeys(":find\t\n", "xt")', 'E32:')
|
||||||
|
close
|
||||||
|
|
||||||
|
new
|
||||||
|
set path=./**
|
||||||
|
call assert_fails('call feedkeys(":find\t\n", "xt")', 'E32:')
|
||||||
|
close
|
||||||
|
|
||||||
|
" We shouldn't find any file till this point
|
||||||
|
|
||||||
|
call mkdir('in/path', 'p')
|
||||||
|
exe 'cd ' . cwd
|
||||||
|
call writefile(['Holy Grail'], 'Xfind/file.txt')
|
||||||
|
call writefile(['Jimmy Hoffa'], 'Xfind/in/file.txt')
|
||||||
|
call writefile(['Another Holy Grail'], 'Xfind/in/stuff.txt')
|
||||||
|
call writefile(['E.T.'], 'Xfind/in/path/file.txt')
|
||||||
|
|
||||||
|
new
|
||||||
|
set path=Xfind/**
|
||||||
|
call feedkeys(":find file\t\n", "xt")
|
||||||
|
call assert_equal('Holy Grail', getline(1))
|
||||||
|
call feedkeys(":find file\t\t\n", "xt")
|
||||||
|
call assert_equal('Jimmy Hoffa', getline(1))
|
||||||
|
call feedkeys(":find file\t\t\t\n", "xt")
|
||||||
|
call assert_equal('E.T.', getline(1))
|
||||||
|
|
||||||
|
" Rerun the previous three find completions, using fullpath in 'path'
|
||||||
|
exec "set path=" . cwd . "/Xfind/**"
|
||||||
|
|
||||||
|
call feedkeys(":find file\t\n", "xt")
|
||||||
|
call assert_equal('Holy Grail', getline(1))
|
||||||
|
call feedkeys(":find file\t\t\n", "xt")
|
||||||
|
call assert_equal('Jimmy Hoffa', getline(1))
|
||||||
|
call feedkeys(":find file\t\t\t\n", "xt")
|
||||||
|
call assert_equal('E.T.', getline(1))
|
||||||
|
|
||||||
|
" 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.
|
||||||
|
set path+=Xfind/**
|
||||||
|
call feedkeys(":find file\t\n", "xt")
|
||||||
|
call assert_equal('Holy Grail', getline(1))
|
||||||
|
call feedkeys(":find file\t\t\n", "xt")
|
||||||
|
call assert_equal('Jimmy Hoffa', getline(1))
|
||||||
|
call feedkeys(":find file\t\t\t\n", "xt")
|
||||||
|
call assert_equal('E.T.', getline(1))
|
||||||
|
call feedkeys(":find file\t\t\n", "xt")
|
||||||
|
|
||||||
|
" Test find completion for directory of current buffer, which at this point
|
||||||
|
" is Xfind/in/file.txt.
|
||||||
|
set path=.
|
||||||
|
call feedkeys(":find st\t\n", "xt")
|
||||||
|
call assert_equal('Another Holy Grail', getline(1))
|
||||||
|
|
||||||
|
" Test find completion for empty path item ",," which is the current
|
||||||
|
" directory
|
||||||
|
cd Xfind
|
||||||
|
set path=,,
|
||||||
|
call feedkeys(":find f\t\n", "xt")
|
||||||
|
call assert_equal('Holy Grail', getline(1))
|
||||||
|
|
||||||
|
" Test shortening of
|
||||||
|
"
|
||||||
|
" foo/x/bar/voyager.txt
|
||||||
|
" foo/y/bar/voyager.txt
|
||||||
|
"
|
||||||
|
" When current directory is above foo/ they should be shortened to (in order
|
||||||
|
" of appearance):
|
||||||
|
"
|
||||||
|
" x/bar/voyager.txt
|
||||||
|
" y/bar/voyager.txt
|
||||||
|
call mkdir('foo/x/bar', 'p')
|
||||||
|
call mkdir('foo/y/bar', 'p')
|
||||||
|
call writefile(['Voyager 1'], 'foo/x/bar/voyager.txt')
|
||||||
|
call writefile(['Voyager 2'], 'foo/y/bar/voyager.txt')
|
||||||
|
|
||||||
|
exec "set path=" . cwd . "/Xfind/**"
|
||||||
|
call feedkeys(":find voyager\t\n", "xt")
|
||||||
|
call assert_equal('Voyager 1', getline(1))
|
||||||
|
call feedkeys(":find voyager\t\t\n", "xt")
|
||||||
|
call assert_equal('Voyager 2', getline(1))
|
||||||
|
|
||||||
|
"
|
||||||
|
" When current directory is .../foo/y/bar they should be shortened to (in
|
||||||
|
" order of appearance):
|
||||||
|
"
|
||||||
|
" ./voyager.txt
|
||||||
|
" x/bar/voyager.txt
|
||||||
|
cd foo/y/bar
|
||||||
|
call feedkeys(":find voyager\t\n", "xt")
|
||||||
|
call assert_equal('Voyager 2', getline(1))
|
||||||
|
call feedkeys(":find voyager\t\t\n", "xt")
|
||||||
|
call assert_equal('Voyager 1', getline(1))
|
||||||
|
|
||||||
|
" Check the opposite too:
|
||||||
|
cd ../../x/bar
|
||||||
|
call feedkeys(":find voyager\t\n", "xt")
|
||||||
|
call assert_equal('Voyager 1', getline(1))
|
||||||
|
call feedkeys(":find voyager\t\t\n", "xt")
|
||||||
|
call assert_equal('Voyager 2', getline(1))
|
||||||
|
|
||||||
|
" Check for correct handling of shorten_fname()'s behavior on windows
|
||||||
|
exec "cd " . cwd . "/Xfind/in"
|
||||||
|
call feedkeys(":find file\t\n", "xt")
|
||||||
|
call assert_equal('Jimmy Hoffa', getline(1))
|
||||||
|
|
||||||
|
" Test for relative to current buffer 'path' item
|
||||||
|
exec "cd " . cwd . "/Xfind/"
|
||||||
|
set path=./path
|
||||||
|
" Open the file where Jimmy Hoffa is found
|
||||||
|
e in/file.txt
|
||||||
|
" Find the file containing 'E.T.' in the Xfind/in/path directory
|
||||||
|
call feedkeys(":find file\t\n", "xt")
|
||||||
|
call assert_equal('E.T.', getline(1))
|
||||||
|
|
||||||
|
" Test that completion works when path=.,,
|
||||||
|
set path=.,,
|
||||||
|
" Open Jimmy Hoffa file
|
||||||
|
e in/file.txt
|
||||||
|
call assert_equal('Jimmy Hoffa', getline(1))
|
||||||
|
|
||||||
|
" Search for the file containing Holy Grail in same directory as in/path.txt
|
||||||
|
call feedkeys(":find stu\t\n", "xt")
|
||||||
|
call assert_equal('Another Holy Grail', getline(1))
|
||||||
|
|
||||||
|
enew | only
|
||||||
|
exe 'cd ' . cwd
|
||||||
|
call delete('Xfind', 'rf')
|
||||||
|
set path&
|
||||||
|
endfunc
|
48
src/nvim/testdir/test_fixeol.vim
Normal file
48
src/nvim/testdir/test_fixeol.vim
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
" Tests for 'fixeol' and 'eol'
|
||||||
|
func Test_fixeol()
|
||||||
|
" first write two test files – with and without trailing EOL
|
||||||
|
" use Unix fileformat for consistency
|
||||||
|
set ff=unix
|
||||||
|
enew!
|
||||||
|
call setline('.', 'with eol')
|
||||||
|
w! XXEol
|
||||||
|
enew!
|
||||||
|
set noeol nofixeol
|
||||||
|
call setline('.', 'without eol')
|
||||||
|
w! XXNoEol
|
||||||
|
set eol fixeol
|
||||||
|
bwipe XXEol XXNoEol
|
||||||
|
|
||||||
|
" try editing files with 'fixeol' disabled
|
||||||
|
e! XXEol
|
||||||
|
normal ostays eol
|
||||||
|
set nofixeol
|
||||||
|
w! XXTestEol
|
||||||
|
e! XXNoEol
|
||||||
|
normal ostays without
|
||||||
|
set nofixeol
|
||||||
|
w! XXTestNoEol
|
||||||
|
bwipe! XXEol XXNoEol XXTestEol XXTestNoEol
|
||||||
|
set fixeol
|
||||||
|
|
||||||
|
" Append "END" to each file so that we can see what the last written char
|
||||||
|
" was.
|
||||||
|
normal ggdGaEND
|
||||||
|
w >>XXEol
|
||||||
|
w >>XXNoEol
|
||||||
|
w >>XXTestEol
|
||||||
|
w >>XXTestNoEol
|
||||||
|
|
||||||
|
call assert_equal(['with eol', 'END'], readfile('XXEol'))
|
||||||
|
call assert_equal(['without eolEND'], readfile('XXNoEol'))
|
||||||
|
call assert_equal(['with eol', 'stays eol', 'END'], readfile('XXTestEol'))
|
||||||
|
call assert_equal(['without eol', 'stays withoutEND'],
|
||||||
|
\ readfile('XXTestNoEol'))
|
||||||
|
|
||||||
|
call delete('XXEol')
|
||||||
|
call delete('XXNoEol')
|
||||||
|
call delete('XXTestEol')
|
||||||
|
call delete('XXTestNoEol')
|
||||||
|
set ff& fixeol& eol&
|
||||||
|
enew!
|
||||||
|
endfunc
|
63
src/nvim/testdir/test_listchars.vim
Normal file
63
src/nvim/testdir/test_listchars.vim
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
" Tests for 'listchars' display with 'list' and :list
|
||||||
|
|
||||||
|
source view_util.vim
|
||||||
|
|
||||||
|
func Test_listchars()
|
||||||
|
enew!
|
||||||
|
set ff=unix
|
||||||
|
set list
|
||||||
|
|
||||||
|
set listchars+=tab:>-,space:.,trail:<
|
||||||
|
call append(0, [
|
||||||
|
\ ' aa ',
|
||||||
|
\ ' bb ',
|
||||||
|
\ ' cccc ',
|
||||||
|
\ 'dd ee ',
|
||||||
|
\ ' '
|
||||||
|
\ ])
|
||||||
|
let expected = [
|
||||||
|
\ '>-------aa>-----$',
|
||||||
|
\ '..bb>---<<$',
|
||||||
|
\ '...cccc><$',
|
||||||
|
\ 'dd........ee<<>-$',
|
||||||
|
\ '<$'
|
||||||
|
\ ]
|
||||||
|
redraw!
|
||||||
|
for i in range(1, 5)
|
||||||
|
call cursor(i, 1)
|
||||||
|
call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
|
||||||
|
endfor
|
||||||
|
|
||||||
|
set listchars-=trail:<
|
||||||
|
let expected = [
|
||||||
|
\ '>-------aa>-----$',
|
||||||
|
\ '..bb>---..$',
|
||||||
|
\ '...cccc>.$',
|
||||||
|
\ 'dd........ee..>-$',
|
||||||
|
\ '.$'
|
||||||
|
\ ]
|
||||||
|
redraw!
|
||||||
|
for i in range(1, 5)
|
||||||
|
call cursor(i, 1)
|
||||||
|
call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
|
||||||
|
endfor
|
||||||
|
|
||||||
|
set listchars+=trail:<
|
||||||
|
set nolist
|
||||||
|
normal ggdG
|
||||||
|
call append(0, [
|
||||||
|
\ ' fff ',
|
||||||
|
\ ' gg ',
|
||||||
|
\ ' h ',
|
||||||
|
\ 'iii ',
|
||||||
|
\ ])
|
||||||
|
let l = split(execute("%list"), "\n")
|
||||||
|
call assert_equal([
|
||||||
|
\ '..fff>--<<$',
|
||||||
|
\ '>-------gg>-----$',
|
||||||
|
\ '.....h>-$',
|
||||||
|
\ 'iii<<<<><<$', '$'], l)
|
||||||
|
|
||||||
|
enew!
|
||||||
|
set listchars& ff&
|
||||||
|
endfunc
|
168
src/nvim/testdir/test_textformat.vim
Normal file
168
src/nvim/testdir/test_textformat.vim
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
" Tests for the various 'formatoptions' settings
|
||||||
|
func Test_text_format()
|
||||||
|
enew!
|
||||||
|
|
||||||
|
setl noai tw=2 fo=t
|
||||||
|
call append('$', [
|
||||||
|
\ '{',
|
||||||
|
\ ' ',
|
||||||
|
\ '',
|
||||||
|
\ '}'])
|
||||||
|
exe "normal /^{/+1\n0"
|
||||||
|
normal gRa b
|
||||||
|
let lnum = line('.')
|
||||||
|
call assert_equal([
|
||||||
|
\ 'a',
|
||||||
|
\ 'b'], getline(lnum - 1, lnum))
|
||||||
|
|
||||||
|
normal ggdG
|
||||||
|
setl ai tw=2 fo=tw
|
||||||
|
call append('$', [
|
||||||
|
\ '{',
|
||||||
|
\ 'a b ',
|
||||||
|
\ '',
|
||||||
|
\ 'a ',
|
||||||
|
\ '}'])
|
||||||
|
exe "normal /^{/+1\n0"
|
||||||
|
normal gqgqjjllab
|
||||||
|
let lnum = line('.')
|
||||||
|
call assert_equal([
|
||||||
|
\ 'a ',
|
||||||
|
\ 'b ',
|
||||||
|
\ '',
|
||||||
|
\ 'a ',
|
||||||
|
\ 'b'], getline(lnum - 4, lnum))
|
||||||
|
|
||||||
|
normal ggdG
|
||||||
|
setl tw=3 fo=t
|
||||||
|
call append('$', [
|
||||||
|
\ '{',
|
||||||
|
\ "a \<C-A>",
|
||||||
|
\ '}'])
|
||||||
|
exe "normal /^{/+1\n0"
|
||||||
|
exe "normal gqgqo\na \<C-V>\<C-A>"
|
||||||
|
let lnum = line('.')
|
||||||
|
call assert_equal([
|
||||||
|
\ 'a',
|
||||||
|
\ "\<C-A>",
|
||||||
|
\ '',
|
||||||
|
\ 'a',
|
||||||
|
\ "\<C-A>"], getline(lnum - 4, lnum))
|
||||||
|
|
||||||
|
normal ggdG
|
||||||
|
setl tw=2 fo=tcq1 comments=:#
|
||||||
|
call append('$', [
|
||||||
|
\ '{',
|
||||||
|
\ 'a b',
|
||||||
|
\ '#a b',
|
||||||
|
\ '}'])
|
||||||
|
exe "normal /^{/+1\n0"
|
||||||
|
exe "normal gqgqjgqgqo\na b\n#a b"
|
||||||
|
let lnum = line('.')
|
||||||
|
call assert_equal([
|
||||||
|
\ 'a b',
|
||||||
|
\ '#a b',
|
||||||
|
\ '',
|
||||||
|
\ 'a b',
|
||||||
|
\ '#a b'], getline(lnum - 4, lnum))
|
||||||
|
|
||||||
|
normal ggdG
|
||||||
|
setl tw=5 fo=tcn comments=:#
|
||||||
|
call append('$', [
|
||||||
|
\ '{',
|
||||||
|
\ ' 1 a',
|
||||||
|
\ '# 1 a',
|
||||||
|
\ '}'])
|
||||||
|
exe "normal /^{/+1\n0"
|
||||||
|
exe "normal A b\<Esc>jA b"
|
||||||
|
let lnum = line('.')
|
||||||
|
call assert_equal([
|
||||||
|
\ ' 1 a',
|
||||||
|
\ ' b',
|
||||||
|
\ '# 1 a',
|
||||||
|
\ '# b'], getline(lnum - 3, lnum))
|
||||||
|
|
||||||
|
normal ggdG
|
||||||
|
setl tw=5 fo=t2a si
|
||||||
|
call append('$', [
|
||||||
|
\ '{',
|
||||||
|
\ '',
|
||||||
|
\ ' x a',
|
||||||
|
\ ' b',
|
||||||
|
\ ' c',
|
||||||
|
\ '',
|
||||||
|
\ '}'])
|
||||||
|
exe "normal /^{/+3\n0"
|
||||||
|
exe "normal i \<Esc>A_"
|
||||||
|
let lnum = line('.')
|
||||||
|
call assert_equal([
|
||||||
|
\ '',
|
||||||
|
\ ' x a',
|
||||||
|
\ ' b_',
|
||||||
|
\ ' c',
|
||||||
|
\ ''], getline(lnum - 2, lnum + 2))
|
||||||
|
|
||||||
|
normal ggdG
|
||||||
|
setl tw=5 fo=qn comments=:#
|
||||||
|
call append('$', [
|
||||||
|
\ '{',
|
||||||
|
\ '# 1 a b',
|
||||||
|
\ '}'])
|
||||||
|
exe "normal /^{/+1\n5|"
|
||||||
|
normal gwap
|
||||||
|
call assert_equal(5, col('.'))
|
||||||
|
let lnum = line('.')
|
||||||
|
call assert_equal([
|
||||||
|
\ '# 1 a',
|
||||||
|
\ '# b'], getline(lnum, lnum + 1))
|
||||||
|
|
||||||
|
normal ggdG
|
||||||
|
setl tw=5 fo=q2 comments=:#
|
||||||
|
call append('$', [
|
||||||
|
\ '{',
|
||||||
|
\ '# x',
|
||||||
|
\ '# a b',
|
||||||
|
\ '}'])
|
||||||
|
exe "normal /^{/+1\n0"
|
||||||
|
normal gwap
|
||||||
|
let lnum = line('.')
|
||||||
|
call assert_equal([
|
||||||
|
\ '# x a',
|
||||||
|
\ '# b'], getline(lnum, lnum + 1))
|
||||||
|
|
||||||
|
normal ggdG
|
||||||
|
setl tw& fo=a
|
||||||
|
call append('$', [
|
||||||
|
\ '{',
|
||||||
|
\ ' 1aa',
|
||||||
|
\ ' 2bb',
|
||||||
|
\ '}'])
|
||||||
|
exe "normal /^{/+2\n0"
|
||||||
|
normal I^^
|
||||||
|
call assert_equal('{ 1aa ^^2bb }', getline('.'))
|
||||||
|
|
||||||
|
normal ggdG
|
||||||
|
setl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
|
||||||
|
call append('$', [
|
||||||
|
\ '/* abc def ghi jkl ',
|
||||||
|
\ ' * mno pqr stu',
|
||||||
|
\ ' */'])
|
||||||
|
exe "normal /mno pqr/\n"
|
||||||
|
normal A vwx yz
|
||||||
|
let lnum = line('.')
|
||||||
|
call assert_equal([
|
||||||
|
\ ' * mno pqr stu ',
|
||||||
|
\ ' * vwx yz',
|
||||||
|
\ ' */'], getline(lnum - 1, lnum + 1))
|
||||||
|
|
||||||
|
normal ggdG
|
||||||
|
setl tw=12 fo=tqnc comments=:#
|
||||||
|
call setline('.', '# 1 xxxxx')
|
||||||
|
normal A foobar
|
||||||
|
call assert_equal([
|
||||||
|
\ '# 1 xxxxx',
|
||||||
|
\ '# foobar'], getline(1, 2))
|
||||||
|
|
||||||
|
setl ai& tw& fo& si& comments&
|
||||||
|
enew!
|
||||||
|
endfunc
|
Loading…
Reference in New Issue
Block a user