diff options
Diffstat (limited to 'test/functional/legacy/076_completefunc_spec.lua')
-rw-r--r-- | test/functional/legacy/076_completefunc_spec.lua | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/test/functional/legacy/076_completefunc_spec.lua b/test/functional/legacy/076_completefunc_spec.lua new file mode 100644 index 0000000000..8af3be003e --- /dev/null +++ b/test/functional/legacy/076_completefunc_spec.lua @@ -0,0 +1,68 @@ +-- Tests for completefunc/omnifunc. + +local helpers = require('test.functional.helpers') +local feed, insert, source = helpers.feed, helpers.insert, helpers.source +local clear, expect, execute = helpers.clear, helpers.expect, helpers.execute + +describe('completefunc', function() + setup(clear) + + it('is working', function() + insert([=[ + +++ + one + two + three]=]) + + -- Test that nothing happens if the 'completefunc' opens + -- a new window (no completion, no crash). + source([=[ + function! DummyCompleteOne(findstart, base) + if a:findstart + return 0 + else + wincmd n + return ['onedef', 'oneDEF'] + endif + endfunction + setlocal completefunc=DummyCompleteOne + /^one + ]=]) + feed('A<C-X><C-U><C-N><esc>') + execute('q!') + source([=[ + function! DummyCompleteTwo(findstart, base) + if a:findstart + wincmd n + return 0 + else + return ['twodef', 'twoDEF'] + endif + endfunction + setlocal completefunc=DummyCompleteTwo + /^two + ]=]) + feed('A<C-X><C-U><C-N><esc>') + execute('q!') + -- Test that 'completefunc' works when it's OK. + source([=[ + function! DummyCompleteThree(findstart, base) + if a:findstart + return 0 + else + return ['threedef', 'threeDEF'] + endif + endfunction + setlocal completefunc=DummyCompleteThree + /^three + ]=]) + feed('A<C-X><C-U><C-N><esc>') + + -- Assert buffer contents. + expect([=[ + +++ + + two + threeDEF]=]) + end) +end) |