diff options
3 files changed, 53 insertions, 1 deletions
diff --git a/ale_linters/php/langserver.vim b/ale_linters/php/langserver.vim index d82cd63b..d772e90d 100644 --- a/ale_linters/php/langserver.vim +++ b/ale_linters/php/langserver.vim @@ -12,7 +12,7 @@ function! ale_linters#php#langserver#GetExecutable(buffer) abort endfunction function! ale_linters#php#langserver#GetCommand(buffer) abort - return 'php ' . ale_linters#php#langserver#GetExecutable(a:buffer) + return 'php ' . ale#Escape(ale_linters#php#langserver#GetExecutable(a:buffer)) endfunction function! ale_linters#php#langserver#GetLanguage(buffer) abort diff --git a/test/command_callback/php-langserver-project/vendor/bin/php-language-server.php b/test/command_callback/php-langserver-project/vendor/bin/php-language-server.php new file mode 100755 index 00000000..e69de29b --- /dev/null +++ b/test/command_callback/php-langserver-project/vendor/bin/php-language-server.php diff --git a/test/command_callback/test_php_langserver_callbacks.vader b/test/command_callback/test_php_langserver_callbacks.vader new file mode 100644 index 00000000..d5030450 --- /dev/null +++ b/test/command_callback/test_php_langserver_callbacks.vader @@ -0,0 +1,52 @@ +Before: + Save ale_php_langserver_executable + Save ale_php_langserver_config_path + Save ale_php_langserver_use_global + + unlet! ale_php_langserver_executable + unlet! ale_php_langserver_config_path + unlet! ale_php_langserver_use_global + + runtime ale_linters/php/langserver.vim + + call ale#test#SetDirectory('/testplugin/test/command_callback') + +After: + Restore + + if isdirectory(g:dir . '/.git') + call delete(g:dir . '/.git', 'd') + endif + + call ale#test#RestoreDirectory() + call ale#linter#Reset() + +Execute(The default executable path should be correct): + AssertEqual + \ 'php-language-server.php', + \ ale_linters#php#langserver#GetExecutable(bufnr('')) + AssertEqual + \ 'php ' . ale#Escape('php-language-server.php'), + \ ale_linters#php#langserver#GetCommand(bufnr('')) + +Execute(Vendor executables should be detected): + call ale#test#SetFilename('php-langserver-project/test.php') + + AssertEqual + \ g:dir . '/php-langserver-project/vendor/bin/php-language-server.php', + \ ale_linters#php#langserver#GetExecutable(bufnr('')) + AssertEqual + \ 'php ' . ale#Escape( + \ g:dir + \ . '/php-langserver-project/vendor/bin/php-language-server.php' + \ ), + \ ale_linters#php#langserver#GetCommand(bufnr('')) + +Execute(The language string should be correct): + AssertEqual 'php', ale_linters#php#langserver#GetLanguage(bufnr('')) + +Execute(The project path should be correct for .git directories): + call ale#test#SetFilename('php-langserver-project/test.php') + call mkdir(g:dir . '/.git') + + AssertEqual g:dir, ale_linters#php#langserver#GetProjectRoot(bufnr('')) |