| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304 |
- **********************************************************************
- Execute (#112 On-demand loading should not suppress messages from ftplugin):
- call plug#begin('$PLUG_FIXTURES')
- Plug '$PLUG_FIXTURES/ftplugin-msg', { 'for': 'c' }
- call plug#end()
- redir => out
- tabnew a.c
- redir END
- Assert stridx(out, 'ftplugin') >= 0
- * The same applies to plug#load())
- redir => out
- call plug#load('ftplugin-msg')
- redir END
- Assert stridx(out, 'ftplugin') >= 0
- q
- **********************************************************************
- Execute (#114 Should not contain empty path in &rtp):
- call plug#begin('/tmp/plugged')
- call plug#end()
- Log &rtp
- Assert &rtp !~ ',,', 'Commas'
- Assert &rtp !~ '^,', 'Comma prefix'
- Assert &rtp !~ ',$', 'Comma suffix'
- **********************************************************************
- Execute (#130 Proper cleanup of on-demand loading triggers):
- augroup PlugLOD
- autocmd!
- augroup END
- " Cleared on command
- call ReloadPlug()
- call plug#begin('/tmp/plugged')
- Plug 'junegunn/vim-emoji', { 'on': ['EmojiCommand', 'EmojiCommand2', '<Plug>(EmojiMapping)'] }
- call plug#end()
- PlugInstall | q
- Assert exists(':EmojiCommand'), 'EmojiCommand not defined'
- Assert exists(':EmojiCommand2'), 'EmojiCommand2 not defined'
- Assert !empty(mapcheck('<Plug>(EmojiMapping)')), '<Plug>(EmojiMapping) not defined'
- silent! EmojiCommand
- Assert !exists(':EmojiCommand'), 'EmojiCommand defined'
- Assert !exists(':EmojiCommand2'), 'EmojiCommand2 defined'
- Assert empty(mapcheck('<Plug>(EmojiMapping)')), '<Plug>(EmojiMapping) defined'
- " Cleared on FileType
- call ReloadPlug()
- call plug#begin('/tmp/plugged')
- Plug 'junegunn/vim-emoji', { 'on': ['EmojiCommandExtra', '<Plug>(EmojiMappingExtra)'], 'for': ['emoji'] }
- call plug#end()
- Assert exists(':EmojiCommandExtra'), 'EmojiCommandExtra not defined'
- Assert !empty(mapcheck('<Plug>(EmojiMappingExtra)')), '<Plug>(EmojiMappingExtra) not defined'
- setf emoji
- Assert !exists(':EmojiCommandExtra'), 'EmojiCommandExtra defined'
- Assert empty(mapcheck('<Plug>(EmojiMappingExtra)')), '<Plug>(EmojiMappingExtra) defined'
- **********************************************************************
- Execute (#131 Syntax error):
- call plug#begin('/proc/no-permission')
- Plug 'junegunn/vim-emoji'
- call plug#end()
- redir => out
- silent PlugInstall
- redir END
- Assert out =~ 'Invalid plug directory: /proc/no-permission', out
- **********************************************************************
- Execute (#139-1 Using new remote branch):
- " Make sure to remove the clone
- call plug#begin('/tmp/plugged')
- call plug#end()
- PlugClean!
- " Install master branch
- call plug#begin('/tmp/plugged')
- Plug expand('file:////tmp/new-branch')
- call plug#end()
- PlugUpdate
- unlet! g:foo g:bar g:baz
- call plug#load('new-branch')
- Assert exists('g:foo'), 'g:foo should be found'
- Assert !exists('g:bar'), 'g:bar should not be found'
- Assert !exists('g:baz'), 'g:baz should not be found'
- " Create a new branch on origin
- call system('cd /tmp/new-branch && git checkout -b new &&'
- \. 'echo "let g:bar = 1" > plugin/bar.vim && git add plugin/bar.vim &&'
- \. 'git commit -m second')
- " We're setting up two plugins so that parallel installer is used
- call plug#begin('/tmp/plugged')
- Plug 'junegunn/seoul256.vim'
- Plug expand('file:////tmp/new-branch'), { 'branch': 'new' }
- call plug#end()
- PlugUpdate
- silent %y
- Log @"
- Assert @" !~? 'error', 'Should be able to use new remote branch: ' . @"
- unlet! g:foo g:bar g:baz
- call plug#load('new-branch')
- Assert exists('g:foo'), 'g:foo should be found'
- Assert exists('g:bar'), 'g:bar should be found'
- Assert !exists('g:baz'), 'g:baz should not be found'
- call PlugStatusSorted()
- Expect:
- - new-branch: OK
- - seoul256.vim: OK
- Finished. 0 error(s).
- [==]
- Execute (#139-2 Using yet another new remote branch):
- " Create another branch on origin
- call system('cd /tmp/new-branch && git checkout master &&'
- \. 'git checkout -b brand-new &&'
- \. 'echo "let g:baz = 1" > plugin/baz.vim && git add plugin/baz.vim &&'
- \. 'git commit -m third')
- " Test Vim installer here
- call plug#begin('/tmp/plugged')
- Plug expand('file:////tmp/new-branch'), { 'branch': 'brand-new' }
- call plug#end()
- PlugUpdate
- silent %y
- Log @"
- Assert @" !~? 'error', 'Should be able to use new remote branch: ' . @"
- unlet! g:foo g:bar g:baz
- call plug#load('new-branch')
- Assert exists('g:foo'), 'g:foo should be found'
- Assert !exists('g:bar'), 'g:bar should not be found'
- Assert exists('g:baz'), 'g:baz should be found'
- call PlugStatusSorted()
- Expect:
- - new-branch: OK
- Finished. 0 error(s).
- [=]
- Execute (#139-3 Should fail when not possible to fast-forward):
- " Commit on cloned repo
- call system('cd /tmp/plugged/new-branch && git checkout master &&'
- \. 'touch foobar && git add foobar && git commit -m foobar')
- " Different commit on remote
- call system('cd /tmp/new-branch && git checkout master &&'
- \. 'touch foobaz && git add foobaz && git commit -m foobaz')
- for multi in [0, 1]
- call plug#begin('/tmp/plugged')
- if multi
- Plug 'junegunn/seoul256.vim'
- endif
- Plug expand('file:////tmp/new-branch')
- call plug#end()
- PlugUpdate
- silent %y
- Assert @" =~ 'Not possible to fast-forward', @"
- endfor
- q
- **********************************************************************
- Execute (#145: Merging on-demand loading triggers - cmd):
- unlet! g:xxx g:yyy
- call plug#begin()
- Plug '$PLUG_FIXTURES/xxx', { 'on': 'XXX' }
- Plug '$PLUG_FIXTURES/yyy', { 'on': ['XXX', 'YYY'] }
- call plug#end()
- silent! XXX
- Assert exists('g:xxx'), 'xxx is not loaded'
- Assert exists('g:yyy'), 'yyy is not loaded'
- Assert !exists(':YYY')
- Execute (#145: Merging on-demand loading triggers - map):
- unlet! g:xxx g:yyy
- call ReloadPlug()
- call plug#begin()
- Plug '$PLUG_FIXTURES/xxx', { 'on': '<Plug>(xxx)' }
- Plug '$PLUG_FIXTURES/yyy', { 'on': ['<Plug>(xxx)' ,'<Plug>(yyy)' ] }
- call plug#end()
- Assert !empty(mapcheck("<Plug>(xxx)"))
- Assert !empty(mapcheck("<Plug>(yyy)"))
- # FIXME feedkeys() cannot be tested with Vader
- call plug#load('xxx', 'yyy')
- Assert empty(mapcheck("<Plug>(xxx)"))
- Assert empty(mapcheck("<Plug>(yyy)"))
- **********************************************************************
- Execute (#159: shell=/bin/tcsh):
- let org = &shell
- try
- set shell=/bin/tcsh
- call plug#begin('/tmp/plugged')
- Plug 'junegunn/seoul256.vim'
- call plug#end()
- PlugStatus
- Log getline(1, '$')
- q
- AssertEqual '/bin/tcsh', &shell
- finally
- let &shell = org
- endtry
- **********************************************************************
- Execute (#154: Spaces in &rtp should not be escaped):
- call plug#begin('/tmp/plug it')
- Plug 'seoul256 vim'
- call plug#end()
- Log &rtp
- Assert stridx(&rtp, 'plug it/seoul256 vim') >= 0
- **********************************************************************
- Execute (#184: Duplicate entries in &rtp):
- call plug#begin('/tmp/plugged')
- Plug 'plugin1'
- \| Plug 'plugin0'
- Plug 'plugin2'
- \| Plug 'plugin0'
- \| Plug 'plugin1'
- call plug#end()
- Log &rtp
- AssertEqual 3, len(filter(split(&rtp, ','), 'stridx(v:val, "plugged") >= 0'))
- **********************************************************************
- Execute (#236: Plugin removed from &rtp when .vimrc is reloaded):
- unlet! g:loaded_easy_align_plugin
- silent! delc EasyAlign
- call ReloadPlug()
- call plug#begin('/tmp/plugged')
- Plug 'junegunn/vim-easy-align', { 'on': 'EasyAlign' }
- call plug#end()
- PlugInstall | q
- Assert &rtp !~ '/vim-easy-align', 'Plugin should not be in &rtp'
- %EasyAlign=
- Assert &rtp =~ '/vim-easy-align', 'Plugin should be in &rtp'
- call plug#begin('/tmp/plugged')
- Plug 'junegunn/vim-easy-align', { 'on': 'EasyAlign' }
- call plug#end()
- Assert &rtp =~ '/vim-easy-align', 'Plugin should still be in &rtp'
- **********************************************************************
- Execute (#350: Ruby installer failed to unshallow tagged plugin on update):
- call plug#begin('/tmp/plugged')
- call plug#end()
- PlugClean!
- " Shallow clone. We should have at least 2 plugins to enable parallel installer.
- call plug#begin('/tmp/plugged')
- Plug 'junegunn/vim-easy-align'
- Plug 'junegunn/seoul256.vim'
- call plug#end()
- PlugUpdate
- Assert filereadable(g:plugs['vim-easy-align'].dir.'/.git/shallow')
- " Now unshallowed
- call plug#begin('/tmp/plugged')
- Plug 'junegunn/vim-easy-align', { 'tag': '2.9.0' }
- Plug 'junegunn/seoul256.vim'
- call plug#end()
- PlugUpdate
- Assert !filereadable(g:plugs['vim-easy-align'].dir.'/.git/shallow')
- q
- **********************************************************************
- Execute (#474: Load ftdetect files in filetypedetect augroup):
- call plug#begin('/tmp/plugged')
- Plug 'junegunn/rust.vim', { 'for': 'rust', 'commit': '115d321d383eb96d438466c56cc871fcc1bd0faa' }
- call plug#end()
- PlugInstall
- q
- tabnew /tmp/any.rs
- AssertEqual 'rust', &filetype
- Log &filetype
- filetype detect
- AssertEqual 'rust', &filetype
- Log &filetype
- bd
|