diff options
author | mattn <mattn.jp@gmail.com> | 2020-01-30 09:14:46 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-30 09:14:46 +0900 |
commit | 6690922a98b1c623c5703d5cacde7adf795124cd (patch) | |
tree | a5179aa361361ece40039add1bf83db4ef503ac2 /test | |
parent | b881ac53a671c1ebffc38ebb584b9a851e2cfb70 (diff) | |
parent | 00eba157bc8c50501943dee8cdab7c70c13c39d6 (diff) | |
download | vim-lsp-settings-6690922a98b1c623c5703d5cacde7adf795124cd.tar.gz vim-lsp-settings-6690922a98b1c623c5703d5cacde7adf795124cd.tar.bz2 vim-lsp-settings-6690922a98b1c623c5703d5cacde7adf795124cd.zip |
Merge pull request #119 from mattn/testable
Testable
Diffstat (limited to 'test')
-rw-r--r-- | test/.themisrc | 3 | ||||
-rw-r--r-- | test/lsp_settings.vimspec | 84 | ||||
-rw-r--r-- | test/lsp_settings/utils.vimspec | 43 |
3 files changed, 130 insertions, 0 deletions
diff --git a/test/.themisrc b/test/.themisrc new file mode 100644 index 0000000..d73cbf9 --- /dev/null +++ b/test/.themisrc @@ -0,0 +1,3 @@ +set encoding=utf-8 +call themis#option('recursive', 1) +call themis#helper('command').with(themis#helper('assert')) diff --git a/test/lsp_settings.vimspec b/test/lsp_settings.vimspec new file mode 100644 index 0000000..30995f6 --- /dev/null +++ b/test/lsp_settings.vimspec @@ -0,0 +1,84 @@ +Describe lsp_settings + Describe lsp_settings#get + It should return configuration value from key and name + Assert Equals(lsp_settings#get('pyls', 'cmd', 'bad'), 'bad') + let g:lsp_settings = {'pyls': {'cmd': 'good'}} + Assert Equals(lsp_settings#get('pyls', 'cmd', 'bad'), 'good') + unlet g:lsp_settings + End + + It should return default value with lambda + Assert Equals(lsp_settings#get('pyls', 'cmd', {key, name-> 'good'}), 'good') + End + End + + Describe lsp_settings#executable + It should return command is executable in $PATH + if has('win32') + Assert Equals(lsp_settings#executable('cmd'), 1) + else + Assert Equals(lsp_settings#executable('sh'), 1) + endif + Assert Equals(lsp_settings#executable('unknown-command'), 0) + End + + It should return 0 when command is not in server/foo-bar/foo-bar + let l:servers_dir = lsp_settings#servers_dir() + + try + call delete(l:servers_dir . '/foo-bar', 'rf') + call mkdir(l:servers_dir . '/foo-bar', 'p') + Assert Equals(lsp_settings#executable('foo-bar'), 0) + finally + call delete(l:servers_dir . '/foo-bar', 'rf') + endtry + End + + It should return 1 when command is executable in server/foo-bar/foo-bar + let l:servers_dir = lsp_settings#servers_dir() + + try + call delete(l:servers_dir . '/foo-bar', 'rf') + call mkdir(l:servers_dir . '/foo-bar', 'p') + if has('win32') + call writefile(['@echo off', 'echo foo-bar'], l:servers_dir . '/foo-bar/foo-bar.cmd') + else + call writefile(['#!/bin/sh', 'echo foo-bar'], l:servers_dir . '/foo-bar/foo-bar') + call setfperm(l:servers_dir . '/foo-bar/foo-bar', 'rwxr-xr-x') + endif + Assert Equals(lsp_settings#executable('foo-bar'), 1) + finally + call delete(l:servers_dir . '/foo-bar', 'rf') + endtry + End + End + + Describe lsp_settings#exec_path + It should return full-path to the command + if has('win32') + Assert Equals(empty(lsp_settings#exec_path('cmd')), 0) + else + Assert Equals(empty(lsp_settings#exec_path('sh')), 0) + endif + End + + It should return 1 when command is executable in server/foo-bar/foo-bar + let l:servers_dir = lsp_settings#servers_dir() + + try + call delete(l:servers_dir . '/foo-bar', 'rf') + call mkdir(l:servers_dir . '/foo-bar', 'p') + if has('win32') + call writefile(['@echo off', 'echo foo-bar'], l:servers_dir . '/foo-bar/foo-bar.cmd') + Assert Equals(lsp_settings#exec_path('foo-bar'), l:servers_dir . '\foo-bar\foo-bar.cmd') + else + call writefile(['#!/bin/sh', 'echo foo-bar'], l:servers_dir . '/foo-bar/foo-bar') + call setfperm(l:servers_dir . '/foo-bar/foo-bar', 'rwxr-xr-x') + Assert Equals(lsp_settings#exec_path('foo-bar'), l:servers_dir . '/foo-bar/foo-bar') + endif + finally + call delete(l:servers_dir . '/foo-bar', 'rf') + endtry + End + End +End diff --git a/test/lsp_settings/utils.vimspec b/test/lsp_settings/utils.vimspec new file mode 100644 index 0000000..ee94ccc --- /dev/null +++ b/test/lsp_settings/utils.vimspec @@ -0,0 +1,43 @@ +Describe lsp_settings#utils + Describe lsp_settings#utils#first_one + It should return first item in lines + Assert Equals(lsp_settings#utils#first_one("\nfoo"), fnamemodify('foo', ':p')) + Assert Equals(lsp_settings#utils#first_one('foo'), fnamemodify('foo', ':p')) + Assert Equals(lsp_settings#utils#first_one("foo\nbar\n"), fnamemodify('foo', ':p')) + End + End + + Describe lsp_settings#utils#group_name + It should return autocmd group name + Assert Equals(lsp_settings#utils#group_name('foo'), 'vim_lsp_suggest_foo') + End + End + + Describe lsp_settings#utils#valid_name + It should return whether the command is valid + Assert Equals(lsp_settings#utils#valid_name('foo'), 1) + Assert Equals(lsp_settings#utils#valid_name('foo bar'), 0) + Assert Equals(lsp_settings#utils#valid_name(' foo'), 0) + Assert Equals(lsp_settings#utils#valid_name(' foo '), 0) + Assert Equals(lsp_settings#utils#valid_name('foo '), 0) + Assert Equals(lsp_settings#utils#valid_name('foo-bar'), 1) + Assert Equals(lsp_settings#utils#valid_name('foo_bar'), 1) + Assert Equals(lsp_settings#utils#valid_name('foo&bar'), 0) + Assert Equals(lsp_settings#utils#valid_name('foo#bar'), 0) + End + End + + Describe lsp_settings#utils#msg + It should display information + Assert Equals(execute("call lsp_settings#utils#msg('foo')"), "\nfoo") + Assert Equals(execute("call lsp_settings#utils#msg('foo')"), "\nfoo") + End + End + + Describe lsp_settings#utils#error + It should display information + Assert Equals(execute("call lsp_settings#utils#error('foo')"), "\nfoo") + Assert Equals(execute("call lsp_settings#utils#error('foo')"), "\nfoo") + End + End +End |