diff options
author | Jan Edmund Lazo <janedmundlazo@hotmail.com> | 2018-07-05 11:16:14 -0400 |
---|---|---|
committer | Jan Edmund Lazo <janedmundlazo@hotmail.com> | 2018-07-06 23:51:46 -0400 |
commit | 37757b4f09f71cc3c72391e01ad4efdca87d6b43 (patch) | |
tree | e013817bf32e7ddc1bf983d6c855c862ee6cd36d | |
parent | 41ccdb1ef204f61a4e923c9c0fbae2f1d0f4db36 (diff) | |
download | rneovim-37757b4f09f71cc3c72391e01ad4efdca87d6b43.tar.gz rneovim-37757b4f09f71cc3c72391e01ad4efdca87d6b43.tar.bz2 rneovim-37757b4f09f71cc3c72391e01ad4efdca87d6b43.zip |
vim-patch:8.0.1253: 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#2272)
https://github.com/vim/vim/commit/430dc5d360166ca5bb6a73f2c87ae53e09282ecb
Skip Test_tag_file_encoding.
083_tag_search_with_file_encoding_spec.lua handles the same test case.
-rw-r--r-- | src/nvim/testdir/Makefile | 2 | ||||
-rw-r--r-- | src/nvim/testdir/test40.in | 63 | ||||
-rw-r--r-- | src/nvim/testdir/test40.ok | 11 | ||||
-rw-r--r-- | src/nvim/testdir/test_autocmd.vim | 1 | ||||
-rw-r--r-- | src/nvim/testdir/test_fold.vim | 167 | ||||
-rw-r--r-- | src/nvim/testdir/test_swap.vim | 48 | ||||
-rw-r--r-- | src/nvim/testdir/test_tagjump.vim | 56 |
7 files changed, 272 insertions, 76 deletions
diff --git a/src/nvim/testdir/Makefile b/src/nvim/testdir/Makefile index a161f14bc8..181d8bb33f 100644 --- a/src/nvim/testdir/Makefile +++ b/src/nvim/testdir/Makefile @@ -17,7 +17,6 @@ SCRIPTS_DEFAULT = \ test14.out \ test24.out \ test37.out \ - test40.out \ test42.out \ test48.out \ test52.out \ @@ -102,6 +101,7 @@ NEW_TESTS ?= \ test_stat.res \ test_startup.res \ test_substitute.res \ + test_swap.res \ test_syntax.res \ test_system.res \ test_tab.res \ diff --git a/src/nvim/testdir/test40.in b/src/nvim/testdir/test40.in deleted file mode 100644 index b0285709e5..0000000000 --- a/src/nvim/testdir/test40.in +++ /dev/null @@ -1,63 +0,0 @@ -Test for "*Cmd" autocommands - -STARTTEST -:set wildchar=^E -:/^start/,$w! Xxx " write lines below to Xxx -:au BufReadCmd XtestA 0r Xxx|$del -:e XtestA " will read text of Xxd instead -:au BufWriteCmd XtestA call append(line("$"), "write") -:w " will append a line to the file -:r XtestA " should not read anything -: " now we have: -: " 1 start of Xxx -: " 2 test40 -: " 3 end of Xxx -: " 4 write -:au FileReadCmd XtestB '[r Xxx -:2r XtestB " will read Xxx below line 2 instead -: " 1 start of Xxx -: " 2 test40 -: " 3 start of Xxx -: " 4 test40 -: " 5 end of Xxx -: " 6 end of Xxx -: " 7 write -:au FileWriteCmd XtestC '[,']copy $ -4GA1 -:4,5w XtestC " will copy lines 4 and 5 to the end -:r XtestC " should not read anything -: " 1 start of Xxx -: " 2 test40 -: " 3 start of Xxx -: " 4 test401 -: " 5 end of Xxx -: " 6 end of Xxx -: " 7 write -: " 8 test401 -: " 9 end of Xxx -:au FILEAppendCmd XtestD '[,']w! test.out -:w >>XtestD " will write all lines to test.out -:$r XtestD " should not read anything -:$w >>test.out " append "end of Xxx" to test.out -:au BufReadCmd XtestE 0r test.out|$del -:sp XtestE " split window with test.out -5Goasdf:" -:au BufWriteCmd XtestE w! test.out -:wall " will write other window to test.out -: " 1 start of Xxx -: " 2 test40 -: " 3 start of Xxx -: " 4 test401 -: " 5 end of Xxx -: " 6 asdf -: " 7 end of Xxx -: " 8 write -: " 9 test401 -: " 10 end of Xxx -: " 11 end of Xxx -:qa! -ENDTEST - -start of Xxx - test40 -end of Xxx diff --git a/src/nvim/testdir/test40.ok b/src/nvim/testdir/test40.ok deleted file mode 100644 index b6501394f9..0000000000 --- a/src/nvim/testdir/test40.ok +++ /dev/null @@ -1,11 +0,0 @@ -start of Xxx - test40 -start of Xxx - test401 -end of Xxx -asdf -end of Xxx -write - test401 -end of Xxx -end of Xxx diff --git a/src/nvim/testdir/test_autocmd.vim b/src/nvim/testdir/test_autocmd.vim index d42373920f..772b3f721c 100644 --- a/src/nvim/testdir/test_autocmd.vim +++ b/src/nvim/testdir/test_autocmd.vim @@ -1,6 +1,5 @@ " Tests for autocommands - func! s:cleanup_buffers() abort for bnr in range(1, bufnr('$')) if bufloaded(bnr) && bufnr('%') != bnr diff --git a/src/nvim/testdir/test_fold.vim b/src/nvim/testdir/test_fold.vim index 951df349ce..6917378890 100644 --- a/src/nvim/testdir/test_fold.vim +++ b/src/nvim/testdir/test_fold.vim @@ -467,3 +467,170 @@ func Test_fold_error() set foldmethod& bw! endfunc + +" Various fold related tests + +" Basic test if a fold can be created, opened, moving to the end and closed +func Test_fold_manual() + enew! + set fdm=manual + + let content = ['1 aa', '2 bb', '3 cc'] + call append(0, content) + call cursor(1, 1) + normal zf2j + call assert_equal('1 aa', getline(foldclosed('.'))) + normal zo + call assert_equal(-1, foldclosed('.')) + normal ]z + call assert_equal('3 cc', getline('.')) + normal zc + call assert_equal('1 aa', getline(foldclosed('.'))) + + set fdm& + enew! +endfunc + +" test folding with markers. +func Test_fold_marker() + enew! + set fdm=marker fdl=1 fdc=3 + + let content = ['4 dd {{{', '5 ee {{{ }}}', '6 ff }}}'] + call append(0, content) + call cursor(2, 1) + call assert_equal(2, foldlevel('.')) + normal [z + call assert_equal(1, foldlevel('.')) + exe "normal jo{{ \<Esc>r{jj" + call assert_equal(1, foldlevel('.')) + normal kYpj + call assert_equal(0, foldlevel('.')) + + set fdm& fdl& fdc& + enew! +endfunc + +" test folding with indent +func Test_fold_indent() + enew! + set fdm=indent sw=2 + + let content = ['1 aa', '2 bb', '3 cc'] + call append(0, content) + call cursor(2, 1) + exe "normal i \<Esc>jI " + call assert_equal(2, foldlevel('.')) + normal k + call assert_equal(1, foldlevel('.')) + + set fdm& sw& + enew! +endfunc + +" test syntax folding +func Test_fold_syntax() + if !has('syntax') + return + endif + + enew! + set fdm=syntax fdl=0 + + syn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3 + syn region Fd1 start="ee" end="ff" fold contained + syn region Fd2 start="gg" end="hh" fold contained + syn region Fd3 start="commentstart" end="commentend" fold contained + let content = ['3 cc', '4 dd {{{', '5 ee {{{ }}}', '{{{{', '6 ff }}}', + \ '6 ff }}}', '7 gg', '8 hh', '9 ii'] + call append(0, content) + normal Gzk + call assert_equal('9 ii', getline('.')) + normal k + call assert_equal('3 cc', getline('.')) + exe "normal jAcommentstart \<Esc>Acommentend" + set fdl=1 + normal 3j + call assert_equal('7 gg', getline('.')) + set fdl=0 + exe "normal zO\<C-L>j" + call assert_equal('8 hh', getline('.')) + syn clear Fd1 Fd2 Fd3 Hup + + set fdm& fdl& + enew! +endfunc + +func Flvl() + let l = getline(v:lnum) + if l =~ "bb$" + return 2 + elseif l =~ "gg$" + return "s1" + elseif l =~ "ii$" + return ">2" + elseif l =~ "kk$" + return "0" + endif + return "=" +endfun + +" test expression folding +func Test_fold_expr() + enew! + set fdm=expr fde=Flvl() + + let content = ['1 aa', + \ '2 bb', + \ '3 cc', + \ '4 dd {{{commentstart commentend', + \ '5 ee {{{ }}}', + \ '{{{', + \ '6 ff }}}', + \ '6 ff }}}', + \ ' 7 gg', + \ ' 8 hh', + \ '9 ii', + \ 'a jj', + \ 'b kk'] + call append(0, content) + call cursor(1, 1) + exe "normal /bb$\<CR>" + call assert_equal(2, foldlevel('.')) + exe "normal /hh$\<CR>" + call assert_equal(1, foldlevel('.')) + exe "normal /ii$\<CR>" + call assert_equal(2, foldlevel('.')) + exe "normal /kk$\<CR>" + call assert_equal(0, foldlevel('.')) + + set fdm& fde& + enew! +endfunc + +" Bug with fdm=indent and moving folds +" Moving a fold a few times, messes up the folds below the moved fold. +" Fixed by 7.4.700 +func Test_fold_move() + enew! + set fdm=indent sw=2 fdl=0 + + let content = ['', '', 'Line1', ' Line2', ' Line3', + \ 'Line4', ' Line5', ' Line6', + \ 'Line7', ' Line8', ' Line9'] + call append(0, content) + normal zM + call cursor(4, 1) + move 2 + move 1 + call assert_equal(7, foldclosed(7)) + call assert_equal(8, foldclosedend(7)) + call assert_equal(0, foldlevel(9)) + call assert_equal(10, foldclosed(10)) + call assert_equal(11, foldclosedend(10)) + call assert_equal('+-- 2 lines: Line2', foldtextresult(2)) + call assert_equal('+-- 2 lines: Line8', foldtextresult(10)) + + set fdm& sw& fdl& + enew! +endfunc diff --git a/src/nvim/testdir/test_swap.vim b/src/nvim/testdir/test_swap.vim new file mode 100644 index 0000000000..245e1f18bb --- /dev/null +++ b/src/nvim/testdir/test_swap.vim @@ -0,0 +1,48 @@ +" Tests for the swap feature + +" Tests for 'directory' option. +func Test_swap_directory() + if !has("unix") + return + endif + let content = ['start of testfile', + \ 'line 2 Abcdefghij', + \ 'line 3 Abcdefghij', + \ 'end of testfile'] + call writefile(content, 'Xtest1') + + " '.', swap file in the same directory as file + set dir=.,~ + + " Verify that the swap file doesn't exist in the current directory + call assert_equal([], glob(".Xtest1*.swp", 1, 1, 1)) + edit Xtest1 + let swfname = split(execute("swapname"))[0] + call assert_equal([swfname], glob(swfname, 1, 1, 1)) + + " './dir', swap file in a directory relative to the file + set dir=./Xtest2,.,~ + + call mkdir("Xtest2") + edit Xtest1 + call assert_equal([], glob(swfname, 1, 1, 1)) + let swfname = "Xtest2/Xtest1.swp" + call assert_equal(swfname, split(execute("swapname"))[0]) + call assert_equal([swfname], glob("Xtest2/*", 1, 1, 1)) + + " 'dir', swap file in directory relative to the current dir + set dir=Xtest.je,~ + + call mkdir("Xtest.je") + call writefile(content, 'Xtest2/Xtest3') + edit Xtest2/Xtest3 + call assert_equal(["Xtest2/Xtest3"], glob("Xtest2/*", 1, 1, 1)) + let swfname = "Xtest.je/Xtest3.swp" + call assert_equal(swfname, split(execute("swapname"))[0]) + call assert_equal([swfname], glob("Xtest.je/*", 1, 1, 1)) + + set dir& + call delete("Xtest1") + call delete("Xtest2", "rf") + call delete("Xtest.je", "rf") +endfunc diff --git a/src/nvim/testdir/test_tagjump.vim b/src/nvim/testdir/test_tagjump.vim index dbab8d9e26..268a153077 100644 --- a/src/nvim/testdir/test_tagjump.vim +++ b/src/nvim/testdir/test_tagjump.vim @@ -174,4 +174,60 @@ func Test_tag_symbolic() %bwipe! endfunc +" Tests for tag search with !_TAG_FILE_ENCODING. +" Depends on the test83-tags2 and test83-tags3 files. +func Test_tag_file_encoding() + throw 'skipped: Nvim removed test83-tags2, test83-tags3' + if has('vms') + return + endif + + if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21" + return + endif + + let save_enc = &encoding + set encoding=utf8 + + let content = ['text for tags1', 'abcdefghijklmnopqrs'] + call writefile(content, 'Xtags1.txt') + let content = ['text for tags2', 'ABC'] + call writefile(content, 'Xtags2.txt') + let content = ['text for tags3', 'ABC'] + call writefile(content, 'Xtags3.txt') + let content = ['!_TAG_FILE_ENCODING utf-8 //', 'abcdefghijklmnopqrs Xtags1.txt /abcdefghijklmnopqrs'] + call writefile(content, 'Xtags1') + + " case1: + new + set tags=Xtags1 + tag abcdefghijklmnopqrs + call assert_equal('Xtags1.txt', expand('%:t')) + call assert_equal('abcdefghijklmnopqrs', getline('.')) + close + + " case2: + new + set tags=test83-tags2 + tag /.BC + call assert_equal('Xtags2.txt', expand('%:t')) + call assert_equal('ABC', getline('.')) + close + + " case3: + new + set tags=test83-tags3 + tag abc50 + call assert_equal('Xtags3.txt', expand('%:t')) + call assert_equal('ABC', getline('.')) + close + + set tags& + let &encoding = save_enc + call delete('Xtags1.txt') + call delete('Xtags2.txt') + call delete('Xtags3.txt') + call delete('Xtags1') +endfunc + " vim: shiftwidth=2 sts=2 expandtab |