diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-08-08 22:26:48 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-08-08 22:26:48 +0200 |
commit | 09de17536dd84e43aed7a575183e320e8d980b68 (patch) | |
tree | b2dfaa4566cf4f372231d027d7b6903321373b72 /src/testdir | |
parent | 2147746cf816fad00e301c6638df28a4287c9aae (diff) | |
download | vim-09de17536dd84e43aed7a575183e320e8d980b68.zip |
patch 7.4.2183
Problem: Sign tests are old style.
Solution: Turn them into new style tests. (Dominique Pelle)
Diffstat (limited to 'src/testdir')
-rw-r--r-- | src/testdir/Make_all.mak | 2 | ||||
-rw-r--r-- | src/testdir/test_signs.in | 22 | ||||
-rw-r--r-- | src/testdir/test_signs.ok | 2 | ||||
-rw-r--r-- | src/testdir/test_signs.vim | 106 |
4 files changed, 107 insertions, 25 deletions
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak index 02f261108..0ed91d76f 100644 --- 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 \ diff --git a/src/testdir/test_signs.in b/src/testdir/test_signs.in deleted file mode 100644 index a2f15e932..000000000 --- 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 - diff --git a/src/testdir/test_signs.ok b/src/testdir/test_signs.ok deleted file mode 100644 index 1f8c977ec..000000000 --- a/src/testdir/test_signs.ok +++ /dev/null @@ -1,2 +0,0 @@ - -2 diff --git a/src/testdir/test_signs.vim b/src/testdir/test_signs.vim new file mode 100644 index 000000000..f280a3161 --- /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 |