Mercurial > vim
view src/testdir/test_ins_complete.vim @ 16150:b23048205589 v8.1.1080
patch 8.1.1080: when a screendump test fails, moving the file is a hassle
commit https://github.com/vim/vim/commit/ef7f0e367eeaf6fb31b1caa0e3de1a4b07e86af3
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Mar 30 15:59:51 2019 +0100
patch 8.1.1080: when a screendump test fails, moving the file is a hassle
Problem: When a screendump test fails, moving the file is a hassle.
Solution: Instead of appending ".failed" to the file name, keep the same
file name but put the screendump in the "failed" directory.
Then the file name only needs to be typed once when moving a
screendump.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 30 Mar 2019 16:00:06 +0100 |
parents | 5f8ddd2a7b92 |
children | 749a7c03de8d |
line wrap: on
line source
" Test for insert expansion func Test_ins_complete() edit test_ins_complete.vim " The files in the current directory interferes with the files " used by this test. So use a separate directory for the test. call mkdir('Xdir') cd Xdir set ff=unix call writefile(["test11\t36Gepeto\t/Tag/", \ "asd\ttest11file\t36G", \ "Makefile\tto\trun"], 'Xtestfile') call writefile(['', 'start of testfile', \ 'ru', \ 'run1', \ 'run2', \ 'STARTTEST', \ 'ENDTEST', \ 'end of testfile'], 'Xtestdata') set ff& enew! edit Xtestdata new call append(0, ['#include "Xtestfile"', '']) call cursor(2, 1) set cot= set cpt=.,w " add-expands (word from next line) from other window exe "normal iru\<C-N>\<C-N>\<C-X>\<C-N>\<Esc>\<C-A>" call assert_equal('run1 run3', getline('.')) " add-expands (current buffer first) exe "normal o\<C-P>\<C-X>\<C-N>" call assert_equal('run3 run3', getline('.')) " Local expansion, ends in an empty line (unless it becomes a global " expansion) exe "normal o\<C-X>\<C-P>\<C-P>\<C-P>\<C-P>\<C-P>" call assert_equal('', getline('.')) " starts Local and switches to global add-expansion exe "normal o\<C-X>\<C-P>\<C-P>\<C-X>\<C-X>\<C-N>\<C-X>\<C-N>\<C-N>" call assert_equal('run1 run2', getline('.')) set cpt=.,w,i " i-add-expands and switches to local exe "normal OM\<C-N>\<C-X>\<C-N>\<C-X>\<C-N>\<C-X>\<C-X>\<C-X>\<C-P>" call assert_equal("Makefile\tto\trun3", getline('.')) " add-expands lines (it would end in an empty line if it didn't ignored " itself) exe "normal o\<C-X>\<C-L>\<C-X>\<C-L>\<C-P>\<C-P>" call assert_equal("Makefile\tto\trun3", getline('.')) call assert_equal("Makefile\tto\trun3", getline(line('.') - 1)) set cpt=kXtestfile " checks k-expansion, and file expansion (use Xtest11 instead of test11, " because TEST11.OUT may match first on DOS) write Xtest11.one write Xtest11.two exe "normal o\<C-N>\<Esc>IX\<Esc>A\<C-X>\<C-F>\<C-N>" call assert_equal('Xtest11.two', getline('.')) " use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use CTRL-X " CTRL-F again to verify this doesn't cause trouble. exe "normal oXt\<C-X>\<C-F>\<BS>\<BS>\<BS>\<BS>\<BS>\<BS>\<BS>\<BS>\<C-X>\<C-F>" call assert_equal('Xtest11.one', getline('.')) normal ddk set cpt=w " checks make_cyclic in other window exe "normal oST\<C-N>\<C-P>\<C-P>\<C-P>\<C-P>" call assert_equal('STARTTEST', getline('.')) set cpt=u nohid " checks unloaded buffer expansion only exe "normal oEN\<C-N>" call assert_equal('ENDTEST', getline('.')) " checks adding mode abortion exe "normal ounl\<C-N>\<C-X>\<C-X>\<C-P>" call assert_equal('unless', getline('.')) set cpt=t,d def=^\\k* tags=Xtestfile notagbsearch " tag expansion, define add-expansion interrupted exe "normal o\<C-X>\<C-]>\<C-X>\<C-D>\<C-X>\<C-D>\<C-X>\<C-X>\<C-D>\<C-X>\<C-D>\<C-X>\<C-D>\<C-X>\<C-D>" call assert_equal('test11file 36Gepeto /Tag/ asd', getline('.')) " t-expansion exe "normal oa\<C-N>\<Esc>" call assert_equal('asd', getline('.')) %bw! call delete('Xtestfile') call delete('Xtest11.one') call delete('Xtest11.two') call delete('Xtestdata') set cpt& cot& def& tags& tagbsearch& hidden& cd .. call delete('Xdir', 'rf') endfunc func Test_omni_dash() func Omni(findstart, base) if a:findstart return 5 else echom a:base return ['-help', '-v'] endif endfunc set omnifunc=Omni new exe "normal Gofind -\<C-x>\<C-o>" call assert_equal("\n-\nmatch 1 of 2", execute(':2mess')) bwipe! delfunc Omni set omnifunc= endfunc func Test_completefunc_args() let s:args = [] func! CompleteFunc(findstart, base) let s:args += [[a:findstart, empty(a:base)]] endfunc new set completefunc=CompleteFunc call feedkeys("i\<C-X>\<C-U>\<Esc>", 'x') call assert_equal([1, 1], s:args[0]) call assert_equal(0, s:args[1][0]) set completefunc= let s:args = [] set omnifunc=CompleteFunc call feedkeys("i\<C-X>\<C-O>\<Esc>", 'x') call assert_equal([1, 1], s:args[0]) call assert_equal(0, s:args[1][0]) set omnifunc= bwipe! unlet s:args delfunc CompleteFunc endfunc func s:CompleteDone_CompleteFuncNone( findstart, base ) if a:findstart return 0 endif return v:none endfunc func s:CompleteDone_CompleteFuncDict( findstart, base ) if a:findstart return 0 endif return { \ 'words': [ \ { \ 'word': 'aword', \ 'abbr': 'wrd', \ 'menu': 'extra text', \ 'info': 'words are cool', \ 'kind': 'W', \ 'user_data': 'test' \ } \ ] \ } endfunc func s:CompleteDone_CheckCompletedItemNone() let s:called_completedone = 1 endfunc func s:CompleteDone_CheckCompletedItemDict() call assert_equal( 'aword', v:completed_item[ 'word' ] ) call assert_equal( 'wrd', v:completed_item[ 'abbr' ] ) call assert_equal( 'extra text', v:completed_item[ 'menu' ] ) call assert_equal( 'words are cool', v:completed_item[ 'info' ] ) call assert_equal( 'W', v:completed_item[ 'kind' ] ) call assert_equal( 'test', v:completed_item[ 'user_data' ] ) let s:called_completedone = 1 endfunc func Test_CompleteDoneNone() au CompleteDone * :call <SID>CompleteDone_CheckCompletedItemNone() set completefunc=<SID>CompleteDone_CompleteFuncNone execute "normal a\<C-X>\<C-U>\<C-Y>" set completefunc& call assert_true(s:called_completedone) let s:called_completedone = 0 au! CompleteDone endfunc func Test_CompleteDoneDict() au CompleteDone * :call <SID>CompleteDone_CheckCompletedItemDict() set completefunc=<SID>CompleteDone_CompleteFuncDict execute "normal a\<C-X>\<C-U>\<C-Y>" set completefunc& call assert_equal('test', v:completed_item[ 'user_data' ]) call assert_true(s:called_completedone) let s:called_completedone = 0 au! CompleteDone endfunc func s:CompleteDone_CompleteFuncDictNoUserData(findstart, base) if a:findstart return 0 endif return { \ 'words': [ \ { \ 'word': 'aword', \ 'abbr': 'wrd', \ 'menu': 'extra text', \ 'info': 'words are cool', \ 'kind': 'W' \ } \ ] \ } endfunc func s:CompleteDone_CheckCompletedItemDictNoUserData() call assert_equal( 'aword', v:completed_item[ 'word' ] ) call assert_equal( 'wrd', v:completed_item[ 'abbr' ] ) call assert_equal( 'extra text', v:completed_item[ 'menu' ] ) call assert_equal( 'words are cool', v:completed_item[ 'info' ] ) call assert_equal( 'W', v:completed_item[ 'kind' ] ) call assert_equal( '', v:completed_item[ 'user_data' ] ) let s:called_completedone = 1 endfunc func Test_CompleteDoneDictNoUserData() au CompleteDone * :call <SID>CompleteDone_CheckCompletedItemDictNoUserData() set completefunc=<SID>CompleteDone_CompleteFuncDictNoUserData execute "normal a\<C-X>\<C-U>\<C-Y>" set completefunc& call assert_equal('', v:completed_item[ 'user_data' ]) call assert_true(s:called_completedone) let s:called_completedone = 0 au! CompleteDone endfunc func s:CompleteDone_CompleteFuncList(findstart, base) if a:findstart return 0 endif return [ 'aword' ] endfunc func s:CompleteDone_CheckCompletedItemList() call assert_equal( 'aword', v:completed_item[ 'word' ] ) call assert_equal( '', v:completed_item[ 'abbr' ] ) call assert_equal( '', v:completed_item[ 'menu' ] ) call assert_equal( '', v:completed_item[ 'info' ] ) call assert_equal( '', v:completed_item[ 'kind' ] ) call assert_equal( '', v:completed_item[ 'user_data' ] ) let s:called_completedone = 1 endfunc func Test_CompleteDoneList() au CompleteDone * :call <SID>CompleteDone_CheckCompletedItemList() set completefunc=<SID>CompleteDone_CompleteFuncList execute "normal a\<C-X>\<C-U>\<C-Y>" set completefunc& call assert_equal('', v:completed_item[ 'user_data' ]) call assert_true(s:called_completedone) let s:called_completedone = 0 au! CompleteDone endfunc func Test_CompleteDone_undo() au CompleteDone * call append(0, "prepend1") new call setline(1, ["line1", "line2"]) call feedkeys("Go\<C-X>\<C-N>\<CR>\<ESC>", "tx") call assert_equal(["prepend1", "line1", "line2", "line1", ""], \ getline(1, '$')) undo call assert_equal(["line1", "line2"], getline(1, '$')) bwipe! au! CompleteDone endfunc " Check that when using feedkeys() typeahead does not interrupt searching for " completions. func Test_compl_feedkeys() new set completeopt=menuone,noselect call feedkeys("ajump ju\<C-X>\<C-N>\<C-P>\<ESC>", "tx") call assert_equal("jump jump", getline(1)) bwipe! set completeopt& endfunc