diff options
| author | Justin M. Keyes <justinkz@gmail.com> | 2017-12-23 18:17:01 +0100 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-12-23 18:17:01 +0100 | 
| commit | dee78a4095a27369e428572f74f7b64bcc5f670e (patch) | |
| tree | 4f06de0fd7a5a80d746c2ffaf18cb0719e66cccd /test/functional/eval/match_functions_spec.lua | |
| parent | ec86f4215fc58246998c6017df84206153d0df1a (diff) | |
| parent | 5cb7a709e7f60b0e7bcde70a1aa9fea5f060fe0f (diff) | |
| download | rneovim-dee78a4095a27369e428572f74f7b64bcc5f670e.tar.gz rneovim-dee78a4095a27369e428572f74f7b64bcc5f670e.tar.bz2 rneovim-dee78a4095a27369e428572f74f7b64bcc5f670e.zip | |
Merge #7708 from ZyX-I/hide-container-impl
Diffstat (limited to 'test/functional/eval/match_functions_spec.lua')
| -rw-r--r-- | test/functional/eval/match_functions_spec.lua | 94 | 
1 files changed, 94 insertions, 0 deletions
| diff --git a/test/functional/eval/match_functions_spec.lua b/test/functional/eval/match_functions_spec.lua index 3150d89f62..7989b22b5e 100644 --- a/test/functional/eval/match_functions_spec.lua +++ b/test/functional/eval/match_functions_spec.lua @@ -1,9 +1,11 @@  local helpers = require('test.functional.helpers')(after_each) +local Screen = require('test.functional.ui.screen')  local eq = helpers.eq  local clear = helpers.clear  local funcs = helpers.funcs  local command = helpers.command +local exc_exec = helpers.exc_exec  before_each(clear) @@ -59,3 +61,95 @@ describe('matchadd()', function()      }}, funcs.getmatches())    end)  end) + +describe('matchaddpos()', function() +  it('errors out on invalid input', function() +    command('hi clear PreProc') +    eq('Vim(let):E5030: Empty list at position 0', +       exc_exec('let val = matchaddpos("PreProc", [[]])')) +    eq('Vim(let):E5030: Empty list at position 1', +       exc_exec('let val = matchaddpos("PreProc", [1, v:_null_list])')) +    eq('Vim(let):E5031: List or number required at position 1', +       exc_exec('let val = matchaddpos("PreProc", [1, v:_null_dict])')) +  end) +  it('works with 0 lnum', function() +    command('hi clear PreProc') +    eq(4, funcs.matchaddpos('PreProc', {1}, 3, 4)) +    eq({{ +      group='PreProc', +      pos1 = {1}, +      priority=3, +      id=4, +    }}, funcs.getmatches()) +    funcs.matchdelete(4) +    eq(4, funcs.matchaddpos('PreProc', {{0}, 1}, 3, 4)) +    eq({{ +      group='PreProc', +      pos1 = {1}, +      priority=3, +      id=4, +    }}, funcs.getmatches()) +    funcs.matchdelete(4) +    eq(4, funcs.matchaddpos('PreProc', {0, 1}, 3, 4)) +    eq({{ +      group='PreProc', +      pos1 = {1}, +      priority=3, +      id=4, +    }}, funcs.getmatches()) +  end) +  it('works with negative numbers', function() +    command('hi clear PreProc') +    eq(4, funcs.matchaddpos('PreProc', {-10, 1}, 3, 4)) +    eq({{ +      group='PreProc', +      pos1 = {1}, +      priority=3, +      id=4, +    }}, funcs.getmatches()) +    funcs.matchdelete(4) +    eq(4, funcs.matchaddpos('PreProc', {{-10}, 1}, 3, 4)) +    eq({{ +      group='PreProc', +      pos1 = {1}, +      priority=3, +      id=4, +    }}, funcs.getmatches()) +    funcs.matchdelete(4) +    eq(4, funcs.matchaddpos('PreProc', {{2, -1}, 1}, 3, 4)) +    eq({{ +      group='PreProc', +      pos1 = {1}, +      priority=3, +      id=4, +    }}, funcs.getmatches()) +    funcs.matchdelete(4) +    eq(4, funcs.matchaddpos('PreProc', {{2, 0, -1}, 1}, 3, 4)) +    eq({{ +      group='PreProc', +      pos1 = {1}, +      priority=3, +      id=4, +    }}, funcs.getmatches()) +  end) +  it('works with zero length', function() +    local screen = Screen.new(40, 5) +    screen:attach() +    funcs.setline(1, 'abcdef') +    command('hi PreProc guifg=Red') +    eq(4, funcs.matchaddpos('PreProc', {{1, 2, 0}}, 3, 4)) +    eq({{ +      group='PreProc', +      pos1 = {1, 2, 0}, +      priority=3, +      id=4, +    }}, funcs.getmatches()) +    screen:expect([[ +      ^a{1:b}cdef                                  | +      {2:~                                       }| +      {2:~                                       }| +      {2:~                                       }| +                                              | +    ]], {[1] = {foreground = Screen.colors.Red}, [2] = {bold = true, foreground = Screen.colors.Blue1}}) +  end) +end) | 
