diff options
author | w0rp <devw0rp@gmail.com> | 2017-03-14 23:04:25 +0000 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2017-03-14 23:04:25 +0000 |
commit | 790c614b7a2360446aee6e003e3e834d21b2f04b (patch) | |
tree | c08da998269dbf732c539bc35f586d4892a1071b /test/sign | |
parent | d19a35485fef949c823657d548f4c0ddd78bbe4f (diff) | |
download | ale-790c614b7a2360446aee6e003e3e834d21b2f04b.zip |
#333 Update line numbers for loclist items when current sign_id values are set
Diffstat (limited to 'test/sign')
-rw-r--r-- | test/sign/test_sign_parsing.vader | 23 | ||||
-rw-r--r-- | test/sign/test_sign_placement.vader | 69 |
2 files changed, 76 insertions, 16 deletions
diff --git a/test/sign/test_sign_parsing.vader b/test/sign/test_sign_parsing.vader index 916fb570..ee112a1b 100644 --- a/test/sign/test_sign_parsing.vader +++ b/test/sign/test_sign_parsing.vader @@ -1,14 +1,27 @@ Execute (Parsing English signs should work): - AssertEqual [[9, 1000001]], ale#sign#ParseSigns(['Signs for app.js:', ' line=9 id=1000001 name=ALEWarningSign']) + AssertEqual + \ [[9, 1000001, 'ALEWarningSign']], + \ ale#sign#ParseSigns([ + \ 'Signs for app.js:', + \ ' line=9 id=1000001 name=ALEWarningSign', + \ ]) Execute (Parsing Russian signs should work): - AssertEqual [[1, 1000001]], ale#sign#ParseSigns([' строка=1 id=1000001 имя=ALEErrorSign']) + AssertEqual + \ [[1, 1000001, 'ALEErrorSign']], + \ ale#sign#ParseSigns([' строка=1 id=1000001 имя=ALEErrorSign']) Execute (Parsing Japanese signs should work): - AssertEqual [[1, 1000001]], ale#sign#ParseSigns([' 行=1 識別子=1000001 名前=ALEWarningSign']) + AssertEqual + \ [[1, 1000001, 'ALEWarningSign']], + \ ale#sign#ParseSigns([' 行=1 識別子=1000001 名前=ALEWarningSign']) Execute (Parsing Spanish signs should work): - AssertEqual [[12, 1000001]], ale#sign#ParseSigns([' línea=12 id=1000001 nombre=ALEWarningSign']) + AssertEqual + \ [[12, 1000001, 'ALEWarningSign']], + \ ale#sign#ParseSigns([' línea=12 id=1000001 nombre=ALEWarningSign']) Execute (Parsing Italian signs should work): - AssertEqual [[1, 1000001]], ale#sign#ParseSigns([' riga=1 id=1000001, nome=ALEWarningSign']) + AssertEqual + \ [[1, 1000001, 'ALEWarningSign']], + \ ale#sign#ParseSigns([' riga=1 id=1000001, nome=ALEWarningSign']) diff --git a/test/sign/test_sign_placement.vader b/test/sign/test_sign_placement.vader index 6fa72c86..396ef5c4 100644 --- a/test/sign/test_sign_placement.vader +++ b/test/sign/test_sign_placement.vader @@ -46,6 +46,17 @@ Before: \] endfunction + function! ParseSigns() + redir => l:output + silent sign place + redir END + + return map( + \ split(l:output, '\n')[2:], + \ 'matchlist(v:val, ''^.*=\(\d\+\).*=\(\d\+\).*=\(.*\)$'')[1:3]', + \) + endfunction + call ale#linter#Define('testft', { \ 'name': 'x', \ 'executable': 'echo', @@ -54,9 +65,11 @@ Before: \}) After: - call ale#linter#Reset() + unlet! g:loclist delfunction GenerateResults - unlet! g:output + delfunction ParseSigns + call ale#linter#Reset() + sign unplace * Given testft(A file with warnings/errors): foo @@ -65,14 +78,10 @@ Given testft(A file with warnings/errors): fourth line fifth line -Execute: +Execute(The current signs should be set for running a job): call ale#Lint() call ale#engine#WaitForJobs(2000) - redir => g:output - silent sign place - redir END - AssertEqual \ [ \ ['1', '1000001', 'ALEErrorSign'], @@ -81,7 +90,45 @@ Execute: \ ['4', '1000004', 'ALEErrorSign'], \ ['5', '1000005', 'ALEErrorSign'], \ ], - \ map( - \ split(g:output, '\n')[2:], - \ 'matchlist(v:val, "[^=]*=\\(\\d\\+\\)[^=]*=\\(\\d\\+\\).*\\(ALE.*\\)$")[1:3]' - \ ) + \ ParseSigns() + + +Execute(Loclist items with sign_id values should be kept): + exec 'sign place 1000347 line=15 name=ALEErrorSign buffer=' . bufnr('%') + exec 'sign place 1000348 line=16 name=ALEWarningSign buffer=' . bufnr('%') + + let g:loclist = [ + \ {'lnum': 1, 'col': 1, 'type': 'E', 'text': 'a', 'sign_id': 1000347}, + \ {'lnum': 2, 'col': 1, 'type': 'W', 'text': 'b', 'sign_id': 1000348}, + \ {'lnum': 3, 'col': 1, 'type': 'E', 'text': 'c'}, + \ {'lnum': 4, 'col': 1, 'type': 'W', 'text': 'd'}, + \ {'lnum': 15, 'col': 2, 'type': 'W', 'text': 'e'}, + \ {'lnum': 16, 'col': 2, 'type': 'E', 'text': 'f'}, + \] + + call ale#sign#SetSigns(bufnr('%'), g:loclist) + + " Line numbers should be changed, sign_id values should be replaced, + " and items should be sorted again. + AssertEqual + \ [ + \ {'lnum': 3, 'col': 1, 'type': 'E', 'text': 'c', 'sign_id': 1000001}, + \ {'lnum': 4, 'col': 1, 'type': 'W', 'text': 'd', 'sign_id': 1000002}, + \ {'lnum': 15, 'col': 1, 'type': 'E', 'text': 'a', 'sign_id': 1000003}, + \ {'lnum': 15, 'col': 2, 'type': 'W', 'text': 'e', 'sign_id': 1000003}, + \ {'lnum': 16, 'col': 1, 'type': 'W', 'text': 'b', 'sign_id': 1000004}, + \ {'lnum': 16, 'col': 2, 'type': 'E', 'text': 'f', 'sign_id': 1000004}, + \ ], + \ g:loclist + + " Items should be grouped again. We should see error signs, where there + " were warnings before, and errors where there were errors and where we + " now have new warnings. + AssertEqual + \ [ + \ ['3', '1000001', 'ALEErrorSign'], + \ ['4', '1000002', 'ALEWarningSign'], + \ ['15', '1000003', 'ALEErrorSign'], + \ ['16', '1000004', 'ALEErrorSign'], + \ ], + \ ParseSigns() |