summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorArdis <ArdisDreelath@users.noreply.github.com>2017-07-16 16:04:25 +0200
committerw0rp <w0rp@users.noreply.github.com>2017-07-16 15:04:25 +0100
commit7d174b00561f2cb6a6ad71b839b1b6fc6bd88e3b (patch)
tree069b3c013b53a0e99c673765e78e5b3a30b0ed95 /test
parent4fa66ab627039fe19cf6383b19d311066b73d8cf (diff)
downloadale-7d174b00561f2cb6a6ad71b839b1b6fc6bd88e3b.zip
Added phpstan linter for php. (#772)
* Added phpstan linter for php.
Diffstat (limited to 'test')
-rw-r--r--test/test_phpstan_executable_detection.vader113
1 files changed, 113 insertions, 0 deletions
diff --git a/test/test_phpstan_executable_detection.vader b/test/test_phpstan_executable_detection.vader
new file mode 100644
index 00000000..24ba8cd8
--- /dev/null
+++ b/test/test_phpstan_executable_detection.vader
@@ -0,0 +1,113 @@
+Before:
+ Save g:ale_php_phpstan_executable
+ Save g:ale_php_phpstan_level
+
+ let g:ale_php_phpstan_executable = 'phpstan_test'
+
+ call ale#test#SetDirectory('/testplugin/test')
+
+ runtime ale_linters/php/phpstan.vim
+
+After:
+ Restore
+
+ call ale#test#RestoreDirectory()
+ call ale#linter#Reset()
+
+Execute(project with level set to 3):
+ call ale#test#SetFilename('phpstan-test-files/foo/test.php')
+ let g:ale_php_phpstan_level = 3
+
+ AssertEqual
+ \ 'phpstan_test analyze -l3 --errorFormat raw %s',
+ \ ale_linters#php#phpstan#GetCommand(bufnr(''))
+
+Execute(project with default level):
+ call ale#test#SetFilename('phpstan-test-files/foo/test.php')
+
+ AssertEqual
+ \ 'phpstan_test analyze -l4 --errorFormat raw %s',
+ \ ale_linters#php#phpstan#GetCommand(bufnr(''))
+
+Execute(parse output without errors):
+ call ale#test#SetFilename('phpstan-test-files/foo/test.php')
+
+ AssertEqual
+ \ [],
+ \ ale_linters#php#phpstan#Handle(bufnr(''), [" 1/1 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%"])
+
+Execute(parse output with one error):
+ call ale#test#SetFilename('phpstan-test-files/foo/test.php')
+
+ AssertEqual
+ \ [
+ \ {
+ \ 'lnum': 9,
+ \ 'text': 'Access to an undefined property Test::$var.',
+ \ 'type': 'W'
+ \ }
+ \ ],
+ \ ale_linters#php#phpstan#Handle(bufnr(''), [
+ \ ' 1/1 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%',
+ \ 'phpstan-test-files/foo/test.php:9:Access to an undefined property Test::$var.',
+ \])
+
+Execute(parse output with three errors):
+ call ale#test#SetFilename('phpstan-test-files/foo/test.php')
+
+ AssertEqual
+ \ [
+ \ {
+ \ 'lnum': 9,
+ \ 'text': 'Call to method format() on an unknown class DateTimeImutable.',
+ \ 'type': 'W'
+ \ },
+ \ {
+ \ 'lnum': 16,
+ \ 'text': 'Sample message.',
+ \ 'type': 'W'
+ \ },
+ \ {
+ \ 'lnum': 192,
+ \ 'text': 'Invalid command testCommand.',
+ \ 'type': 'W'
+ \ }
+ \ ],
+ \ ale_linters#php#phpstan#Handle(bufnr(''), [
+ \ ' 1/1 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%',
+ \ 'phpstan-test-files/foo/test.php:9:Call to method format() on an unknown class DateTimeImutable.',
+ \ 'phpstan-test-files/foo/test.php:16:Sample message.',
+ \ 'phpstan-test-files/foo/test.php:192:Invalid command testCommand.',
+ \])
+
+Execute(parse output for windows filesystem):
+ call ale#test#SetFilename('phpstan-test-files/foo/test.php')
+
+ AssertEqual
+ \ [
+ \ {
+ \ 'lnum': 9,
+ \ 'text': 'Access to an undefined property Test::$var.',
+ \ 'type': 'W'
+ \ }
+ \ ],
+ \ ale_linters#php#phpstan#Handle(bufnr(''), [
+ \ ' 1/1 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%',
+ \ 'D:\phpstan-test-files\foo\test.php:9:Access to an undefined property Test::$var.',
+ \])
+
+Execute(parse output for not php file):
+ call ale#test#SetFilename('phpstan-test-files/test.inc')
+
+ AssertEqual
+ \ [
+ \ {
+ \ 'lnum': 9,
+ \ 'text': 'Access to an undefined property Test::$var.',
+ \ 'type': 'W'
+ \ }
+ \ ],
+ \ ale_linters#php#phpstan#Handle(bufnr(''), [
+ \ ' 1/1 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%',
+ \ '/phpstan-test-files/foo/test.inc:9:Access to an undefined property Test::$var.',
+ \])