1" Test for options 2 3function! Test_whichwrap() 4 set whichwrap=b,s 5 call assert_equal('b,s', &whichwrap) 6 7 set whichwrap+=h,l 8 call assert_equal('b,s,h,l', &whichwrap) 9 10 set whichwrap+=h,l 11 call assert_equal('b,s,h,l', &whichwrap) 12 13 set whichwrap+=h,l 14 call assert_equal('b,s,h,l', &whichwrap) 15 16 set whichwrap& 17endfunction 18 19function Test_options() 20 let caught = 'ok' 21 try 22 options 23 catch 24 let caught = v:throwpoint . "\n" . v:exception 25 endtry 26 call assert_equal('ok', caught) 27 28 " close option-window 29 close 30endfunction 31 32function Test_path_keep_commas() 33 " Test that changing 'path' keeps two commas. 34 set path=foo,,bar 35 set path-=bar 36 set path+=bar 37 call assert_equal('foo,,bar', &path) 38 39 set path& 40endfunction 41 42func Test_signcolumn() 43 if has('signs') 44 call assert_equal("auto", &signcolumn) 45 set signcolumn=yes 46 set signcolumn=no 47 call assert_fails('set signcolumn=nope') 48 endif 49endfunc 50 51func Test_filetype_valid() 52 if !has('autocmd') 53 return 54 endif 55 set ft=valid_name 56 call assert_equal("valid_name", &filetype) 57 set ft=valid-name 58 call assert_equal("valid-name", &filetype) 59 60 call assert_fails(":set ft=wrong;name", "E474:") 61 call assert_fails(":set ft=wrong\\\\name", "E474:") 62 call assert_fails(":set ft=wrong\\|name", "E474:") 63 call assert_fails(":set ft=wrong/name", "E474:") 64 call assert_fails(":set ft=wrong\\\nname", "E474:") 65 call assert_equal("valid-name", &filetype) 66 67 exe "set ft=trunc\x00name" 68 call assert_equal("trunc", &filetype) 69endfunc 70 71func Test_syntax_valid() 72 if !has('syntax') 73 return 74 endif 75 set syn=valid_name 76 call assert_equal("valid_name", &syntax) 77 set syn=valid-name 78 call assert_equal("valid-name", &syntax) 79 80 call assert_fails(":set syn=wrong;name", "E474:") 81 call assert_fails(":set syn=wrong\\\\name", "E474:") 82 call assert_fails(":set syn=wrong\\|name", "E474:") 83 call assert_fails(":set syn=wrong/name", "E474:") 84 call assert_fails(":set syn=wrong\\\nname", "E474:") 85 call assert_equal("valid-name", &syntax) 86 87 exe "set syn=trunc\x00name" 88 call assert_equal("trunc", &syntax) 89endfunc 90 91func Test_keymap_valid() 92 if !has('keymap') 93 return 94 endif 95 call assert_fails(":set kmp=valid_name", "E544:") 96 call assert_fails(":set kmp=valid_name", "valid_name") 97 call assert_fails(":set kmp=valid-name", "E544:") 98 call assert_fails(":set kmp=valid-name", "valid-name") 99 100 call assert_fails(":set kmp=wrong;name", "E474:") 101 call assert_fails(":set kmp=wrong\\\\name", "E474:") 102 call assert_fails(":set kmp=wrong\\|name", "E474:") 103 call assert_fails(":set kmp=wrong/name", "E474:") 104 call assert_fails(":set kmp=wrong\\\nname", "E474:") 105 106 call assert_fails(":set kmp=trunc\x00name", "E544:") 107 call assert_fails(":set kmp=trunc\x00name", "trunc") 108endfunc 109 110func Check_dir_option(name) 111 " Check that it's possible to set the option. 112 exe 'set ' . a:name . '=/usr/share/dict/words' 113 call assert_equal('/usr/share/dict/words', eval('&' . a:name)) 114 exe 'set ' . a:name . '=/usr/share/dict/words,/and/there' 115 call assert_equal('/usr/share/dict/words,/and/there', eval('&' . a:name)) 116 exe 'set ' . a:name . '=/usr/share/dict\ words' 117 call assert_equal('/usr/share/dict words', eval('&' . a:name)) 118 119 " Check rejecting weird characters. 120 call assert_fails("set " . a:name . "=/not&there", "E474:") 121 call assert_fails("set " . a:name . "=/not>there", "E474:") 122 call assert_fails("set " . a:name . "=/not.*there", "E474:") 123endfunc 124 125func Test_dictionary() 126 call Check_dir_option('dictionary') 127endfunc 128 129func Test_thesaurus() 130 call Check_dir_option('thesaurus') 131endfunc 132