diff options
| author | James McCoy <jamessan@jamessan.com> | 2016-11-20 08:42:38 -0700 |
|---|---|---|
| committer | James McCoy <jamessan@jamessan.com> | 2016-11-20 14:07:46 -0500 |
| commit | 4fad66fbe637818b6b3d6bc5d21923ba72795040 (patch) | |
| tree | f35fd84189d2c4bebe739bfc5ad3fec1780d1f4c /src/nvim/testdir | |
| parent | 42033bc5bd4bd0f06b33391e12672900bc21b993 (diff) | |
| download | rneovim-4fad66fbe637818b6b3d6bc5d21923ba72795040.tar.gz rneovim-4fad66fbe637818b6b3d6bc5d21923ba72795040.tar.bz2 rneovim-4fad66fbe637818b6b3d6bc5d21923ba72795040.zip | |
vim-patch:8.0.0056
Problem: When setting 'filetype' there is no check for a valid name.
Solution: Only allow valid characters in 'filetype', 'syntax' and 'keymap'.
https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Diffstat (limited to 'src/nvim/testdir')
| -rw-r--r-- | src/nvim/testdir/test_options.vim | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_options.vim b/src/nvim/testdir/test_options.vim index cceb180189..93657f8fed 100644 --- a/src/nvim/testdir/test_options.vim +++ b/src/nvim/testdir/test_options.vim @@ -38,3 +38,53 @@ function! Test_path_keep_commas() set path& endfunction + +func Test_filetype_valid() + set ft=valid_name + call assert_equal("valid_name", &filetype) + set ft=valid-name + call assert_equal("valid-name", &filetype) + + call assert_fails(":set ft=wrong;name", "E474:") + call assert_fails(":set ft=wrong\\\\name", "E474:") + call assert_fails(":set ft=wrong\\|name", "E474:") + call assert_fails(":set ft=wrong/name", "E474:") + call assert_fails(":set ft=wrong\\\nname", "E474:") + call assert_equal("valid-name", &filetype) + + exe "set ft=trunc\x00name" + call assert_equal("trunc", &filetype) +endfunc + +func Test_syntax_valid() + set syn=valid_name + call assert_equal("valid_name", &syntax) + set syn=valid-name + call assert_equal("valid-name", &syntax) + + call assert_fails(":set syn=wrong;name", "E474:") + call assert_fails(":set syn=wrong\\\\name", "E474:") + call assert_fails(":set syn=wrong\\|name", "E474:") + call assert_fails(":set syn=wrong/name", "E474:") + call assert_fails(":set syn=wrong\\\nname", "E474:") + call assert_equal("valid-name", &syntax) + + exe "set syn=trunc\x00name" + call assert_equal("trunc", &syntax) +endfunc + +func Test_keymap_valid() + call assert_fails(":set kmp=valid_name", "E544:") + call assert_fails(":set kmp=valid_name", "valid_name") + call assert_fails(":set kmp=valid-name", "E544:") + call assert_fails(":set kmp=valid-name", "valid-name") + + call assert_fails(":set kmp=wrong;name", "E474:") + call assert_fails(":set kmp=wrong\\\\name", "E474:") + call assert_fails(":set kmp=wrong\\|name", "E474:") + call assert_fails(":set kmp=wrong/name", "E474:") + call assert_fails(":set kmp=wrong\\\nname", "E474:") + + call assert_fails(":set kmp=trunc\x00name", "E544:") + call assert_fails(":set kmp=trunc\x00name", "trunc") +endfunc |