diff src/testdir/test_packadd.vim @ 8402:eed1ca42f9aa v7.4.1492

commit https://github.com/vim/vim/commit/35ca0e7a1cb6e6daef8e0052a8437801226cef19 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Mar 5 17:41:49 2016 +0100 patch 7.4.1492 Problem: No command line completion for ":packadd". Solution: Implement completion. (Hirohito Higashi)
author Christian Brabandt <cb@256bit.org>
date Sat, 05 Mar 2016 17:45:05 +0100
parents f5972de59001
children 1a6527cce675
line wrap: on
line diff
--- a/src/testdir/test_packadd.vim
+++ b/src/testdir/test_packadd.vim
@@ -55,3 +55,24 @@ func Test_packadd_noload()
   packadd! mytest
   call assert_equal(new_rtp, &rtp)
 endfunc
+
+" Check command-line completion for 'packadd'
+func Test_packadd_completion()
+  let optdir1 = &packpath . '/pack/mine/opt'
+  let optdir2 = &packpath . '/pack/candidate/opt'
+
+  call mkdir(optdir1 . '/pluginA', 'p')
+  call mkdir(optdir1 . '/pluginC', 'p')
+  call mkdir(optdir2 . '/pluginB', 'p')
+  call mkdir(optdir2 . '/pluginC', 'p')
+
+  let li = []
+  call feedkeys(":packadd \<Tab>')\<C-B>call add(li, '\<CR>", 't')
+  call feedkeys(":packadd " . repeat("\<Tab>", 2) . "')\<C-B>call add(li, '\<CR>", 't')
+  call feedkeys(":packadd " . repeat("\<Tab>", 3) . "')\<C-B>call add(li, '\<CR>", 't')
+  call feedkeys(":packadd " . repeat("\<Tab>", 4) . "')\<C-B>call add(li, '\<CR>", 'tx')
+  call assert_equal("packadd pluginA", li[0])
+  call assert_equal("packadd pluginB", li[1])
+  call assert_equal("packadd pluginC", li[2])
+  call assert_equal("packadd ", li[3])
+endfunc