mirror of
https://github.com/neovim/neovim.git
synced 2025-09-13 14:58:18 +00:00
Merge PR #1328 'Migrate legacy tests'
This commit is contained in:
@@ -1,12 +0,0 @@
|
||||
Test if fnameescape is correct for special chars like !
|
||||
|
||||
STARTTEST
|
||||
:%d
|
||||
:let fname = 'Xspa ce'
|
||||
:try | exe "w! " . fnameescape(fname) | put='Space' | endtry
|
||||
:let fname = 'Xemark!'
|
||||
:try | exe "w! " . fnameescape(fname) | put='ExclamationMark' | endtry
|
||||
:w! test.out
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
@@ -1,3 +0,0 @@
|
||||
|
||||
Space
|
||||
ExclamationMark
|
@@ -1,16 +0,0 @@
|
||||
Tests for errorformat. vim: set ft=vim ts=8 :
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:if !has('quickfix') | e! test.ok | wq! test.out | endif
|
||||
:set efm=%EEEE%m,%WWWW%m,%+CCCC%.%#,%-GGGG%.%#
|
||||
:cgetexpr ['WWWW', 'EEEE', 'CCCC']
|
||||
:$put =strtrans(string(map(getqflist(), '[v:val.text, v:val.valid]')))
|
||||
:cgetexpr ['WWWW', 'GGGG', 'EEEE', 'CCCC']
|
||||
:$put =strtrans(string(map(getqflist(), '[v:val.text, v:val.valid]')))
|
||||
:cgetexpr ['WWWW', 'GGGG', 'ZZZZ', 'EEEE', 'CCCC', 'YYYY']
|
||||
:$put =strtrans(string(map(getqflist(), '[v:val.text, v:val.valid]')))
|
||||
:/^Results/,$wq! test.out
|
||||
ENDTEST
|
||||
|
||||
Results of test106:
|
@@ -1,4 +0,0 @@
|
||||
Results of test106:
|
||||
[['W', 1], ['E^@CCCC', 1]]
|
||||
[['W', 1], ['E^@CCCC', 1]]
|
||||
[['W', 1], ['ZZZZ', 0], ['E^@CCCC', 1], ['YYYY', 0]]
|
@@ -1,16 +0,0 @@
|
||||
Tests for not doing smart indenting when it isn't set.
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:set nocin nosi ai
|
||||
/some
|
||||
2cc#test
|
||||
:?start?,$w! test.out
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
start text
|
||||
some test text
|
||||
test text
|
||||
test text
|
||||
test text
|
@@ -1,4 +0,0 @@
|
||||
start text
|
||||
#test
|
||||
test text
|
||||
test text
|
@@ -1,28 +0,0 @@
|
||||
Tests Blockwise Visual when there are TABs before the text.
|
||||
First test for undo working properly when executing commands from a register.
|
||||
Also test this in an empty buffer.
|
||||
|
||||
STARTTEST
|
||||
:so tiny.vim
|
||||
G0"ay$k@au
|
||||
:new
|
||||
@auY:quit!
|
||||
GP
|
||||
/start here$
|
||||
"by$jjlld
|
||||
/456$
|
||||
jj"bP
|
||||
:/56$/,$-1w! test.out
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
123456
|
||||
234567
|
||||
345678
|
||||
|
||||
test text test tex start here
|
||||
some text
|
||||
test text
|
||||
test text
|
||||
|
||||
OxjAykdd
|
@@ -1,10 +0,0 @@
|
||||
123start here56
|
||||
234start here67
|
||||
345start here78
|
||||
|
||||
test text test tex rt here
|
||||
somext
|
||||
tesext
|
||||
test text
|
||||
|
||||
|
@@ -1,13 +0,0 @@
|
||||
Tests for file with some lines ending in CTRL-M, some not
|
||||
|
||||
STARTTEST
|
||||
:set ta tx
|
||||
:e!
|
||||
:$-3,$w! test.out
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
this lines ends in a
|
||||
this one doesn't
|
||||
this one does
|
||||
and the last one doesn't
|
@@ -1,4 +0,0 @@
|
||||
this lines ends in a
|
||||
this one doesn't
|
||||
this one does
|
||||
and the last one doesn't
|
@@ -1,15 +0,0 @@
|
||||
Tests for complicated + argument to :edit command
|
||||
|
||||
STARTTEST
|
||||
:$-1w! Xfile1
|
||||
:$w! Xfile2
|
||||
:edit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w
|
||||
:w! test.out
|
||||
:e Xfile1
|
||||
:w >> test.out
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
The result should be in Xfile1: "fooPIPEbar", in Xfile2: "fooSLASHbar"
|
||||
foo|bar
|
||||
foo/bar
|
@@ -1,2 +0,0 @@
|
||||
fooSLASHbar
|
||||
fooPIPEbar
|
@@ -1,20 +0,0 @@
|
||||
Test for expanding file names
|
||||
|
||||
STARTTEST
|
||||
:!mkdir Xdir1
|
||||
:!mkdir Xdir2
|
||||
:!mkdir Xdir3
|
||||
:cd Xdir3
|
||||
:!mkdir Xdir4
|
||||
:cd ..
|
||||
:w Xdir1/file
|
||||
:w Xdir3/Xdir4/file
|
||||
:n Xdir?/*/file
|
||||
Go%:.w! test.out
|
||||
:n! Xdir?/*/nofile
|
||||
Go%:.w >>test.out
|
||||
:e! xx
|
||||
:!rm -rf Xdir1 Xdir2 Xdir3
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
@@ -1,2 +0,0 @@
|
||||
Xdir3/Xdir4/file
|
||||
Xdir?/*/nofile
|
Binary file not shown.
@@ -1,2 +0,0 @@
|
||||
sd
|
||||
map __2 asdsecondsdsd0map __5 asd0fifth
|
@@ -1,31 +0,0 @@
|
||||
Test for autocommand that changes current buffer on BufEnter event.
|
||||
Check if modelines are interpreted for the correct buffer.
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:set nocompatible viminfo+=nviminfo
|
||||
:au BufEnter Xxx brew
|
||||
/start of
|
||||
:.,/end of/w! Xxx " write test file Xxx
|
||||
:set ai modeline modelines=3
|
||||
:sp Xxx " split to Xxx, autocmd will do :brew
|
||||
G?this is a
|
||||
othis should be auto-indented
|
||||
: " Append text with autoindent to this file
|
||||
:au! BufEnter Xxx
|
||||
:buf Xxx " go to Xxx, no autocmd anymore
|
||||
G?this is a
|
||||
othis should be in column 1:wq " append text without autoindent to Xxx
|
||||
G:r Xxx " include Xxx in the current file
|
||||
:?startstart?,$w! test.out
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
startstart
|
||||
start of test file Xxx
|
||||
vim: set noai :
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
end of test file Xxx
|
@@ -1,17 +0,0 @@
|
||||
startstart
|
||||
start of test file Xxx
|
||||
vim: set noai :
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
this should be auto-indented
|
||||
end of test file Xxx
|
||||
start of test file Xxx
|
||||
vim: set noai :
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
this should be in column 1
|
||||
end of test file Xxx
|
@@ -1,24 +0,0 @@
|
||||
Test for writing and reading a file of over 100 Kbyte
|
||||
|
||||
1 line: "This is the start"
|
||||
3001 lines: "This is the leader"
|
||||
1 line: "This is the middle"
|
||||
3001 lines: "This is the trailer"
|
||||
1 line: "This is the end"
|
||||
|
||||
STARTTEST
|
||||
:%d
|
||||
aThis is the start
|
||||
This is the leader
|
||||
This is the middle
|
||||
This is the trailer
|
||||
This is the endkY3000p2GY3000p
|
||||
:w! Xtest
|
||||
:%d
|
||||
:e! Xtest
|
||||
:.w! test.out
|
||||
3003G:.w >>test.out
|
||||
6005G:.w >>test.out
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
@@ -1,3 +0,0 @@
|
||||
This is the start
|
||||
This is the middle
|
||||
This is the end
|
@@ -1,27 +0,0 @@
|
||||
Tests for multi-line regexps with ":s". vim: set ft=vim :
|
||||
|
||||
STARTTEST
|
||||
:" test if replacing a line break works with a back reference
|
||||
:/^1/,/^2/s/\n\(.\)/ \1/
|
||||
:" test if inserting a line break works with a back reference
|
||||
:/^3/,/^4/s/\(.\)$/\r\1/
|
||||
:" test if replacing a line break with another line break works
|
||||
:/^5/,/^6/s/\(\_d\{3}\)/x\1x/
|
||||
:/^1/,$w! test.out
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
1 aa
|
||||
bb
|
||||
cc
|
||||
2 dd
|
||||
ee
|
||||
3 ef
|
||||
gh
|
||||
4 ij
|
||||
5 a8
|
||||
8b c9
|
||||
9d
|
||||
6 e7
|
||||
77f
|
||||
xxxxx
|
@@ -1,13 +0,0 @@
|
||||
1 aa bb cc 2 dd ee
|
||||
3 e
|
||||
f
|
||||
g
|
||||
h
|
||||
4 i
|
||||
j
|
||||
5 ax8
|
||||
8xb cx9
|
||||
9xd
|
||||
6 ex7
|
||||
7x7f
|
||||
xxxxx
|
@@ -1,22 +0,0 @@
|
||||
Some tests for buffer-local autocommands
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:e xx
|
||||
:if has("vms")
|
||||
: !del test.out.*
|
||||
: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > test.out
|
||||
:else
|
||||
: !rm -f test.out
|
||||
: au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out
|
||||
:endif
|
||||
:e somefile " here, autocommand for xx shall write test.out
|
||||
: " but autocommand shall not apply to buffer named <buffer>
|
||||
:bwipe xx " here, autocommand shall be auto-deleted
|
||||
:e xx " nothing shall be written
|
||||
:e somefile " nothing shall be written
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
start of test file xx
|
||||
end of test file xx
|
@@ -1 +0,0 @@
|
||||
buffer-local autommand in xx
|
@@ -1,21 +0,0 @@
|
||||
Test for script-local function. vim: set ft=vim :
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:"
|
||||
:set nocp viminfo+=nviminfo
|
||||
:/^start:/+1,/^end:/-1w! Xtest.vim
|
||||
:source Xtest.vim
|
||||
_x
|
||||
:$-1,$wq! test.out
|
||||
ENDTEST
|
||||
|
||||
start:
|
||||
fun <SID>DoLast()
|
||||
call append(line('$'), "last line")
|
||||
endfun
|
||||
fun s:DoNothing()
|
||||
call append(line('$'), "nothing line")
|
||||
endfun
|
||||
nnoremap <buffer> _x :call <SID>DoNothing()<bar>call <SID>DoLast()<bar>delfunc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
|
||||
end:
|
@@ -1,2 +0,0 @@
|
||||
nothing line
|
||||
last line
|
@@ -1,24 +0,0 @@
|
||||
Test for autocommand that redefines the argument list, when doing ":all".
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:au BufReadPost Xxx2 next Xxx2 Xxx1
|
||||
/^start of
|
||||
A1:.,/end of/w! Xxx1 " write test file Xxx1
|
||||
$r2:.,/end of/w! Xxx2 " write test file Xxx2
|
||||
$r3:.,/end of/w! Xxx3 " write test file Xxx3
|
||||
:next! Xxx1 Xxx2 Xxx3 " redefine arglist; go to Xxx1
|
||||
:all " open window for all args
|
||||
:w! test.out " Write contents of Xxx1
|
||||
:w >>test.out " Append contents of last window (Xxx1)
|
||||
:rew " should now be in Xxx2
|
||||
:w >>test.out " Append contents of Xxx2
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
start of test file Xxx
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
end of test file Xxx
|
@@ -1,18 +0,0 @@
|
||||
start of test file Xxx1
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
end of test file Xxx
|
||||
start of test file Xxx1
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
end of test file Xxx
|
||||
start of test file Xxx2
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
end of test file Xxx
|
@@ -1,26 +0,0 @@
|
||||
Test for autocommand that changes the buffer list, when doing ":ball".
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
/^start of
|
||||
A1:.,/end of/w! Xxx1 " write test file Xxx1
|
||||
:sp Xxx1
|
||||
:close
|
||||
$r2:.,/end of/w! Xxx2 " write test file Xxx2
|
||||
:sp Xxx2
|
||||
:close
|
||||
$r3:.,/end of/w! Xxx3 " write test file Xxx3
|
||||
:sp Xxx3
|
||||
:close
|
||||
:au BufReadPost Xxx2 bwipe
|
||||
$r4:ball " open window for all args, close Xxx2
|
||||
:.,$w! test.out " Write contents of this file
|
||||
:w >>test.out " Append contents of second window (Xxx1)
|
||||
:/^start of/,$w >>test.out " Append contents of last window (this file)
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
start of test file Xxx
|
||||
this is a test
|
||||
this is a test
|
||||
end of test file Xxx
|
@@ -1,12 +0,0 @@
|
||||
start of test file Xxx4
|
||||
this is a test
|
||||
this is a test
|
||||
end of test file Xxx
|
||||
start of test file Xxx1
|
||||
this is a test
|
||||
this is a test
|
||||
end of test file Xxx
|
||||
start of test file Xxx4
|
||||
this is a test
|
||||
this is a test
|
||||
end of test file Xxx
|
@@ -1,22 +0,0 @@
|
||||
Test for t movement command and 'cpo-;' setting
|
||||
|
||||
STARTTEST
|
||||
:set nocompatible viminfo+=nviminfo
|
||||
:set cpo-=;
|
||||
/firstline/
|
||||
j0tt;D
|
||||
0fz;D
|
||||
$Fy;D
|
||||
$Ty;D:set cpo+=;
|
||||
j0tt;;D
|
||||
$Ty;;D:?firstline?+1,$w! test.out
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
firstline
|
||||
aaa two three four
|
||||
zzz
|
||||
yyy
|
||||
bbb yee yoo four
|
||||
ccc two three four
|
||||
ddd yee yoo four
|
@@ -1,6 +0,0 @@
|
||||
aaa two
|
||||
z
|
||||
y
|
||||
bbb y
|
||||
ccc
|
||||
ddd yee y
|
@@ -1,12 +0,0 @@
|
||||
Test for Bufleave autocommand that deletes the buffer we are about to edit.
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:au BufLeave test9.in bwipe yy
|
||||
:e yy
|
||||
:/^start of/,$w! test.out " Write contents of this file
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
start of test file xx
|
||||
end of test file xx
|
@@ -1,2 +0,0 @@
|
||||
start of test file xx
|
||||
end of test file xx
|
@@ -1,23 +0,0 @@
|
||||
Test whether glob()/globpath() return correct results with certain escaped
|
||||
characters.
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:" make sure glob() doesn't use the shell
|
||||
:set shell=doesnotexist
|
||||
:" consistent sorting of file names
|
||||
:set nofileignorecase
|
||||
:e test.out
|
||||
:$put =glob('Xxx\{')
|
||||
:$put =glob('Xxx\$')
|
||||
:w! Xxx{
|
||||
:w! Xxx\$
|
||||
:$put =glob('Xxx\{')
|
||||
:$put =glob('Xxx\$')
|
||||
:"
|
||||
:$put =string(globpath('sautest/autoload', '*.vim'))
|
||||
:$put =string(globpath('sautest/autoload', '*.vim', 0, 1))
|
||||
:w
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
@@ -1,8 +0,0 @@
|
||||
|
||||
|
||||
|
||||
Xxx{
|
||||
Xxx$
|
||||
'sautest/autoload/Test104.vim
|
||||
sautest/autoload/footest.vim'
|
||||
['sautest/autoload/Test104.vim', 'sautest/autoload/footest.vim']
|
@@ -1,23 +0,0 @@
|
||||
Tests for setting the '[,'] marks when joining lines.
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:/^\t\t/
|
||||
0gqj
|
||||
:let a=string(getpos("'[")).'/'.string(getpos("']"))
|
||||
:/^This line/;'}-join
|
||||
:let b=string(getpos("'[")).'/'.string(getpos("']"))
|
||||
:$put ='First test: Start/End '.string(a)
|
||||
:$put ='Second test: Start/End '.string(b)
|
||||
:/^\t\t/,$wq! test.out
|
||||
ENDTEST
|
||||
|
||||
|
||||
O sodales, ludite, vos qui
|
||||
attamen consulite per voster honur. Tua pulchra facies me fay planszer milies
|
||||
|
||||
This line.
|
||||
Should be joined with the next line
|
||||
and with this line
|
||||
|
||||
Results:
|
@@ -1,8 +0,0 @@
|
||||
O sodales, ludite, vos qui attamen consulite per voster honur.
|
||||
Tua pulchra facies me fay planszer milies
|
||||
|
||||
This line. Should be joined with the next line and with this line
|
||||
|
||||
Results:
|
||||
First test: Start/End '[0, 16, 1, 0]/[0, 17, 1, 0]'
|
||||
Second test: Start/End '[0, 19, 11, 0]/[0, 19, 67, 0]'
|
@@ -1,22 +0,0 @@
|
||||
Test changelist position after splitting window
|
||||
Set 'undolevels' to make changelist for sourced file
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
Gkylp:set ul=100
|
||||
Gylp:set ul=100
|
||||
gg
|
||||
:vsplit
|
||||
:try
|
||||
: normal g;
|
||||
: normal ggVGcpass
|
||||
:catch
|
||||
: normal ggVGcfail
|
||||
:finally
|
||||
: %w! test.out
|
||||
:endtry
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
1
|
||||
2
|
@@ -1 +0,0 @@
|
||||
pass
|
@@ -1,14 +0,0 @@
|
||||
Tests for repeating insert and replace.
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:/Second
|
||||
4gro
|
||||
:/^First/,$wq! test.out
|
||||
:" get here when failed and in Insert mode
|
||||
:.wq! test.out
|
||||
ENDTEST
|
||||
|
||||
First line
|
||||
Second line
|
||||
Last line
|
@@ -1,3 +0,0 @@
|
||||
First line
|
||||
ooooecond line
|
||||
Last line
|
@@ -1,17 +0,0 @@
|
||||
Test for ":options".
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:let caught = 'ok'
|
||||
:try
|
||||
:options
|
||||
:catch
|
||||
:let caught = v:throwpoint . "\n" . v:exception
|
||||
:endtry
|
||||
:buf 1
|
||||
:$put =caught
|
||||
:/^result/,$w! test.out
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
result
|
@@ -1,2 +0,0 @@
|
||||
result
|
||||
ok
|
@@ -1,18 +0,0 @@
|
||||
Tests for Unicode manipulations
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:set encoding=utf-8
|
||||
:" Visual block Insert adjusts for multi-byte char
|
||||
:new
|
||||
:call setline(1, ["aaa", "あああ", "bbb"])
|
||||
:exe ":norm! gg0l\<C-V>jjIx\<Esc>"
|
||||
:let r = getline(1, '$')
|
||||
:
|
||||
:bwipeout!
|
||||
:$put=r
|
||||
:call garbagecollect(1)
|
||||
:/^start:/,$wq! test.out
|
||||
ENDTEST
|
||||
|
||||
start:
|
@@ -1,4 +0,0 @@
|
||||
start:
|
||||
axaa
|
||||
xあああ
|
||||
bxbb
|
@@ -67,6 +67,25 @@ local function restart()
|
||||
mapclear!
|
||||
abclear
|
||||
comclear
|
||||
let regs = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/-"'
|
||||
let i = 0
|
||||
while i < strlen(regs)
|
||||
call setreg(regs[i], '')
|
||||
let i = i+1
|
||||
endwhile
|
||||
redir => funcs
|
||||
silent! function
|
||||
redir END
|
||||
for fname in split(funcs, '\n')
|
||||
let matches = matchlist(fname, '\v^function ([^()<>]+)')
|
||||
if type([]) == type(matches) && matches[1] !~ 'BeforeEachTest'
|
||||
exe 'silent! delfunc '.matches[1]
|
||||
endif
|
||||
endfor
|
||||
let options = ['shell', 'fileignorecase']
|
||||
for option in options
|
||||
exe 'set '.option.'&'
|
||||
endfor
|
||||
endfunction
|
||||
]])
|
||||
end
|
||||
@@ -83,6 +102,9 @@ local function request(method, ...)
|
||||
error(rv[2])
|
||||
end
|
||||
end
|
||||
-- Make sure this will only return after all buffered characters have been
|
||||
-- processed
|
||||
session:request('vim_eval', '1')
|
||||
return rv
|
||||
end
|
||||
|
||||
@@ -201,7 +223,6 @@ local function expect(contents, first, last, buffer_index)
|
||||
return eq(dedent(contents), buffer_slice(first, last, buffer_index))
|
||||
end
|
||||
|
||||
|
||||
local function ok(expr)
|
||||
assert.is_true(expr)
|
||||
end
|
||||
@@ -254,6 +275,7 @@ restart()
|
||||
|
||||
return {
|
||||
clear = clear,
|
||||
dedent = dedent,
|
||||
restart = restart,
|
||||
rawfeed = rawfeed,
|
||||
insert = insert,
|
||||
|
72
test/functional/legacy/004_bufenter_with_modelines_spec.lua
Normal file
72
test/functional/legacy/004_bufenter_with_modelines_spec.lua
Normal file
@@ -0,0 +1,72 @@
|
||||
-- vim: set foldmethod=marker foldmarker=[[,]] :
|
||||
-- Test for autocommand that changes current buffer on BufEnter event.
|
||||
-- Check if modelines are interpreted for the correct buffer.
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('BufEnter with modelines', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
insert([[
|
||||
startstart
|
||||
start of test file Xxx
|
||||
vim: set noai :
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
end of test file Xxx]])
|
||||
|
||||
execute('au BufEnter Xxx brew')
|
||||
|
||||
-- Write test file Xxx
|
||||
execute('/start of')
|
||||
execute('.,/end of/w! Xxx')
|
||||
execute('set ai modeline modelines=3')
|
||||
|
||||
-- Split to Xxx, autocmd will do :brew
|
||||
execute('sp Xxx')
|
||||
|
||||
-- Append text with autoindent to this file
|
||||
feed('G?this is a<Esc>')
|
||||
feed('othis should be auto-indented<Esc>')
|
||||
|
||||
-- Go to Xxx, no autocmd anymore
|
||||
execute('au! BufEnter Xxx')
|
||||
execute('buf Xxx')
|
||||
|
||||
-- Append text without autoindent to Xxx
|
||||
feed('G?this is a<Esc>')
|
||||
feed('othis should be in column 1<Esc>')
|
||||
execute('wq')
|
||||
|
||||
-- Include Xxx in the current file
|
||||
feed('G:r Xxx<CR>')
|
||||
|
||||
expect([[
|
||||
startstart
|
||||
start of test file Xxx
|
||||
vim: set noai :
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
this should be auto-indented
|
||||
end of test file Xxx
|
||||
start of test file Xxx
|
||||
vim: set noai :
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
this should be in column 1
|
||||
end of test file Xxx]])
|
||||
end)
|
||||
|
||||
teardown(function()
|
||||
os.remove('Xxx')
|
||||
end)
|
||||
end)
|
81
test/functional/legacy/006_argument_list_spec.lua
Normal file
81
test/functional/legacy/006_argument_list_spec.lua
Normal file
@@ -0,0 +1,81 @@
|
||||
-- Test for autocommand that redefines the argument list, when doing ":all".
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, dedent, eq = helpers.execute, helpers.dedent, helpers.eq
|
||||
local curbuf_contents = helpers.curbuf_contents
|
||||
|
||||
describe('argument list', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
insert([[
|
||||
start of test file Xxx
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
end of test file Xxx]])
|
||||
|
||||
execute('au BufReadPost Xxx2 next Xxx2 Xxx1')
|
||||
execute('/^start of')
|
||||
|
||||
-- Write test file Xxx1
|
||||
feed('A1<Esc>:.,/end of/w! Xxx1<cr>')
|
||||
|
||||
-- Write test file Xxx2
|
||||
feed('$r2:.,/end of/w! Xxx2<cr>')
|
||||
|
||||
-- Write test file Xxx3
|
||||
feed('$r3:.,/end of/w! Xxx3<cr>')
|
||||
|
||||
-- Redefine arglist; go to Xxx1
|
||||
execute('next! Xxx1 Xxx2 Xxx3')
|
||||
|
||||
-- Open window for all args
|
||||
execute('all')
|
||||
|
||||
-- Write contents of Xxx1
|
||||
execute('%yank A')
|
||||
|
||||
-- Append contents of last window (Xxx1)
|
||||
feed('')
|
||||
execute('%yank A')
|
||||
|
||||
-- should now be in Xxx2
|
||||
execute('rew')
|
||||
|
||||
-- Append contents of Xxx2
|
||||
execute('%yank A')
|
||||
|
||||
execute('%d')
|
||||
execute('0put=@a')
|
||||
execute('1d | $d')
|
||||
|
||||
eq(dedent([[
|
||||
start of test file Xxx1
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
end of test file Xxx
|
||||
start of test file Xxx1
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
end of test file Xxx
|
||||
start of test file Xxx2
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
this is a test
|
||||
end of test file Xxx]]), curbuf_contents())
|
||||
end)
|
||||
|
||||
teardown(function()
|
||||
os.remove('Xxx1')
|
||||
os.remove('Xxx2')
|
||||
os.remove('Xxx3')
|
||||
end)
|
||||
end)
|
77
test/functional/legacy/007_ball_buffer_list_spec.lua
Normal file
77
test/functional/legacy/007_ball_buffer_list_spec.lua
Normal file
@@ -0,0 +1,77 @@
|
||||
-- Test for autocommand that changes the buffer list, when doing ":ball".
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe(':ball', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
insert([[
|
||||
start of test file Xxx
|
||||
this is a test
|
||||
this is a test
|
||||
end of test file Xxx]])
|
||||
|
||||
execute('w! Xxx0')
|
||||
feed('gg')
|
||||
|
||||
-- Write test file Xxx1
|
||||
feed('A1:.,/end of/w! Xxx1<cr>')
|
||||
execute('sp Xxx1')
|
||||
execute('close')
|
||||
|
||||
-- Write test file Xxx2
|
||||
feed('$r2:.,/end of/w! Xxx2<cr>')
|
||||
execute('sp Xxx2')
|
||||
execute('close')
|
||||
|
||||
-- Write test file Xxx3
|
||||
feed('$r3:.,/end of/w! Xxx3<cr>')
|
||||
execute('sp Xxx3')
|
||||
execute('close')
|
||||
|
||||
execute('au BufReadPost Xxx2 bwipe')
|
||||
|
||||
-- Open window for all args, close Xxx2
|
||||
feed('$r4:ball<cr>')
|
||||
|
||||
-- Write contents of this file
|
||||
execute('%yank A')
|
||||
|
||||
-- Append contents of second window (Xxx1)
|
||||
feed('')
|
||||
execute('%yank A')
|
||||
|
||||
-- Append contents of last window (this file)
|
||||
feed('')
|
||||
execute('%yank A')
|
||||
|
||||
execute('bf')
|
||||
execute('%d')
|
||||
execute('0put=@a')
|
||||
execute('1d | $d')
|
||||
|
||||
expect([[
|
||||
start of test file Xxx4
|
||||
this is a test
|
||||
this is a test
|
||||
end of test file Xxx
|
||||
start of test file Xxx1
|
||||
this is a test
|
||||
this is a test
|
||||
end of test file Xxx
|
||||
start of test file Xxx4
|
||||
this is a test
|
||||
this is a test
|
||||
end of test file Xxx]])
|
||||
end)
|
||||
|
||||
teardown(function()
|
||||
os.remove('Xxx0')
|
||||
os.remove('Xxx1')
|
||||
os.remove('Xxx2')
|
||||
os.remove('Xxx3')
|
||||
end)
|
||||
end)
|
22
test/functional/legacy/009_bufleave_autocommand_spec.lua
Normal file
22
test/functional/legacy/009_bufleave_autocommand_spec.lua
Normal file
@@ -0,0 +1,22 @@
|
||||
-- Test for Bufleave autocommand that deletes the buffer we are about to edit.
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('BufLeave autocommand', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
insert([[
|
||||
start of test file xx
|
||||
end of test file xx]])
|
||||
|
||||
execute('au BufLeave * bwipe yy')
|
||||
execute('e yy')
|
||||
|
||||
expect([[
|
||||
start of test file xx
|
||||
end of test file xx]])
|
||||
end)
|
||||
end)
|
28
test/functional/legacy/018_unset_smart_indenting_spec.lua
Normal file
28
test/functional/legacy/018_unset_smart_indenting_spec.lua
Normal file
@@ -0,0 +1,28 @@
|
||||
-- Tests for not doing smart indenting when it isn't set.
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('unset smart indenting', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
insert([[
|
||||
start text
|
||||
some test text
|
||||
test text
|
||||
test text
|
||||
test text]])
|
||||
|
||||
execute('set nocin nosi ai')
|
||||
execute('/some')
|
||||
feed('2cc#test<Esc>')
|
||||
|
||||
expect([[
|
||||
start text
|
||||
#test
|
||||
test text
|
||||
test text]])
|
||||
end)
|
||||
end)
|
49
test/functional/legacy/020_blockwise_visual_spec.lua
Normal file
49
test/functional/legacy/020_blockwise_visual_spec.lua
Normal file
@@ -0,0 +1,49 @@
|
||||
-- vim: set foldmethod=marker foldmarker=[[,]] :
|
||||
-- Tests Blockwise Visual when there are TABs before the text.
|
||||
-- First test for undo working properly when executing commands from a register.
|
||||
-- Also test this in an empty buffer.
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('blockwise visual', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
insert([[
|
||||
123456
|
||||
234567
|
||||
345678
|
||||
|
||||
test text test tex start here
|
||||
some text
|
||||
test text
|
||||
test text
|
||||
|
||||
x jAy kdd
|
||||
Ox jAy kdd]])
|
||||
|
||||
feed(":let @a = 'Ox<C-v><Esc>jAy<C-v><Esc>kdd'<cr>")
|
||||
feed('G0k@au')
|
||||
execute('new')
|
||||
feed('@auY')
|
||||
execute('quit')
|
||||
feed('GP')
|
||||
execute('/start here')
|
||||
feed('"by$<C-v>jjlld')
|
||||
execute('/456')
|
||||
feed('<C-v>jj"bP')
|
||||
execute('$-3,$d')
|
||||
|
||||
expect([[
|
||||
123start here56
|
||||
234start here67
|
||||
345start here78
|
||||
|
||||
test text test tex rt here
|
||||
somext
|
||||
tesext
|
||||
test text]])
|
||||
end)
|
||||
end)
|
41
test/functional/legacy/021_control_wi_spec.lua
Normal file
41
test/functional/legacy/021_control_wi_spec.lua
Normal file
@@ -0,0 +1,41 @@
|
||||
-- vim: set foldmethod=marker foldmarker=[[,]] :
|
||||
-- Tests for [ CTRL-I with a count and CTRL-W CTRL-I with a count
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('CTRL-W CTRL-I', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
insert([[
|
||||
#include test21.in
|
||||
|
||||
/* test text test tex start here
|
||||
some text
|
||||
test text
|
||||
start OK if found this line
|
||||
start found wrong line
|
||||
test text]])
|
||||
|
||||
-- Search for the second occurence of start and append to register
|
||||
execute('/start')
|
||||
feed('2[<C-i>')
|
||||
execute('yank A')
|
||||
|
||||
-- Same as above but using different keystrokes.
|
||||
feed('?start<cr>')
|
||||
feed('2<C-w><Tab>')
|
||||
execute('yank A')
|
||||
|
||||
-- Clean buffer and put register
|
||||
feed('ggdG"ap')
|
||||
execute('1,2d')
|
||||
|
||||
-- The buffer should now contain:
|
||||
expect([[
|
||||
start OK if found this line
|
||||
start OK if found this line]])
|
||||
end)
|
||||
end)
|
25
test/functional/legacy/022_line_ending_spec.lua
Normal file
25
test/functional/legacy/022_line_ending_spec.lua
Normal file
@@ -0,0 +1,25 @@
|
||||
-- Tests for file with some lines ending in CTRL-M, some not
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('line ending', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
feed('i', [[
|
||||
this lines ends in a<C-V><C-M>
|
||||
this one doesn't
|
||||
this one does<C-V><C-M>
|
||||
and the last one doesn't]], '<ESC>')
|
||||
|
||||
execute('set ta tx')
|
||||
execute('e!')
|
||||
|
||||
expect("this lines ends in a\r\n"..
|
||||
"this one doesn't\n"..
|
||||
"this one does\r\n"..
|
||||
"and the last one doesn't")
|
||||
end)
|
||||
end)
|
52
test/functional/legacy/023_edit_arguments_spec.lua
Normal file
52
test/functional/legacy/023_edit_arguments_spec.lua
Normal file
@@ -0,0 +1,52 @@
|
||||
-- Tests for complicated + argument to :edit command
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe(':edit', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
insert([[
|
||||
The result should be in Xfile1: "fooPIPEbar", in Xfile2: "fooSLASHbar"
|
||||
foo|bar
|
||||
foo/bar]])
|
||||
|
||||
-- Prepare some test files
|
||||
execute('$-1w! Xfile1')
|
||||
execute('$w! Xfile2')
|
||||
execute('w! Xfile0')
|
||||
|
||||
-- Open Xfile using '+' range
|
||||
execute('edit +1 Xfile1')
|
||||
execute('s/|/PIPE/')
|
||||
execute('yank A')
|
||||
execute('w! Xfile1')
|
||||
|
||||
-- Open Xfile2 using '|' range
|
||||
execute('edit Xfile2|1')
|
||||
execute("s/\\//SLASH/")
|
||||
execute('yank A')
|
||||
execute('w! Xfile2')
|
||||
|
||||
-- Clean first buffer and put @a
|
||||
execute('bf')
|
||||
execute('%d')
|
||||
execute('0put a')
|
||||
|
||||
-- Remove empty lines
|
||||
execute('1d | $d')
|
||||
|
||||
-- The buffer should now contain
|
||||
expect([[
|
||||
fooPIPEbar
|
||||
fooSLASHbar]])
|
||||
end)
|
||||
|
||||
teardown(function()
|
||||
os.remove('Xfile0')
|
||||
os.remove('Xfile1')
|
||||
os.remove('Xfile2')
|
||||
end)
|
||||
end)
|
38
test/functional/legacy/027_expand_file_names_spec.lua
Normal file
38
test/functional/legacy/027_expand_file_names_spec.lua
Normal file
@@ -0,0 +1,38 @@
|
||||
-- Test for expanding file names
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
local curbuf_contents = helpers.curbuf_contents
|
||||
local eq, eval = helpers.eq, helpers.eval
|
||||
|
||||
describe('expand file name', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
execute('set nocp')
|
||||
execute('!mkdir Xdir1')
|
||||
execute('!mkdir Xdir2')
|
||||
execute('!mkdir Xdir3')
|
||||
execute('cd Xdir3')
|
||||
execute('!mkdir Xdir4')
|
||||
execute('cd ..')
|
||||
execute('w Xdir1/file')
|
||||
execute('w Xdir3/Xdir4/file')
|
||||
execute('n Xdir?/*/file')
|
||||
|
||||
-- Yank current file path to @a register
|
||||
feed('i<C-R>%<Esc>V"ad')
|
||||
|
||||
-- Put @a and current file path in the current buffer
|
||||
execute('n! Xdir?/*/nofile')
|
||||
feed('V"ap')
|
||||
feed('o<C-R>%<Esc>')
|
||||
|
||||
eq("Xdir3/Xdir4/file\nXdir?/*/nofile", curbuf_contents())
|
||||
end)
|
||||
|
||||
teardown(function()
|
||||
os.execute('rm -rf Xdir1 Xdir2 Xdir3')
|
||||
end)
|
||||
end)
|
40
test/functional/legacy/028_source_ctrl_v_spec.lua
Normal file
40
test/functional/legacy/028_source_ctrl_v_spec.lua
Normal file
@@ -0,0 +1,40 @@
|
||||
-- Test for sourcing a file with CTRL-V's at the end of the line
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('CTRL-V at the end of the line', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
insert([[
|
||||
firstline
|
||||
map __1 afirst
|
||||
map __2 asecond
|
||||
map __3 athird
|
||||
map __4 afourth
|
||||
map __5 afifth
|
||||
map __1 asdX
|
||||
map __2 asdXX
|
||||
map __3 asdXX
|
||||
map __4 asdXXX
|
||||
map __5 asdXXX
|
||||
lastline]])
|
||||
|
||||
feed(':%s/X/<C-v><C-v>/g<cr>')
|
||||
feed(':/firstline/+1,/lastline/-1w! Xtestfile<cr>')
|
||||
execute('so Xtestfile')
|
||||
execute('%d')
|
||||
feed('Gmm__1<Esc><Esc>__2<Esc>__3<Esc><Esc>__4<Esc>__5<Esc>')
|
||||
feed(":'m,$s/<C-v><C-@>/0/g<cr>")
|
||||
|
||||
expect([[
|
||||
sd
|
||||
map __2 asdsecondsdsd0map __5 asd0fifth]])
|
||||
end)
|
||||
|
||||
teardown(function()
|
||||
os.remove('Xtestfile')
|
||||
end)
|
||||
end)
|
@@ -0,0 +1,40 @@
|
||||
-- Test for writing and reading a file of over 100 Kbyte
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('writing and reading a file of over 100 Kbyte', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
insert([[
|
||||
This is the start
|
||||
This is the leader
|
||||
This is the middle
|
||||
This is the trailer
|
||||
This is the end]])
|
||||
|
||||
feed('kY3000p2GY3000p')
|
||||
|
||||
execute('w! test.out')
|
||||
execute('%d')
|
||||
execute('e! test.out')
|
||||
execute('yank A')
|
||||
execute('3003yank A')
|
||||
execute('6005yank A')
|
||||
execute('%d')
|
||||
execute('0put a')
|
||||
execute('1d | $d')
|
||||
execute('w!')
|
||||
|
||||
expect([[
|
||||
This is the start
|
||||
This is the middle
|
||||
This is the end]])
|
||||
end)
|
||||
|
||||
teardown(function()
|
||||
os.remove('test.out')
|
||||
end)
|
||||
end)
|
52
test/functional/legacy/046_multi_line_regexps_spec.lua
Normal file
52
test/functional/legacy/046_multi_line_regexps_spec.lua
Normal file
@@ -0,0 +1,52 @@
|
||||
-- vim: set foldmethod=marker foldmarker=[[,]] :
|
||||
-- Tests for multi-line regexps with ":s"
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('multi-line regexp', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
insert([[
|
||||
1 aa
|
||||
bb
|
||||
cc
|
||||
2 dd
|
||||
ee
|
||||
3 ef
|
||||
gh
|
||||
4 ij
|
||||
5 a8
|
||||
8b c9
|
||||
9d
|
||||
6 e7
|
||||
77f
|
||||
xxxxx]])
|
||||
|
||||
-- Test if replacing a line break works with a back reference
|
||||
feed([[:/^1/,/^2/s/\n\(.\)/ \1/<cr>]])
|
||||
|
||||
-- Test if inserting a line break works with a back reference
|
||||
feed([[:/^3/,/^4/s/\(.\)$/\r\1/<cr>]])
|
||||
|
||||
-- Test if replacing a line break with another line break works
|
||||
feed([[:/^5/,/^6/s/\(\_d\{3}\)/x\1x/<cr>]])
|
||||
|
||||
expect([[
|
||||
1 aa bb cc 2 dd ee
|
||||
3 e
|
||||
f
|
||||
g
|
||||
h
|
||||
4 i
|
||||
j
|
||||
5 ax8
|
||||
8xb cx9
|
||||
9xd
|
||||
6 ex7
|
||||
7x7f
|
||||
xxxxx]])
|
||||
end)
|
||||
end)
|
@@ -0,0 +1,33 @@
|
||||
-- Some tests for buffer-local autocommands
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, execute, eq = helpers.clear, helpers.execute, helpers.eq
|
||||
local curbuf_contents = helpers.curbuf_contents
|
||||
|
||||
describe('BufLeave <buffer>', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
execute('w! xx')
|
||||
execute('au BufLeave <buffer> norm Ibuffer-local autocommand')
|
||||
execute('au BufLeave <buffer> update')
|
||||
|
||||
-- Here, autocommand for xx shall append a line
|
||||
-- But autocommand shall not apply to buffer named <buffer>
|
||||
execute('e somefile')
|
||||
|
||||
-- Here, autocommand shall be auto-deleted
|
||||
execute('bwipe xx')
|
||||
|
||||
-- Nothing shall be written
|
||||
execute('e xx')
|
||||
execute('e somefile')
|
||||
execute('e xx')
|
||||
|
||||
eq('buffer-local autocommand', curbuf_contents())
|
||||
end)
|
||||
|
||||
teardown(function()
|
||||
os.remove('xx')
|
||||
end)
|
||||
end)
|
31
test/functional/legacy/056_script_local_function_spec.lua
Normal file
31
test/functional/legacy/056_script_local_function_spec.lua
Normal file
@@ -0,0 +1,31 @@
|
||||
-- vim: set foldmethod=marker foldmarker=[[,]] :
|
||||
-- Test for script-local function.
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('source function', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
insert([[
|
||||
fun DoLast()
|
||||
call append(line('$'), "last line")
|
||||
endfun
|
||||
fun DoNothing()
|
||||
call append(line('$'), "nothing line")
|
||||
endfun
|
||||
nnoremap <buffer> _x :call DoNothing()<bar>call DoLast()<cr>]])
|
||||
|
||||
feed(':<C-R>=getline(1,3)<cr><cr>')
|
||||
feed(':<C-R>=getline(4,6)<cr><cr>')
|
||||
feed(':<C-R>=getline(7)<cr><cr>')
|
||||
feed('ggdG')
|
||||
feed('_xggdd')
|
||||
|
||||
expect([[
|
||||
nothing line
|
||||
last line]])
|
||||
end)
|
||||
end)
|
39
test/functional/legacy/081_coptions_movement_spec.lua
Normal file
39
test/functional/legacy/081_coptions_movement_spec.lua
Normal file
@@ -0,0 +1,39 @@
|
||||
-- Test for t movement command and 'cpo-;' setting
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('coptions', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
insert([[
|
||||
aaa two three four
|
||||
zzz
|
||||
yyy
|
||||
bbb yee yoo four
|
||||
ccc two three four
|
||||
ddd yee yoo four]])
|
||||
|
||||
execute('set cpo-=;')
|
||||
|
||||
feed('gg0tt;D')
|
||||
feed('j0fz;D')
|
||||
feed('j$Fy;D')
|
||||
feed('j$Ty;D')
|
||||
|
||||
execute('set cpo+=;')
|
||||
|
||||
feed('j0tt;;D')
|
||||
feed('j$Ty;;D')
|
||||
|
||||
expect([[
|
||||
aaa two
|
||||
z
|
||||
y
|
||||
bbb y
|
||||
ccc
|
||||
ddd yee y]])
|
||||
end)
|
||||
end)
|
50
test/functional/legacy/097_glob_path_spec.lua
Normal file
50
test/functional/legacy/097_glob_path_spec.lua
Normal file
@@ -0,0 +1,50 @@
|
||||
-- vim: set foldmethod=marker foldmarker=[[,]] :
|
||||
-- Test whether glob()/globpath() return correct results with certain escaped
|
||||
-- characters.
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('glob() and globpath()', function()
|
||||
setup(clear)
|
||||
|
||||
setup(function()
|
||||
os.execute("mkdir -p sautest/autoload")
|
||||
os.execute("touch sautest/autoload/Test104.vim")
|
||||
os.execute("touch sautest/autoload/footest.vim")
|
||||
end)
|
||||
|
||||
it('is working', function()
|
||||
-- Make sure glob() doesn't use the shell
|
||||
execute('set shell=doesnotexist')
|
||||
|
||||
-- Consistent sorting of file names
|
||||
execute('set nofileignorecase')
|
||||
|
||||
execute([[$put =glob('Xxx\{')]])
|
||||
execute([[$put =glob('Xxx\$')]])
|
||||
|
||||
execute('w! Xxx{')
|
||||
execute([[w! Xxx\$]])
|
||||
execute([[$put =glob('Xxx\{')]])
|
||||
execute([[$put =glob('Xxx\$')]])
|
||||
|
||||
execute("$put =string(globpath('sautest/autoload', '*.vim'))")
|
||||
execute("$put =string(globpath('sautest/autoload', '*.vim', 0, 1))")
|
||||
|
||||
expect([=[
|
||||
|
||||
|
||||
|
||||
Xxx{
|
||||
Xxx$
|
||||
'sautest/autoload/Test104.vim
|
||||
sautest/autoload/footest.vim'
|
||||
['sautest/autoload/Test104.vim', 'sautest/autoload/footest.vim']]=])
|
||||
end)
|
||||
|
||||
teardown(function()
|
||||
os.execute("rm -rf sautest Xxx{ Xxx$")
|
||||
end)
|
||||
end)
|
26
test/functional/legacy/102_fnameescape_spec.lua
Normal file
26
test/functional/legacy/102_fnameescape_spec.lua
Normal file
@@ -0,0 +1,26 @@
|
||||
-- Test if fnameescape is correct for special chars like!
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('fnameescape', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
execute('let fname = "Xspa ce"')
|
||||
execute('try', 'exe "w! " . fnameescape(fname)', "put='Space'", 'endtry')
|
||||
execute('let fname = "Xemark!"')
|
||||
execute('try', 'exe "w! " . fnameescape(fname)', "put='ExclamationMark'", 'endtry')
|
||||
|
||||
expect([[
|
||||
|
||||
Space
|
||||
ExclamationMark]])
|
||||
end)
|
||||
|
||||
teardown(function()
|
||||
os.remove("Xspa ce")
|
||||
os.remove("Xemark!")
|
||||
end)
|
||||
end)
|
25
test/functional/legacy/106_errorformat_spec.lua
Normal file
25
test/functional/legacy/106_errorformat_spec.lua
Normal file
@@ -0,0 +1,25 @@
|
||||
-- Tests for errorformat.
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('errorformat', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
execute("set efm=%EEEE%m,%WWWW%m,%+CCCC%.%#,%-GGGG%.%#")
|
||||
execute("cgetexpr ['WWWW', 'EEEE', 'CCCC']")
|
||||
execute("$put =strtrans(string(map(getqflist(), '[v:val.text, v:val.valid]')))")
|
||||
execute("cgetexpr ['WWWW', 'GGGG', 'EEEE', 'CCCC']")
|
||||
execute("$put =strtrans(string(map(getqflist(), '[v:val.text, v:val.valid]')))")
|
||||
execute("cgetexpr ['WWWW', 'GGGG', 'ZZZZ', 'EEEE', 'CCCC', 'YYYY']")
|
||||
execute("$put =strtrans(string(map(getqflist(), '[v:val.text, v:val.valid]')))")
|
||||
|
||||
expect([=[
|
||||
|
||||
[['W', 1], ['E^@CCCC', 1]]
|
||||
[['W', 1], ['E^@CCCC', 1]]
|
||||
[['W', 1], ['ZZZZ', 0], ['E^@CCCC', 1], ['YYYY', 0]]]=])
|
||||
end)
|
||||
end)
|
41
test/functional/legacy/autoformat_join_spec.lua
Normal file
41
test/functional/legacy/autoformat_join_spec.lua
Normal file
@@ -0,0 +1,41 @@
|
||||
-- vim: set foldmethod=marker foldmarker=[[,]] :
|
||||
-- Tests for setting the '[,'] marks when joining lines.
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('autoformat join', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
insert([[
|
||||
O sodales, ludite, vos qui
|
||||
attamen consulite per voster honur. Tua pulchra facies me fay planszer milies
|
||||
|
||||
This line.
|
||||
Should be joined with the next line
|
||||
and with this line
|
||||
|
||||
Results:]])
|
||||
|
||||
feed('gg')
|
||||
feed('0gqj<cr>')
|
||||
|
||||
execute([[let a=string(getpos("'[")).'/'.string(getpos("']"))]])
|
||||
execute("g/^This line/;'}-join")
|
||||
execute([[let b=string(getpos("'[")).'/'.string(getpos("']"))]])
|
||||
execute("$put ='First test: Start/End '.string(a)")
|
||||
execute("$put ='Second test: Start/End '.string(b)")
|
||||
|
||||
expect([[
|
||||
O sodales, ludite, vos qui attamen consulite per voster honur.
|
||||
Tua pulchra facies me fay planszer milies
|
||||
|
||||
This line. Should be joined with the next line and with this line
|
||||
|
||||
Results:
|
||||
First test: Start/End '[0, 1, 1, 0]/[0, 2, 1, 0]'
|
||||
Second test: Start/End '[0, 4, 11, 0]/[0, 4, 67, 0]']])
|
||||
end)
|
||||
end)
|
26
test/functional/legacy/changelist_spec.lua
Normal file
26
test/functional/legacy/changelist_spec.lua
Normal file
@@ -0,0 +1,26 @@
|
||||
-- Test changelist position after splitting window
|
||||
-- Set 'undolevels' to make changelist for sourced file
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('changelist', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
insert("1\n2")
|
||||
|
||||
feed('Gkylp')
|
||||
execute('set ul=100')
|
||||
|
||||
feed('Gylp')
|
||||
execute('set ul=100')
|
||||
|
||||
feed('gg')
|
||||
execute('vsplit')
|
||||
execute('try', 'normal g;', 'normal ggVGcpass', 'catch', 'normal ggVGcfail', 'endtry')
|
||||
|
||||
expect('pass')
|
||||
end)
|
||||
end)
|
24
test/functional/legacy/insertcount_spec.lua
Normal file
24
test/functional/legacy/insertcount_spec.lua
Normal file
@@ -0,0 +1,24 @@
|
||||
-- Tests for repeating insert and replace.
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('insertcount', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
insert([[
|
||||
First line
|
||||
Second line
|
||||
Last line]])
|
||||
|
||||
execute('/Second')
|
||||
feed('4gro')
|
||||
|
||||
expect([[
|
||||
First line
|
||||
oooond line
|
||||
Last line]])
|
||||
end)
|
||||
end)
|
20
test/functional/legacy/options_spec.lua
Normal file
20
test/functional/legacy/options_spec.lua
Normal file
@@ -0,0 +1,20 @@
|
||||
-- Test for ":options".
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('options', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
insert('result')
|
||||
|
||||
execute("let caught = 'ok'")
|
||||
execute('try', 'options', 'catch', 'let caught = v:throwpoint . "\n" . v:exception', 'endtry')
|
||||
execute('buf 1')
|
||||
execute('$put =caught')
|
||||
|
||||
expect("result\nok")
|
||||
end)
|
||||
end)
|
31
test/functional/legacy/utf8_spec.lua
Normal file
31
test/functional/legacy/utf8_spec.lua
Normal file
@@ -0,0 +1,31 @@
|
||||
-- Tests for Unicode manipulations
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('utf8', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
insert('start:')
|
||||
|
||||
execute('set encoding=utf-8')
|
||||
execute('new')
|
||||
execute('call setline(1, ["aaa", "あああ", "bbb"])')
|
||||
|
||||
-- Visual block Insert adjusts for multi-byte char
|
||||
feed('gg0l<C-V>jjIx<Esc>')
|
||||
|
||||
execute('let r = getline(1, "$")')
|
||||
execute('bwipeout!')
|
||||
execute('$put=r')
|
||||
execute('call garbagecollect(1)')
|
||||
|
||||
expect([[
|
||||
start:
|
||||
axaa
|
||||
xあああ
|
||||
bxbb]])
|
||||
end)
|
||||
end)
|
Reference in New Issue
Block a user