diff options
Diffstat (limited to 'test/functional/viml/completion_spec.lua')
| -rw-r--r-- | test/functional/viml/completion_spec.lua | 70 | 
1 files changed, 37 insertions, 33 deletions
| diff --git a/test/functional/viml/completion_spec.lua b/test/functional/viml/completion_spec.lua index 5a37cb8f43..216ccb3744 100644 --- a/test/functional/viml/completion_spec.lua +++ b/test/functional/viml/completion_spec.lua @@ -2,11 +2,9 @@ local helpers = require('test.functional.helpers')(after_each)  local Screen = require('test.functional.ui.screen')  local clear, feed = helpers.clear, helpers.feed  local eval, eq, neq = helpers.eval, helpers.eq, helpers.neq -local execute, source, expect = helpers.execute, helpers.source, helpers.expect +local feed_command, source, expect = helpers.feed_command, helpers.source, helpers.expect  local meths = helpers.meths -if helpers.pending_win32(pending) then return end -  describe('completion', function()    local screen @@ -61,38 +59,44 @@ describe('completion', function()      it('returns expected dict in normal completion', function()        feed('ifoo<ESC>o<C-x><C-n>')        eq('foo', eval('getline(2)')) -      eq({word = 'foo', abbr = '', menu = '', info = '', kind = ''}, +      eq({word = 'foo', abbr = '', menu = '', +          info = '', kind = '', user_data = ''},          eval('v:completed_item'))      end)      it('is readonly', function()        screen:try_resize(80, 8)        feed('ifoo<ESC>o<C-x><C-n><ESC>') -      execute('let v:completed_item.word = "bar"') +      feed_command('let v:completed_item.word = "bar"') +      neq(nil, string.find(eval('v:errmsg'), '^E46: ')) +      feed_command('let v:errmsg = ""') + +      feed_command('let v:completed_item.abbr = "bar"')        neq(nil, string.find(eval('v:errmsg'), '^E46: ')) -      execute('let v:errmsg = ""') +      feed_command('let v:errmsg = ""') -      execute('let v:completed_item.abbr = "bar"') +      feed_command('let v:completed_item.menu = "bar"')        neq(nil, string.find(eval('v:errmsg'), '^E46: ')) -      execute('let v:errmsg = ""') +      feed_command('let v:errmsg = ""') -      execute('let v:completed_item.menu = "bar"') +      feed_command('let v:completed_item.info = "bar"')        neq(nil, string.find(eval('v:errmsg'), '^E46: ')) -      execute('let v:errmsg = ""') +      feed_command('let v:errmsg = ""') -      execute('let v:completed_item.info = "bar"') +      feed_command('let v:completed_item.kind = "bar"')        neq(nil, string.find(eval('v:errmsg'), '^E46: ')) -      execute('let v:errmsg = ""') +      feed_command('let v:errmsg = ""') -      execute('let v:completed_item.kind = "bar"') +      feed_command('let v:completed_item.user_data = "bar"')        neq(nil, string.find(eval('v:errmsg'), '^E46: ')) -      execute('let v:errmsg = ""') +      feed_command('let v:errmsg = ""')      end)      it('returns expected dict in omni completion', function()        source([[        function! TestOmni(findstart, base) abort          return a:findstart ? 0 : [{'word': 'foo', 'abbr': 'bar',          \ 'menu': 'baz', 'info': 'foobar', 'kind': 'foobaz'}, -        \ {'word': 'word', 'abbr': 'abbr', 'menu': 'menu', 'info': 'info', 'kind': 'kind'}] +        \ {'word': 'word', 'abbr': 'abbr', 'menu': 'menu', +        \  'info': 'info', 'kind': 'kind'}]        endfunction        setlocal omnifunc=TestOmni        ]]) @@ -109,7 +113,7 @@ describe('completion', function()          {3:-- Omni completion (^O^N^P) }{4:match 1 of 2}                    |        ]])        eq({word = 'foo', abbr = 'bar', menu = 'baz', -          info = 'foobar', kind = 'foobaz'}, +          info = 'foobar', kind = 'foobaz', user_data = ''},          eval('v:completed_item'))      end)    end) @@ -125,7 +129,7 @@ describe('completion', function()      end)      it('inserts the first candidate if default', function() -      execute('set completeopt+=menuone') +      feed_command('set completeopt+=menuone')        feed('ifoo<ESC>o')        screen:expect([[          foo                                                         | @@ -176,7 +180,7 @@ describe('completion', function()        eq('foo', eval('getline(3)'))      end)      it('selects the first candidate if noinsert', function() -      execute('set completeopt+=menuone,noinsert') +      feed_command('set completeopt+=menuone,noinsert')        feed('ifoo<ESC>o<C-x><C-n>')        screen:expect([[          foo                                                         | @@ -216,7 +220,7 @@ describe('completion', function()        eq('foo', eval('getline(3)'))      end)      it('does not insert the first candidate if noselect', function() -      execute('set completeopt+=menuone,noselect') +      feed_command('set completeopt+=menuone,noselect')        feed('ifoo<ESC>o<C-x><C-n>')        screen:expect([[          foo                                                         | @@ -256,7 +260,7 @@ describe('completion', function()        eq('bar', eval('getline(3)'))      end)      it('does not select/insert the first candidate if noselect and noinsert', function() -      execute('set completeopt+=menuone,noselect,noinsert') +      feed_command('set completeopt+=menuone,noselect,noinsert')        feed('ifoo<ESC>o<C-x><C-n>')        screen:expect([[          foo                                                         | @@ -305,14 +309,14 @@ describe('completion', function()        eq('', eval('getline(3)'))      end)      it('does not change modified state if noinsert', function() -      execute('set completeopt+=menuone,noinsert') -      execute('setlocal nomodified') +      feed_command('set completeopt+=menuone,noinsert') +      feed_command('setlocal nomodified')        feed('i<C-r>=TestComplete()<CR><ESC>')        eq(0, eval('&l:modified'))      end)      it('does not change modified state if noselect', function() -      execute('set completeopt+=menuone,noselect') -      execute('setlocal nomodified') +      feed_command('set completeopt+=menuone,noselect') +      feed_command('setlocal nomodified')        feed('i<C-r>=TestComplete()<CR><ESC>')        eq(0, eval('&l:modified'))      end) @@ -326,8 +330,8 @@ describe('completion', function()          return ''        endfunction        ]]) -      execute('set completeopt+=noselect,noinsert') -      execute('inoremap <right> <c-r>=TestComplete()<cr>') +      feed_command('set completeopt+=noselect,noinsert') +      feed_command('inoremap <right> <c-r>=TestComplete()<cr>')      end)      local tests = { @@ -541,7 +545,7 @@ describe('completion', function()          return ''        endfunction        ]]) -      execute("set completeopt=menuone,noselect") +      feed_command("set completeopt=menuone,noselect")      end)      it("works", function() @@ -707,7 +711,7 @@ describe('completion', function()    it('disables folding during completion', function () -    execute("set foldmethod=indent") +    feed_command("set foldmethod=indent")      feed('i<Tab>foo<CR><Tab>bar<Esc>gg')      screen:expect([[                ^foo                                                 | @@ -734,7 +738,7 @@ describe('completion', function()    end)    it('popupmenu is not interrupted by events', function () -    execute("set complete=.") +    feed_command("set complete=.")      feed('ifoobar fooegg<cr>f<c-p>')      screen:expect([[ @@ -852,8 +856,8 @@ describe('completion', function()    end)    it("'ignorecase' 'infercase' CTRL-X CTRL-N #6451", function() -    execute('set ignorecase infercase') -    execute('edit BACKERS.md') +    feed_command('set ignorecase infercase') +    feed_command('edit BACKERS.md')      feed('oX<C-X><C-N>')      screen:expect([[        # Bountysource Backers                                      | @@ -868,13 +872,13 @@ describe('completion', function()    end)  end) -describe('External completion popupmenu', function() +describe('ui/ext_popupmenu', function()    local screen    local items, selected, anchor    before_each(function()      clear()      screen = Screen.new(60, 8) -    screen:attach({rgb=true, popupmenu_external=true}) +    screen:attach({rgb=true, ext_popupmenu=true})      screen:set_default_attr_ids({        [1] = {bold=true, foreground=Screen.colors.Blue},        [2] = {bold = true}, | 
