summaryrefslogtreecommitdiff
path: root/test/test_ale_populate_command.vader
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_ale_populate_command.vader')
-rw-r--r--test/test_ale_populate_command.vader96
1 files changed, 96 insertions, 0 deletions
diff --git a/test/test_ale_populate_command.vader b/test/test_ale_populate_command.vader
new file mode 100644
index 00000000..8b813a56
--- /dev/null
+++ b/test/test_ale_populate_command.vader
@@ -0,0 +1,96 @@
+Before:
+ Save g:ale_buffer_info
+ Save g:ale_enabled
+ Save g:ale_set_quickfix
+ Save g:ale_set_loclist
+ Save g:ale_open_list
+
+ let g:ale_buffer_info = {}
+ let g:ale_enabled = 1
+ let g:ale_set_quickfix = 0
+ let g:ale_set_loclist = 0
+ let g:ale_open_list = 1
+
+ let g:expected_loclist = [{
+ \ 'bufnr': bufnr('%'),
+ \ 'lnum': 2,
+ \ 'vcol': 0,
+ \ 'col': 3,
+ \ 'text': 'foo bar',
+ \ 'type': 'E',
+ \ 'nr': -1,
+ \ 'pattern': '',
+ \ 'valid': 1,
+ \}]
+
+ function! ToggleTestCallback(buffer, output)
+ return [{
+ \ 'bufnr': a:buffer,
+ \ 'lnum': 2,
+ \ 'vcol': 0,
+ \ 'col': 3,
+ \ 'text': join(split(a:output[0])),
+ \ 'type': 'E',
+ \ 'nr': -1,
+ \}]
+ endfunction
+
+ call ale#linter#Define('foobar', {
+ \ 'name': 'testlinter',
+ \ 'callback': 'ToggleTestCallback',
+ \ 'executable': has('win32') ? 'cmd' : 'echo',
+ \ 'command': 'echo foo bar',
+ \})
+
+After:
+ Restore
+
+ unlet! g:expected_loclist
+ unlet! b:i
+
+ call ale#engine#Cleanup(bufnr(''))
+ call ale#linter#Reset()
+
+ " Not sure this is necessary since it was Save/Restore-d
+ let g:ale_buffer_info = {}
+
+ delfunction ToggleTestCallback
+
+Given foobar (Some imaginary filetype):
+ foo
+ bar
+ baz
+
+Execute(ALEPopulateQuickfix should have results):
+ AssertEqual 'foobar', &filetype
+
+ " Clear so we can check that they're unmodified.
+ call setqflist([])
+ call setloclist(winnr(), [])
+
+ " Try to run the linter a few times, as it fails randomly in NeoVim.
+ for b:i in range(5)
+ ALELint
+ call ale#test#WaitForJobs(2000)
+
+ if !has('nvim')
+ " Sleep so the delayed list function can run.
+ " This breaks the tests in NeoVim for some reason.
+ sleep 1ms
+ endif
+
+ if ale#test#GetLoclistWithoutModule() == g:expected_loclist
+ break
+ endif
+ endfor
+
+
+ AssertEqual [], ale#test#GetLoclistWithoutModule()
+ AssertEqual [], ale#test#GetQflistWithoutModule()
+
+ ALEPopulateLocList
+ AssertNotEqual 0, get(getloclist(0, {'winid':0}), 'winid', 0)
+ AssertEqual g:expected_loclist, ale#test#GetLoclistWithoutModule()
+
+ ALEPopulateQuickfix
+ AssertEqual g:expected_loclist, ale#test#GetQflistWithoutModule()