Mercurial > vim
changeset 9816:74990ddf0813 v7.4.2183
commit https://github.com/vim/vim/commit/09de17536dd84e43aed7a575183e320e8d980b68
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Aug 8 22:26:48 2016 +0200
patch 7.4.2183
Problem: Sign tests are old style.
Solution: Turn them into new style tests. (Dominique Pelle)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 08 Aug 2016 22:30:06 +0200 |
parents | 84d7ba2b2b16 |
children | 5eb65818de71 |
files | src/Makefile src/testdir/Make_all.mak src/testdir/test_signs.in src/testdir/test_signs.ok src/testdir/test_signs.vim src/version.c |
diffstat | 6 files changed, 111 insertions(+), 27 deletions(-) [+] |
line wrap: on
line diff
--- a/src/Makefile +++ b/src/Makefile @@ -2032,7 +2032,6 @@ test1 \ test_marks \ test_nested_function \ test_search_mbyte \ - test_signs \ test_tagcase \ test_utf8 \ test_wordcount \ @@ -2110,10 +2109,11 @@ test_arglist \ test_regexp_utf8 \ test_reltime \ test_ruby \ - test_startup \ test_searchpos \ test_set \ + test_signs \ test_sort \ + test_startup \ test_stat \ test_statusline \ test_syn_attr \
--- a/src/testdir/Make_all.mak +++ b/src/testdir/Make_all.mak @@ -102,7 +102,6 @@ SCRIPTS_ALL = \ test_marks.out \ test_nested_function.out \ test_search_mbyte.out \ - test_signs.out \ test_tagcase.out \ test_utf8.out \ test_wordcount.out \ @@ -184,6 +183,7 @@ NEW_TESTS = test_arglist.res \ test_perl.res \ test_quickfix.res \ test_ruby.res \ + test_signs.res \ test_startup.res \ test_stat.res \ test_syntax.res \
deleted file mode 100644 --- a/src/testdir/test_signs.in +++ /dev/null @@ -1,22 +0,0 @@ -Tests for signs -STARTTEST -:so small.vim -:if !has("signs") -: e! test.ok -: wq! test.out -:endif -:" -:sign define JumpSign text=x -:exe 'sign place 42 line=2 name=JumpSign buffer=' . bufnr('') -:" Split the window to the bottom to verify :sign-jump will stay in the current -:" window if the buffer is displayed there -:bot split -:exe 'sign jump 42 buffer=' . bufnr('') -:call append(line('$'), winnr()) -:$-1,$w! test.out -ENDTEST - -STARTTEST -:qa! -ENDTEST -
new file mode 100644 --- /dev/null +++ b/src/testdir/test_signs.vim @@ -0,0 +1,106 @@ +" Test for signs + +if !has('signs') + finish +endif + +func Test_sign() + new + call setline(1, ['a', 'b', 'c', 'd']) + + sign define Sign1 text=x + sign define Sign2 text=y + + " Test listing signs. + let a=execute('sign list') + call assert_equal("\nsign Sign1 text=x \nsign Sign2 text=y ", a) + + let a=execute('sign list Sign1') + call assert_equal("\nsign Sign1 text=x ", a) + + " Place the sign at line 3,then check that we can jump to it. + exe 'sign place 42 line=3 name=Sign1 buffer=' . bufnr('') + 1 + exe 'sign jump 42 buffer=' . bufnr('') + call assert_equal('c', getline('.')) + + " Can't change sign. + call assert_fails("exe 'sign place 43 name=Sign1 buffer=' . bufnr('')", 'E885:') + + let a=execute('sign place') + call assert_equal("\n--- Signs ---\nSigns for [NULL]:\n line=3 id=42 name=Sign1\n", a) + + " Unplace the sign and try jumping to it again should now fail. + sign unplace 42 + 1 + call assert_fails("exe 'sign jump 42 buffer=' . bufnr('')", 'E157:') + call assert_equal('a', getline('.')) + + " Unplace sign on current line. + exe 'sign place 43 line=4 name=Sign2 buffer=' . bufnr('') + 4 + sign unplace + let a=execute('sign place') + call assert_equal("\n--- Signs ---\n", a) + + " Try again to unplace sign on current line, it should fail this time. + call assert_fails('sign unplace', 'E159:') + + " Unplace all signs. + exe 'sign place 42 line=3 name=Sign1 buffer=' . bufnr('') + sign unplace * + let a=execute('sign place') + call assert_equal("\n--- Signs ---\n", a) + + " After undefining the sign, we should no longer be able to place it. + sign undefine Sign1 + sign undefine Sign2 + call assert_fails("exe 'sign place 42 line=3 name=Sign1 buffer=' . bufnr('')", 'E155:') + +endfunc + +func Test_sign_completion() + sign define Sign1 text=x + sign define Sign2 text=y + + call feedkeys(":sign \<C-A>\<C-B>\"\<CR>", 'tx') + call assert_equal('"sign define jump list place undefine unplace', @:) + + call feedkeys(":sign define Sign \<C-A>\<C-B>\"\<CR>", 'tx') + call assert_equal('"sign define Sign icon= linehl= text= texthl=', @:) + + call feedkeys(":sign define Sign linehl=Spell\<C-A>\<C-B>\"\<CR>", 'tx') + call assert_equal('"sign define Sign linehl=SpellBad SpellCap SpellLocal SpellRare', @:) + + call feedkeys(":sign undefine \<C-A>\<C-B>\"\<CR>", 'tx') + call assert_equal('"sign undefine Sign1 Sign2', @:) + + call feedkeys(":sign place 1 \<C-A>\<C-B>\"\<CR>", 'tx') + call assert_equal('"sign place 1 buffer= file= line= name=', @:) + + call feedkeys(":sign place 1 name=\<C-A>\<C-B>\"\<CR>", 'tx') + call assert_equal('"sign place 1 name=Sign1 Sign2', @:) + + call feedkeys(":sign unplace 1 \<C-A>\<C-B>\"\<CR>", 'tx') + call assert_equal('"sign unplace 1 buffer= file=', @:) + + call feedkeys(":sign list \<C-A>\<C-B>\"\<CR>", 'tx') + call assert_equal('"sign list Sign1 Sign2', @:) + + call feedkeys(":sign jump 1 \<C-A>\<C-B>\"\<CR>", 'tx') + call assert_equal('"sign jump 1 buffer= file=', @:) + + sign undefine Sign1 + sign undefine Sign2 + +endfunc + +func Test_sign_invalid_commands() + call assert_fails('sign', 'E471:') + call assert_fails('sign xxx', 'E160:') + call assert_fails('sign define', 'E156:') + call assert_fails('sign undefine', 'E156:') + call assert_fails('sign list xxx', 'E155:') + call assert_fails('sign place 1 buffer=', 'E158:') + call assert_fails('sign define Sign2 text=', 'E239:') +endfunc