summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorNick James <verbitan@users.noreply.github.com>2017-08-02 23:05:19 +0100
committerNick James <verbitan@users.noreply.github.com>2017-08-02 23:05:19 +0100
commita3d2fb568897b3cb26d9c22c8d21660249facd44 (patch)
tree4da0072cfd631a23c4037bfae64f09ac85b8826f /test
parentdb531171acd9064f91a4f8d6c31d8037ee01e8c5 (diff)
downloadale-a3d2fb568897b3cb26d9c22c8d21660249facd44.zip
Add Tcl nagelfar linter
Diffstat (limited to 'test')
-rw-r--r--test/command_callback/test_nagelfar_command_callbacks.vader42
-rw-r--r--test/handler/test_nagelfar_handler.vader171
2 files changed, 213 insertions, 0 deletions
diff --git a/test/command_callback/test_nagelfar_command_callbacks.vader b/test/command_callback/test_nagelfar_command_callbacks.vader
new file mode 100644
index 00000000..5c6be7f1
--- /dev/null
+++ b/test/command_callback/test_nagelfar_command_callbacks.vader
@@ -0,0 +1,42 @@
+Before:
+ Save g:ale_tcl_nagelfar_executable
+ Save g:ale_tcl_nagelfar_options
+
+ unlet! g:ale_tcl_nagelfar_executable
+ unlet! b:ale_tcl_nagelfar_executable
+ unlet! g:ale_tcl_nagelfar_options
+ unlet! b:ale_tcl_nagelfar_options
+
+ runtime ale_linters/tcl/nagelfar.vim
+
+After:
+ Restore
+ unlet! b:command_tail
+ unlet! b:ale_tcl_nagelfar_executable
+ unlet! b:ale_tcl_nagelfar_options
+ call ale#linter#Reset()
+
+Execute(The executable should be configurable):
+ AssertEqual 'nagelfar.tcl', ale_linters#tcl#nagelfar#GetExecutable(bufnr(''))
+
+ let b:ale_tcl_nagelfar_executable = 'foobar'
+
+ AssertEqual 'foobar', ale_linters#tcl#nagelfar#GetExecutable(bufnr(''))
+
+Execute(The executable should be used in the command):
+ AssertEqual
+ \ ale#Escape('nagelfar.tcl') . ' %s',
+ \ ale_linters#tcl#nagelfar#GetCommand(bufnr(''))
+
+ let b:ale_tcl_nagelfar_executable = 'foobar'
+
+ AssertEqual
+ \ ale#Escape('foobar') . ' %s',
+ \ ale_linters#tcl#nagelfar#GetCommand(bufnr(''))
+
+Execute(The options should be configurable):
+ let b:ale_tcl_nagelfar_options = '--something'
+
+ AssertEqual
+ \ ale#Escape('nagelfar.tcl') . ' --something %s',
+ \ ale_linters#tcl#nagelfar#GetCommand(bufnr(''))
diff --git a/test/handler/test_nagelfar_handler.vader b/test/handler/test_nagelfar_handler.vader
new file mode 100644
index 00000000..2a31f19e
--- /dev/null
+++ b/test/handler/test_nagelfar_handler.vader
@@ -0,0 +1,171 @@
+Before:
+ runtime ale_linters/tcl/nagelfar.vim
+
+Execute(The nagelfar handler should parse lines correctly):
+ AssertEqual
+ \ [
+ \ {
+ \ 'lnum': 5,
+ \ 'type': 'W',
+ \ 'text': 'Found constant "bepa" which is also a variable.'
+ \ },
+ \ {
+ \ 'lnum': 7,
+ \ 'type': 'E',
+ \ 'text': 'Unknown variable "cep"'
+ \ },
+ \ {
+ \ 'lnum': 7,
+ \ 'type': 'W',
+ \ 'text': 'Unknown command "se"'
+ \ },
+ \ {
+ \ 'lnum': 8,
+ \ 'type': 'E',
+ \ 'text': 'Unknown variable "epa"'
+ \ },
+ \ {
+ \ 'lnum': 10,
+ \ 'type': 'E',
+ \ 'text': 'Unknown variable "depa"'
+ \ },
+ \ {
+ \ 'lnum': 10,
+ \ 'type': 'W',
+ \ 'text': 'Suspicious variable name "$depa"'
+ \ },
+ \ {
+ \ 'lnum': 11,
+ \ 'type': 'W',
+ \ 'text': 'Suspicious variable name "$cepa"'
+ \ },
+ \ {
+ \ 'lnum': 13,
+ \ 'type': 'E',
+ \ 'text': 'Wrong number of arguments (3) to "set"'
+ \ },
+ \ {
+ \ 'lnum': 13,
+ \ 'type': 'W',
+ \ 'text': 'Found constant "bepa" which is also a variable.'
+ \ },
+ \ {
+ \ 'lnum': 13,
+ \ 'type': 'W',
+ \ 'text': 'Found constant "cepa" which is also a variable.'
+ \ },
+ \ {
+ \ 'lnum': 18,
+ \ 'type': 'E',
+ \ 'text': 'Badly formed if statement'
+ \ },
+ \ {
+ \ 'lnum': 24,
+ \ 'type': 'E',
+ \ 'text': 'Unknown subcommand "gurka" to "info"'
+ \ },
+ \ {
+ \ 'lnum': 31,
+ \ 'type': 'W',
+ \ 'text': 'Switch pattern starting with #. This could be a bad comment.'
+ \ },
+ \ {
+ \ 'lnum': 31,
+ \ 'type': 'W',
+ \ 'text': 'Unknown command "This"'
+ \ },
+ \ {
+ \ 'lnum': 31,
+ \ 'type': 'W',
+ \ 'text': 'Unknown command "bad"'
+ \ },
+ \ {
+ \ 'lnum': 34,
+ \ 'type': 'W',
+ \ 'text': 'Unknown command "miffo"'
+ \ },
+ \ {
+ \ 'lnum': 55,
+ \ 'type': 'W',
+ \ 'text': 'Suspicious variable name "$bepa"'
+ \ },
+ \ {
+ \ 'lnum': 56,
+ \ 'type': 'W',
+ \ 'text': 'Suspicious variable name "$apa"'
+ \ },
+ \ {
+ \ 'lnum': 61,
+ \ 'type': 'E',
+ \ 'text': 'Could not complete statement.'
+ \ },
+ \ {
+ \ 'lnum': 67,
+ \ 'type': 'E',
+ \ 'text': 'Could not complete statement.'
+ \ },
+ \ {
+ \ 'lnum': 70,
+ \ 'type': 'E',
+ \ 'text': 'Wrong number of arguments (4) to "proc"'
+ \ },
+ \ {
+ \ 'lnum': 72,
+ \ 'type': 'E',
+ \ 'text': 'Wrong number of arguments (1) to "if"'
+ \ },
+ \ {
+ \ 'lnum': 75,
+ \ 'type': 'E',
+ \ 'text': 'Unbalanced close brace found'
+ \ },
+ \ {
+ \ 'lnum': 82,
+ \ 'type': 'E',
+ \ 'text': 'Unbalanced close brace found'
+ \ },
+ \ {
+ \ 'lnum': 88,
+ \ 'type': 'E',
+ \ 'text': 'Could not complete statement.'
+ \ },
+ \ {
+ \ 'lnum': 90,
+ \ 'type': 'E',
+ \ 'text': 'Wrong number of arguments (1) to "if"'
+ \ },
+ \ {
+ \ 'lnum': 93,
+ \ 'type': 'W',
+ \ 'text': 'Close brace not aligned with line 90 (4 0)'
+ \ },
+ \ ],
+ \ ale_linters#tcl#nagelfar#Handle(bufnr(''), [
+ \ 'Line 5: W Found constant "bepa" which is also a variable.',
+ \ 'Line 7: E Unknown variable "cep"',
+ \ 'Line 7: W Unknown command "se"',
+ \ 'Line 8: E Unknown variable "epa"',
+ \ 'Line 10: E Unknown variable "depa"',
+ \ 'Line 10: N Suspicious variable name "$depa"',
+ \ 'Line 11: N Suspicious variable name "$cepa"',
+ \ 'Line 13: E Wrong number of arguments (3) to "set"',
+ \ 'Line 13: W Found constant "bepa" which is also a variable.',
+ \ 'Line 13: W Found constant "cepa" which is also a variable.',
+ \ 'Line 18: E Badly formed if statement',
+ \ 'Line 24: E Unknown subcommand "gurka" to "info"',
+ \ 'Line 31: W Switch pattern starting with #. This could be a bad comment.',
+ \ 'Line 31: W Unknown command "This"',
+ \ 'Line 31: W Unknown command "bad"',
+ \ 'Line 34: W Unknown command "miffo"',
+ \ 'Line 55: N Suspicious variable name "$bepa"',
+ \ 'Line 56: N Suspicious variable name "$apa"',
+ \ 'Line 61: E Could not complete statement.',
+ \ 'Line 67: E Could not complete statement.',
+ \ 'Line 70: E Wrong number of arguments (4) to "proc"',
+ \ 'Line 72: E Wrong number of arguments (1) to "if"',
+ \ 'Line 75: E Unbalanced close brace found',
+ \ 'Line 82: E Unbalanced close brace found',
+ \ 'Line 88: E Could not complete statement.',
+ \ 'Line 90: E Wrong number of arguments (1) to "if"',
+ \ 'Line 93: N Close brace not aligned with line 90 (4 0)',
+ \ ])