summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2017-06-24 12:24:31 +0100
committerw0rp <devw0rp@gmail.com>2017-06-24 12:24:31 +0100
commit1ea61162a0c43da9a149b24dc35911cb981fbe7c (patch)
treea88621586401f17299cd85835f47a8a27d224296 /test
parentfbf8ccb882eb7819011fa837ea2b4930ed4fa9c7 (diff)
downloadale-1ea61162a0c43da9a149b24dc35911cb981fbe7c.zip
Fix #687 - Check files on enter if they have changed
Diffstat (limited to 'test')
-rw-r--r--test/test_ale_init_au_groups.vader4
-rw-r--r--test/test_lint_on_enter_when_file_changed.vader77
2 files changed, 80 insertions, 1 deletions
diff --git a/test/test_ale_init_au_groups.vader b/test/test_ale_init_au_groups.vader
index 7cc3e6a6..42dd763e 100644
--- a/test/test_ale_init_au_groups.vader
+++ b/test/test_ale_init_au_groups.vader
@@ -112,12 +112,14 @@ Execute (g:ale_lint_on_enter = 0 should bind no events):
AssertEqual [], CheckAutocmd('ALERunOnEnterGroup')
-Execute (g:ale_lint_on_enter = 1 should bind no BufReadPost and BufWinEnter):
+Execute (g:ale_lint_on_enter = 1 should bind the required events):
let g:ale_lint_on_enter = 1
AssertEqual [
+ \ 'BufEnter * call ale#events#EnterEvent()',
\ 'BufReadPost * call ale#Queue(300, ''lint_file'')',
\ 'BufWinEnter * call ale#Queue(300, ''lint_file'')',
+ \ 'FileChangedShellPost * call ale#events#FileChangedEvent(str2nr(expand(''<abuf>'')))',
\], CheckAutocmd('ALERunOnEnterGroup')
Execute (g:ale_lint_on_filetype_changed = 0 should bind no events):
diff --git a/test/test_lint_on_enter_when_file_changed.vader b/test/test_lint_on_enter_when_file_changed.vader
new file mode 100644
index 00000000..ff4e7dd5
--- /dev/null
+++ b/test/test_lint_on_enter_when_file_changed.vader
@@ -0,0 +1,77 @@
+Before:
+ Save &filetype
+ Save g:ale_buffer_info
+ Save g:ale_lint_on_enter
+ let g:buf = bufnr('')
+ let g:ale_lint_on_enter = 1
+ let g:ale_run_synchronously = 1
+
+ function! TestCallback(buffer, output)
+ return [{
+ \ 'lnum': 1,
+ \ 'col': 3,
+ \ 'text': 'baz boz',
+ \}]
+ endfunction
+
+ call ale#linter#Define('foobar', {
+ \ 'name': 'testlinter',
+ \ 'callback': 'TestCallback',
+ \ 'executable': 'true',
+ \ 'command': 'true',
+ \})
+
+After:
+ Restore
+ unlet! g:buf
+ let g:ale_run_synchronously = 0
+ delfunction TestCallback
+ call ale#linter#Reset()
+ call setloclist(0, [])
+
+Execute(The file changed event function should set b:ale_file_changed):
+ if has('gui')
+ new
+ else
+ e test
+ endif
+
+ call ale#events#FileChangedEvent(g:buf)
+ close
+
+ " We should set the flag in the other buffer
+ AssertEqual 1, getbufvar(g:buf, 'ale_file_changed')
+
+Execute(The file changed event function should lint the current buffer when it has changed):
+ set filetype=foobar
+ call ale#events#FileChangedEvent(bufnr(''))
+
+ AssertEqual [{
+ \ 'bufnr': bufnr(''),
+ \ 'lnum': 1,
+ \ 'vcol': 0,
+ \ 'col': 3,
+ \ 'text': 'baz boz',
+ \ 'type': 'E',
+ \ 'nr': -1,
+ \ 'pattern': '',
+ \ 'valid': 1,
+ \ }], getloclist(0)
+
+Execute(The buffer should be checked after entering it after the file has changed):
+ let b:ale_file_changed = 1
+
+ set filetype=foobar
+ call ale#events#EnterEvent()
+
+ AssertEqual [{
+ \ 'bufnr': bufnr(''),
+ \ 'lnum': 1,
+ \ 'vcol': 0,
+ \ 'col': 3,
+ \ 'text': 'baz boz',
+ \ 'type': 'E',
+ \ 'nr': -1,
+ \ 'pattern': '',
+ \ 'valid': 1,
+ \ }], getloclist(0)