ale/test/test_virtualtext.vader
w0rp bf55175b69
#4454 Clean up root test directory tests
Combine cases into smaller tests of tests and remove tests we no longer
need. Linter tests have been moved to where they should be.
2023-09-08 01:00:35 +01:00

182 lines
5.4 KiB
Plaintext

Before:
Save g:ale_buffer_info
Save g:ale_virtualtext_cursor
Save g:ale_virtualtext_delay
Save g:ale_virtualtext_prefix
Save b:ale_virtualtext_prefix
Save g:ale_use_neovim_diagnostics_api
call ale#virtualtext#ResetDataForTests()
let g:setting = ''
let g:ale_virtualtext_delay = 0
let g:ale_buffer_info = {
\ bufnr(''): {
\ 'loclist': [
\ {
\ 'bufnr': bufnr(''),
\ 'type': 'E',
\ 'lnum': 1,
\ 'col': 5,
\ 'text': 'Line 1 error',
\ },
\ {
\ 'bufnr': bufnr(''),
\ 'type': 'W',
\ 'lnum': 2,
\ 'col': 1,
\ 'text': 'Line 2 warning 1',
\ },
\ {
\ 'bufnr': bufnr(''),
\ 'type': 'W',
\ 'lnum': 2,
\ 'col': 5,
\ 'text': 'Line 2 warning 2',
\ },
\ ],
\ },
\}
let g:ale_use_neovim_diagnostics_api = 0
After:
Restore
unlet! g:setting
unlet! g:ns_id
Execute(The correct highlight groups should be loaded for virtual-text):
AssertEqual 'ALEVirtualTextError', ale#virtualtext#GetGroup({})
AssertEqual 'ALEVirtualTextError', ale#virtualtext#GetGroup({'type': 'E'})
AssertEqual 'ALEVirtualTextStyleError',
\ ale#virtualtext#GetGroup({'type': 'E', 'sub_type': 'style'})
AssertEqual 'ALEVirtualTextWarning', ale#virtualtext#GetGroup({'type': 'W'})
AssertEqual 'ALEVirtualTextStyleWarning',
\ ale#virtualtext#GetGroup({'type': 'W', 'sub_type': 'style'})
AssertEqual 'ALEVirtualTextInfo', ale#virtualtext#GetGroup({'type': 'I'})
Given python (An empty Python file):
Execute(Comment text should be detected correctly for Python files):
if has('patch-9.0.0297') || has('nvim-0.8.0')
AssertEqual '#', ale#virtualtext#GetComment(bufnr(''))
endif
Given java (An empty Java file):
Execute(Comment text should be detected correctly for Java files):
if has('patch-9.0.0297') || has('nvim-0.8.0')
AssertEqual '//', ale#virtualtext#GetComment(bufnr(''))
endif
Given html (An empty HTML file):
Execute(Comment text should be detected correctly for HTML files):
if has('patch-9.0.0297') || has('nvim-0.8.0')
AssertEqual "\<!--", ale#virtualtext#GetComment(bufnr(''))
endif
Given python(An example Python file):
# line 1
# line 2
Execute(We should not show virtualtext when disabled):
if has('patch-9.0.0297') || has('nvim-0.8.0')
for g:setting in ['disabled', '0', 0]
call ale#virtualtext#ResetDataForTests()
let g:ale_virtualtext_cursor = g:setting
call cursor(1, 1)
call ale#virtualtext#ShowCursorWarningWithDelay()
" Tick the timer.
sleep 1ms
AssertEqual '', ale#virtualtext#GetLastMessageForTests()
endfor
endif
Execute(We should find a virtualtext error on line 1):
if has('patch-9.0.0297') || has('nvim-0.8.0')
for g:setting in ['current', '1', 1]
call ale#virtualtext#ResetDataForTests()
let g:ale_virtualtext_cursor = 'current'
call cursor(1, 1)
call ale#virtualtext#ShowCursorWarningWithDelay()
" Tick the timer.
sleep 1ms
AssertEqual '# E: Line 1 error', ale#virtualtext#GetLastMessageForTests()
if has('patch-9.0.0297')
AssertEqual ['ALEVirtualTextError'], map(prop_list(1), {_, v -> v.type})
AssertEqual [], prop_list(2)
endif
endfor
endif
Execute(We should find a virtualtext error on line 2):
if has('patch-9.0.0297') || has('nvim-0.8.0')
let g:ale_virtualtext_cursor = 'current'
call cursor(2, 5)
call ale#virtualtext#ShowCursorWarningWithDelay()
" Tick the timer.
sleep 1ms
AssertEqual '# W: Line 2 warning 2', ale#virtualtext#GetLastMessageForTests()
if has('patch-9.0.0297')
AssertEqual [], prop_list(1)
AssertEqual ['ALEVirtualTextWarning'], map(prop_list(2), {_, v -> v.type})
endif
endif
Execute(We should be able to change the virtualtext prefix globally):
let g:ale_virtualtext_prefix = '%severity%: '
if has('patch-9.0.0297') || has('nvim-0.8.0')
let g:ale_virtualtext_cursor = 'current'
call cursor(1, 1)
call ale#virtualtext#ShowCursorWarningWithDelay()
" Tick the timer.
sleep 1ms
AssertEqual 'Error: Line 1 error', ale#virtualtext#GetLastMessageForTests()
endif
Execute(We should be able to change the virtualtext prefix per-buffer):
let b:ale_virtualtext_prefix = 'B> '
if has('patch-9.0.0297') || has('nvim-0.8.0')
let g:ale_virtualtext_cursor = 'current'
call cursor(1, 1)
call ale#virtualtext#ShowCursorWarningWithDelay()
" Tick the timer.
sleep 1ms
AssertEqual 'B> Line 1 error', ale#virtualtext#GetLastMessageForTests()
endif
Execute(We should set errors across all lines):
if has('patch-9.0.0297') || has('nvim-0.8.0')
call ale#virtualtext#SetTexts(bufnr(''), g:ale_buffer_info[bufnr('')].loclist)
AssertEqual '# W: Line 2 warning 2', ale#virtualtext#GetLastMessageForTests()
if has('patch-9.0.0297')
AssertEqual ['ALEVirtualTextError'], map(prop_list(1), {_, v -> v.type})
AssertEqual ['ALEVirtualTextWarning', 'ALEVirtualTextWarning'],
\ map(prop_list(2), {_, v -> v.type})
endif
endif
Execute(We should not set cursor messages when Neovim diagnostics are enabled):
let g:ale_use_neovim_diagnostics_api = 1
if has('patch-9.0.0297') || has('nvim-0.8.0')
let g:ale_virtualtext_cursor = 'current'
call cursor(1, 1)
call ale#virtualtext#ShowCursorWarningWithDelay()
" Tick the timer.
sleep 1ms
AssertEqual '', ale#virtualtext#GetLastMessageForTests()
endif