changeset 10823:a7da553980ee v8.0.0301

patch 8.0.0301: not enough testing for setting options commit https://github.com/vim/vim/commit/698f8b207bbfefa1cbbd7361caf5412cb3416534 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Feb 4 15:53:32 2017 +0100 patch 8.0.0301: not enough testing for setting options Problem: No tests for ":set completion" and various errors of the :set command. Solution: Add more :set tests. (Dominique Pelle, closes #1440)
author Christian Brabandt <cb@256bit.org>
date Sat, 04 Feb 2017 16:00:04 +0100
parents 3ae958a820b5
children fa27bdf7bf41
files src/testdir/test_options.vim src/version.c
diffstat 2 files changed, 93 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_options.vim
+++ b/src/testdir/test_options.vim
@@ -128,4 +128,95 @@ endfunc
 
 func Test_thesaurus()
   call Check_dir_option('thesaurus')
+endfun
+
+func Test_set_completion()
+  call feedkeys(":set di\<C-A>\<C-B>\"\<CR>", 'tx')
+  call assert_equal('"set dictionary diff diffexpr diffopt digraph directory display', @:)
+
+  " Expand boolan options. When doing :set no<Tab>
+  " vim displays the options names without "no" but completion uses "no...".
+  call feedkeys(":set nodi\<C-A>\<C-B>\"\<CR>", 'tx')
+  call assert_equal('"set nodiff digraph', @:)
+
+  call feedkeys(":set invdi\<C-A>\<C-B>\"\<CR>", 'tx')
+  call assert_equal('"set invdiff digraph', @:)
+
+  " Expand abbreviation of options.
+  call feedkeys(":set ts\<C-A>\<C-B>\"\<CR>", 'tx')
+  call assert_equal('"set tabstop thesaurus ttyscroll', @:)
+
+  " Expand current value
+  call feedkeys(":set fileencodings=\<C-A>\<C-B>\"\<CR>", 'tx')
+  call assert_equal('"set fileencodings=ucs-bom,utf-8,default,latin1', @:)
+
+  call feedkeys(":set fileencodings:\<C-A>\<C-B>\"\<CR>", 'tx')
+  call assert_equal('"set fileencodings:ucs-bom,utf-8,default,latin1', @:)
+
+  " Expand key codes.
+  call feedkeys(":set <H\<C-A>\<C-B>\"\<CR>", 'tx')
+  call assert_equal('"set <Help> <Home>', @:)
+
+  " Expand terminal options.
+  call feedkeys(":set t_A\<C-A>\<C-B>\"\<CR>", 'tx')
+  call assert_equal('"set t_AB t_AF t_AL', @:)
+
+  " Expand directories.
+  call feedkeys(":set cdpath=./\<C-A>\<C-B>\"\<CR>", 'tx')
+  call assert_match(' ./samples/ ', @:)
+  call assert_notmatch(' ./small.vim ', @:)
+
+  " Expand files and directories.
+  call feedkeys(":set tags=./\<C-A>\<C-B>\"\<CR>", 'tx')
+  call assert_match(' ./samples/.* ./small.vim', @:)
+
+  call feedkeys(":set tags=./\\\\ dif\<C-A>\<C-B>\"\<CR>", 'tx')
+  call assert_equal('"set tags=./\\ diff diffexpr diffopt', @:)
 endfunc
+
+func Test_set_errors()
+  call assert_fails('set scroll=-1', 'E49:')
+  call assert_fails('set backupcopy=', 'E474:')
+  call assert_fails('set regexpengine=3', 'E474:')
+  call assert_fails('set history=10001', 'E474:')
+  call assert_fails('set numberwidth=11', 'E474:')
+  call assert_fails('set colorcolumn=-a')
+  call assert_fails('set colorcolumn=a')
+  call assert_fails('set colorcolumn=1,')
+  call assert_fails('set cmdheight=-1', 'E487:')
+  call assert_fails('set cmdwinheight=-1', 'E487:')
+  if has('conceal')
+    call assert_fails('set conceallevel=-1', 'E487:')
+    call assert_fails('set conceallevel=4', 'E474:')
+  endif
+  call assert_fails('set helpheight=-1', 'E487:')
+  call assert_fails('set history=-1', 'E487:')
+  call assert_fails('set report=-1', 'E487:')
+  call assert_fails('set shiftwidth=-1', 'E487:')
+  call assert_fails('set sidescroll=-1', 'E487:')
+  call assert_fails('set tabstop=-1', 'E487:')
+  call assert_fails('set textwidth=-1', 'E487:')
+  call assert_fails('set timeoutlen=-1', 'E487:')
+  call assert_fails('set updatecount=-1', 'E487:')
+  call assert_fails('set updatetime=-1', 'E487:')
+  call assert_fails('set winheight=-1', 'E487:')
+  call assert_fails('set tabstop!', 'E488:')
+  call assert_fails('set xxx', 'E518:')
+  call assert_fails('set beautify?', 'E519:')
+  call assert_fails('set undolevels=x', 'E521:')
+  call assert_fails('set tabstop=', 'E521:')
+  call assert_fails('set comments=-', 'E524:')
+  call assert_fails('set comments=a', 'E525:')
+  call assert_fails('set foldmarker=x', 'E536:')
+  call assert_fails('set commentstring=x', 'E537:')
+  call assert_fails('set complete=x', 'E539:')
+  call assert_fails('set statusline=%{', 'E540:')
+  call assert_fails('set statusline=' . repeat("%p", 81), 'E541:')
+  call assert_fails('set statusline=%(', 'E542:')
+  call assert_fails('set guicursor=x', 'E545:')
+  call assert_fails('set backupext=~ patchmode=~', 'E589:')
+  call assert_fails('set winminheight=10 winheight=9', 'E591:')
+  call assert_fails('set winminwidth=10 winwidth=9', 'E592:')
+  call assert_fails("set showbreak=\x01", 'E595:')
+  call assert_fails('set t_foo=', 'E846:')
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    301,
+/**/
     300,
 /**/
     299,