aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authormattn <mattn.jp@gmail.com>2020-01-30 09:14:46 +0900
committerGitHub <noreply@github.com>2020-01-30 09:14:46 +0900
commit6690922a98b1c623c5703d5cacde7adf795124cd (patch)
treea5179aa361361ece40039add1bf83db4ef503ac2 /test
parentb881ac53a671c1ebffc38ebb584b9a851e2cfb70 (diff)
parent00eba157bc8c50501943dee8cdab7c70c13c39d6 (diff)
downloadvim-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/.themisrc3
-rw-r--r--test/lsp_settings.vimspec84
-rw-r--r--test/lsp_settings/utils.vimspec43
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