Some checks failed
		
		
	
	Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
				
			Detach Plugins / check (GitHub.vim) (push) Has been cancelled
				
			Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
				
			Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
				
			Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
				
			Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
				
			Detach Plugins / check (git.vim) (push) Has been cancelled
				
			Detach Plugins / check (iedit.vim) (push) Has been cancelled
				
			Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
				
			Detach Plugins / check (vim-chat) (push) Has been cancelled
				
			Detach Plugins / check (vim-cheat) (push) Has been cancelled
				
			Detach Plugins / check (vim-todo) (push) Has been cancelled
				
			Detach Plugins / check (xmake.vim) (push) Has been cancelled
				
			test / Linux (nvim, nightly) (push) Has been cancelled
				
			test / Linux (nvim, v0.3.8) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.2) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.3) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.4) (push) Has been cancelled
				
			test / Linux (nvim, v0.5.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.5.1) (push) Has been cancelled
				
			test / Linux (nvim, v0.6.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.6.1) (push) Has been cancelled
				
			test / Linux (nvim, v0.7.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.7.2) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.1) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.2) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.3) (push) Has been cancelled
				
			test / Linux (nvim, v0.9.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.9.1) (push) Has been cancelled
				
			test / Linux (true, vim, v7.4.052) (push) Has been cancelled
				
			test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
				
			test / Linux (true, vim, v7.4.629) (push) Has been cancelled
				
			test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
				
			test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
				
			test / Linux (vim, nightly) (push) Has been cancelled
				
			test / Linux (vim, v8.0.0184) (push) Has been cancelled
				
			test / Linux (vim, v8.0.1453) (push) Has been cancelled
				
			test / Linux (vim, v8.1.2269) (push) Has been cancelled
				
			test / Linux (vim, v8.2.2434) (push) Has been cancelled
				
			test / Linux (vim, v8.2.3995) (push) Has been cancelled
				
			test / Windows (nvim, nightly) (push) Has been cancelled
				
			test / Windows (nvim, v0.3.8) (push) Has been cancelled
				
			test / Windows (nvim, v0.4.2) (push) Has been cancelled
				
			test / Windows (nvim, v0.4.3) (push) Has been cancelled
				
			test / Windows (nvim, v0.4.4) (push) Has been cancelled
				
			test / Windows (nvim, v0.5.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.5.1) (push) Has been cancelled
				
			test / Windows (nvim, v0.6.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.6.1) (push) Has been cancelled
				
			test / Windows (nvim, v0.7.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.7.2) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.1) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.2) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.3) (push) Has been cancelled
				
			test / Windows (nvim, v0.9.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.9.1) (push) Has been cancelled
				
			test / Windows (vim, nightly) (push) Has been cancelled
				
			test / Windows (vim, v7.4.1185) (push) Has been cancelled
				
			test / Windows (vim, v7.4.1689) (push) Has been cancelled
				
			test / Windows (vim, v8.0.0027) (push) Has been cancelled
				
			test / Windows (vim, v8.0.1453) (push) Has been cancelled
				
			test / Windows (vim, v8.1.2269) (push) Has been cancelled
				
			test / Windows (vim, v8.2.2434) (push) Has been cancelled
				
			test / Windows (vim, v8.2.3995) (push) Has been cancelled
				
			docker / docker (push) Has been cancelled
				
			mirror / check (coding) (push) Has been cancelled
				
			mirror / check (gitee) (push) Has been cancelled
				
			mirror / check (gitlab) (push) Has been cancelled
				
			
		
			
				
	
	
		
			716 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			716 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
"set verbose=1
 | 
						|
 | 
						|
let s:suite = themis#suite('install')
 | 
						|
let s:assert = themis#helper('assert')
 | 
						|
 | 
						|
let s:path = fnamemodify('.cache', ':p')
 | 
						|
if s:path !~ '/$'
 | 
						|
  let s:path .= '/'
 | 
						|
endif
 | 
						|
let s:runtimepath_save = &runtimepath
 | 
						|
let s:filetype_save = &l:filetype
 | 
						|
 | 
						|
let s:this_script = fnamemodify(expand('<sfile>'), ':p')
 | 
						|
 | 
						|
 | 
						|
function! s:dein_install() abort
 | 
						|
  return dein#install#_update([], 'install', 0)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:dein_update() abort
 | 
						|
  return dein#install#_update([], 'update', 0)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.before_each() abort
 | 
						|
  call dein#min#_init()
 | 
						|
  let &runtimepath = s:runtimepath_save
 | 
						|
  let &l:filetype = s:filetype_save
 | 
						|
  let g:temp = tempname()
 | 
						|
  let g:dein#install_progress_type = 'echo'
 | 
						|
  let g:dein#enable_notification = v:false
 | 
						|
endfunction
 | 
						|
 | 
						|
" Note: It must be checked in the first
 | 
						|
function! s:suite.install() abort
 | 
						|
  let g:dein#install_progress_type = 'title'
 | 
						|
  let g:dein#enable_notification = v:true
 | 
						|
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/deoplete.nvim')
 | 
						|
  call dein#add('Shougo/deol.nvim')
 | 
						|
  call dein#add('Shougo/neosnippet.vim')
 | 
						|
  call dein#add('Shougo/neopairs.vim')
 | 
						|
  call dein#add('Shougo/defx.nvim')
 | 
						|
  call dein#add('Shougo/denite.nvim')
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  let plugin = dein#get('deoplete.nvim')
 | 
						|
  call s:assert.true(isdirectory(plugin.rtp))
 | 
						|
  call s:assert.equals(dein#each('git gc'), 0)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.tap() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
  call s:assert.equals(dein#tap('deoplete.nvim'), 0)
 | 
						|
  call dein#add('Shougo/deoplete.nvim')
 | 
						|
  call dein#add('Shougo/denite.nvim', {'if': 0})
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
  call s:assert.equals(dein#tap('deoplete.nvim'), 1)
 | 
						|
  call s:assert.equals(dein#tap('denite.nvim'), 0)
 | 
						|
  call dein#end()
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.reinstall() abort
 | 
						|
  let g:dein#install_progress_type = 'none'
 | 
						|
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/deoplete.nvim')
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  call s:assert.equals(dein#reinstall('deoplete.nvim'), 0)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.direct_install() abort
 | 
						|
  let g:dein#install_progress_type = 'none'
 | 
						|
  call dein#begin(s:path)
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  call s:assert.equals(dein#direct_install('Shougo/deoplete.nvim'), 0)
 | 
						|
  call s:assert.equals(dein#get('deoplete.nvim').sourced, 1)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.update() abort
 | 
						|
  let g:dein#install_progress_type = 'echo'
 | 
						|
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/neopairs.vim', {'frozen': 1})
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_update(), 0)
 | 
						|
 | 
						|
  let plugin = dein#get('neopairs.vim')
 | 
						|
  let plugin2 = dein#get('neobundle.vim')
 | 
						|
 | 
						|
  call s:assert.equals(plugin.rtp,
 | 
						|
        \ s:path.'repos/github.com/Shougo/neopairs.vim')
 | 
						|
 | 
						|
  call s:assert.true(isdirectory(plugin.rtp))
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.check_install() abort
 | 
						|
  let g:dein#install_progress_type = 'tabline'
 | 
						|
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/deoplete.nvim')
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  call s:assert.false(dein#check_install())
 | 
						|
  call s:assert.equals(dein#check_install(['hoge']), -1)
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.fetch() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/deoplete.nvim', { 'rtp': '' })
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  let plugin = dein#get('deoplete.nvim')
 | 
						|
 | 
						|
  call s:assert.equals(plugin.rtp, '')
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  call s:assert.equals(plugin.sourced, 0)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.reload() abort
 | 
						|
  " 1st load
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/deoplete.nvim')
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  " 2nd load
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/deoplete.nvim')
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  let plugin = dein#get('deoplete.nvim')
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.if() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/deoplete.nvim', {'if': 0, 'on_cmd': 'FooBar'})
 | 
						|
  call s:assert.equals(dein#get('deoplete.nvim').if, 0)
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.lazy_manual() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/deoplete.nvim', { 'lazy': 1 })
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  let plugin = dein#get('deoplete.nvim')
 | 
						|
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin.rtp })), 0)
 | 
						|
 | 
						|
  call s:assert.equals(len(dein#source(['deoplete.nvim'])), 1)
 | 
						|
 | 
						|
  call s:assert.equals(plugin.sourced, 1)
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin.rtp })), 1)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.lazy_on_ft() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/deoplete.nvim', { 'on_ft': 'cpp' })
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  let plugin = dein#get('deoplete.nvim')
 | 
						|
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin.rtp })), 0)
 | 
						|
 | 
						|
  set filetype=c
 | 
						|
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin.rtp })), 0)
 | 
						|
 | 
						|
  set filetype=cpp
 | 
						|
 | 
						|
  call s:assert.equals(plugin.sourced, 1)
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin.rtp })), 1)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.lazy_on_path() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/deol.nvim', { 'on_path': '.*' })
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  let plugin = dein#get('deol.nvim')
 | 
						|
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin.rtp })), 0)
 | 
						|
 | 
						|
  execute 'edit' tempname()
 | 
						|
 | 
						|
  call s:assert.equals(plugin.sourced, 1)
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin.rtp })), 1)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.lazy_on_if() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  let temp = tempname()
 | 
						|
  call dein#add('Shougo/deol.nvim',
 | 
						|
        \ { 'on_if': '&l:filetype ==# "foobar"' })
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  let plugin = dein#get('deol.nvim')
 | 
						|
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin.rtp })), 0)
 | 
						|
 | 
						|
  set filetype=foobar
 | 
						|
 | 
						|
  call s:assert.equals(plugin.lazy, 1)
 | 
						|
  call s:assert.equals(plugin.sourced, 1)
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin.rtp })), 1)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.lazy_on_source() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/neopairs.vim',
 | 
						|
        \ { 'on_source': ['deol.nvim'] })
 | 
						|
  call dein#add('Shougo/deol.nvim', { 'lazy': 1 })
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  let plugin = dein#get('neopairs.vim')
 | 
						|
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin.rtp })), 0)
 | 
						|
 | 
						|
  call dein#source('deol.nvim')
 | 
						|
 | 
						|
  call s:assert.equals(plugin.sourced, 1)
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin.rtp })), 1)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.lazy_on_func() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/neosnippet.vim', { 'lazy': 1 })
 | 
						|
  call dein#add('Shougo/deoplete.nvim',
 | 
						|
        \ { 'on_func': 'deoplete#initialize' })
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  let plugin = dein#get('deoplete.nvim')
 | 
						|
  let plugin2 = dein#get('neosnippet.vim')
 | 
						|
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin.rtp })), 0)
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin2.rtp })), 0)
 | 
						|
 | 
						|
  call dein#autoload#_on_func('deoplete#initialize')
 | 
						|
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin.rtp })), 1)
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin2.rtp })), 0)
 | 
						|
 | 
						|
  call neosnippet#expandable()
 | 
						|
 | 
						|
  call s:assert.equals(plugin.sourced, 1)
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin2.rtp })), 1)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.lazy_on_cmd() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/deoplete.nvim',
 | 
						|
        \ { 'on_cmd': 'NeoCompleteDisable' })
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  let plugin = dein#get('deoplete.nvim')
 | 
						|
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin.rtp })), 0)
 | 
						|
 | 
						|
  NeoCompleteDisable
 | 
						|
 | 
						|
  call s:assert.equals(plugin.sourced, 1)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.lazy_on_map() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/deol.nvim', { 'on_map': {'n': '<Plug>'} })
 | 
						|
  call dein#add('Shougo/neosnippet.vim', { 'on_map': {'n': '<Plug>'} })
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  let plugin1 = dein#get('deol.nvim')
 | 
						|
  let plugin2 = dein#get('neosnippet.vim')
 | 
						|
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin1.rtp })), 0)
 | 
						|
 | 
						|
  call dein#autoload#_on_map('', 'deol.nvim', 'n')
 | 
						|
  call dein#autoload#_on_map('', 'neosnippet.vim', 'n')
 | 
						|
 | 
						|
  call s:assert.equals(plugin1.sourced, 1)
 | 
						|
  call s:assert.equals(plugin2.sourced, 1)
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin1.rtp })), 1)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.lazy_on_pre_cmd() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/deol.nvim', { 'lazy': 1 })
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  let plugin = dein#get('deol.nvim')
 | 
						|
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin.rtp })), 0)
 | 
						|
 | 
						|
  call dein#autoload#_on_pre_cmd('Deol')
 | 
						|
 | 
						|
  call s:assert.equals(plugin.sourced, 1)
 | 
						|
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin.rtp })), 1)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.depends() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/deoplete.nvim', { 'depends': 'deol.nvim' })
 | 
						|
  call dein#add('Shougo/deol.nvim', {'merged': 0})
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  let plugin = dein#get('deol.nvim')
 | 
						|
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin.rtp })), 1)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.depends_lazy() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/deoplete.nvim',
 | 
						|
        \ { 'depends': 'deol.nvim', 'lazy': 1 })
 | 
						|
  call dein#add('Shougo/deol.nvim', { 'lazy': 1 })
 | 
						|
 | 
						|
  let plugin = dein#get('deol.nvim')
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  call s:assert.equals(plugin.sourced, 0)
 | 
						|
  call s:assert.equals(isdirectory(plugin.rtp), 1)
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin.rtp })), 0)
 | 
						|
 | 
						|
  call s:assert.equals(len(dein#source(['deoplete.nvim'])), 2)
 | 
						|
 | 
						|
  call s:assert.equals(plugin.sourced, 1)
 | 
						|
 | 
						|
  call s:assert.equals(
 | 
						|
        \ len(filter(dein#util#_split_rtp(&runtimepath),
 | 
						|
        \     { _, val -> val ==# plugin.rtp })), 1)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.depends_error_lazy() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/deoplete.nvim',
 | 
						|
        \ { 'depends': 'defx.nvim' })
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  call s:assert.equals(dein#end(), 0)
 | 
						|
 | 
						|
  call s:assert.equals(len(dein#source(['deoplete.nvim'])), 0)
 | 
						|
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/defx.nvim', { 'lazy': 1 })
 | 
						|
  call dein#add('Shougo/deoplete.nvim',
 | 
						|
        \ { 'depends': 'defx.nvim' })
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  call s:assert.equals(dein#end(), 0)
 | 
						|
 | 
						|
  call s:assert.equals(len(dein#source(['deoplete.nvim'])), 0)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.hooks() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  let g:dein#_hook_add = 'let g:foo = 0'
 | 
						|
 | 
						|
  function! Foo() abort
 | 
						|
  endfunction
 | 
						|
  call dein#add('Shougo/deoplete.nvim', {
 | 
						|
        \ 'hook_source':
 | 
						|
        \   join(['let g:foobar = 2'], "\n"),
 | 
						|
        \ 'hook_post_source':
 | 
						|
        \   join(['if 1', 'let g:bar = 3', 'endif'], "\n"),
 | 
						|
        \ })
 | 
						|
  call dein#add('Shougo/neosnippet.vim', {
 | 
						|
        \ 'hook_add': function('Foo'),
 | 
						|
        \ 'hook_post_source': function('Foo'),
 | 
						|
        \ })
 | 
						|
  call dein#set_hook('neosnippet.vim', 'hook_source', function('Foo'))
 | 
						|
  call dein#set_hook(['deoplete.nvim'], 'hook_add', 'let g:foobar = 1')
 | 
						|
  call dein#set_hook([], 'hook_add', 'let g:baz = 3')
 | 
						|
 | 
						|
  call s:assert.equals(g:foobar, 1)
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  call s:assert.equals(dein#end(), 0)
 | 
						|
  call s:assert.equals(g:foo, 0)
 | 
						|
 | 
						|
  call dein#call_hook('source')
 | 
						|
  call s:assert.equals(g:foobar, 2)
 | 
						|
  call dein#call_hook('post_source')
 | 
						|
  call s:assert.equals(g:bar, 3)
 | 
						|
  call s:assert.equals(g:baz, 3)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.no_toml() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call writefile([
 | 
						|
        \ 'foobar'
 | 
						|
        \ ], g:temp)
 | 
						|
  call s:assert.equals(dein#load_toml(g:temp, {}), 1)
 | 
						|
 | 
						|
  call s:assert.equals(dein#end(), 0)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.no_plugins() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call writefile([], g:temp)
 | 
						|
  call s:assert.equals(dein#load_toml(g:temp), 0)
 | 
						|
 | 
						|
  call s:assert.equals(dein#end(), 0)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.no_repository() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call writefile([
 | 
						|
        \ "[[plugins]]",
 | 
						|
        \ "filetypes = 'all'",
 | 
						|
        \ "[[plugins]]",
 | 
						|
        \ "filetypes = 'all'"
 | 
						|
        \ ], g:temp)
 | 
						|
  call s:assert.equals(dein#load_toml(g:temp), 1)
 | 
						|
 | 
						|
  call s:assert.equals(dein#end(), 0)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.normal() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call writefile([
 | 
						|
        \ "[[plugins]]",
 | 
						|
        \ "repo = 'Shougo/deoplete.nvim'",
 | 
						|
        \ "on_ft = 'all'",
 | 
						|
        \ ], g:temp)
 | 
						|
  call s:assert.equals(dein#load_toml(g:temp, {'frozen': 1}), 0)
 | 
						|
 | 
						|
  let plugin = dein#get('deoplete.nvim')
 | 
						|
  call s:assert.equals(plugin.frozen, 1)
 | 
						|
  call s:assert.equals(plugin.on_ft, ['all'])
 | 
						|
 | 
						|
  call s:assert.equals(dein#end(), 0)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.local() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add('Shougo/neopairs.vim', {'frozen': 1})
 | 
						|
  call dein#local(s:path.'repos/github.com/Shougo/', {'timeout': 1})
 | 
						|
 | 
						|
  call s:assert.equals(dein#get('neopairs.vim').sourced, 0)
 | 
						|
  call s:assert.equals(dein#get('neopairs.vim').timeout, 1)
 | 
						|
 | 
						|
  call s:assert.equals(dein#end(), 0)
 | 
						|
 | 
						|
  let plugin2 = dein#get('neopairs.vim')
 | 
						|
 | 
						|
  call s:assert.equals(plugin2.rtp,
 | 
						|
        \ s:path.'repos/github.com/Shougo/neopairs.vim')
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.clean() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call s:assert.equals(dein#end(), 0)
 | 
						|
 | 
						|
  call s:assert.true(!empty(dein#check_clean()))
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.local_nongit() abort
 | 
						|
  let temp = tempname()
 | 
						|
  call mkdir(temp.'/plugin', 'p')
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#local(temp, {}, ['plugin'])
 | 
						|
 | 
						|
  call s:assert.equals(dein#end(), 0)
 | 
						|
 | 
						|
  call s:assert.equals(dein#get('plugin').type, 'none')
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_update(), 0)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.build() abort
 | 
						|
  call dein#begin(tempname())
 | 
						|
 | 
						|
  call dein#add('Shougo/vimproc.vim', {
 | 
						|
        \ 'build': 'make',
 | 
						|
        \ 'hook_post_update':
 | 
						|
        \   'let g:foobar = 4',
 | 
						|
        \ })
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  call s:assert.not_equals(g:foobar, 4)
 | 
						|
 | 
						|
  call s:assert.true(dein#check_install())
 | 
						|
  call s:assert.true(dein#check_install(['vimproc.vim']))
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  call s:assert.equals(g:foobar, 4)
 | 
						|
 | 
						|
  call vimproc#version()
 | 
						|
  call s:assert.true(filereadable(g:vimproc#dll_path))
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.rollback() abort
 | 
						|
  call dein#begin(tempname())
 | 
						|
 | 
						|
  call dein#add('Shougo/deoplete.nvim')
 | 
						|
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_install(), 0)
 | 
						|
 | 
						|
  let plugin = dein#get('deoplete.nvim')
 | 
						|
 | 
						|
  let old_rev = s:get_revision(plugin)
 | 
						|
 | 
						|
  " Change the revision manually
 | 
						|
  let new_rev = 'bc7e8124d9c412fb3b0a6112baabde75a854d7b5'
 | 
						|
  let cwd = getcwd()
 | 
						|
  try
 | 
						|
    call dein#install#_cd(plugin.path)
 | 
						|
    call system('git reset --hard ' . new_rev)
 | 
						|
  finally
 | 
						|
    call dein#install#_cd(cwd)
 | 
						|
  endtry
 | 
						|
 | 
						|
  call s:assert.equals(s:get_revision(plugin), new_rev)
 | 
						|
 | 
						|
  call dein#rollback('', ['deoplete.nvim'])
 | 
						|
 | 
						|
  call s:assert.equals(s:get_revision(plugin), old_rev)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.script_type() abort
 | 
						|
  call dein#begin(s:path)
 | 
						|
 | 
						|
  call dein#add(
 | 
						|
        \ 'https://github.com/bronzehedwick/impactjs-colorscheme',
 | 
						|
        \ {'script_type' : 'colors'})
 | 
						|
 | 
						|
  call dein#add(
 | 
						|
        \ 'https://raw.githubusercontent.com/Shougo/'
 | 
						|
        \ . 'shougo-s-github/master/vim/colors/candy.vim',
 | 
						|
        \ {'script_type' : 'colors'})
 | 
						|
  call s:assert.equals(dein#get('candy.vim').type, 'raw')
 | 
						|
 | 
						|
  call s:assert.equals(dein#end(), 0)
 | 
						|
 | 
						|
  call s:assert.equals(s:dein_update(), 0)
 | 
						|
 | 
						|
  call s:assert.true(filereadable(
 | 
						|
        \ dein#get('impactjs-colorscheme').rtp . '/colors/impactjs.vim'))
 | 
						|
  call s:assert.true(filereadable(
 | 
						|
        \ dein#get('candy.vim').rtp . '/colors/candy.vim'))
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:get_revision(plugin) abort
 | 
						|
  let cwd = getcwd()
 | 
						|
  try
 | 
						|
    execute 'lcd' fnameescape(a:plugin.path)
 | 
						|
 | 
						|
    let rev = substitute(system('git rev-parse HEAD'), '\n$', '', '')
 | 
						|
 | 
						|
    return (rev !~ '\s') ? rev : ''
 | 
						|
  finally
 | 
						|
    execute 'lcd' fnameescape(cwd)
 | 
						|
  endtry
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:suite.ftplugin() abort
 | 
						|
  call dein#begin(tempname())
 | 
						|
 | 
						|
  let g:dein#_ftplugin = {
 | 
						|
        \ '_': 'echo 5555',
 | 
						|
        \ 'python': 'setlocal foldmethod=indent',
 | 
						|
        \ }
 | 
						|
 | 
						|
  call dein#add('Shougo/echodoc.vim')
 | 
						|
  call dein#end()
 | 
						|
 | 
						|
  call dein#recache_runtimepath()
 | 
						|
 | 
						|
  call s:assert.equals(
 | 
						|
        \ readfile(dein#util#_get_runtime_path() . '/after/ftplugin.vim'),
 | 
						|
        \ dein#install#_get_default_ftplugin() + [
 | 
						|
        \ 'function! s:after_ftplugin()',
 | 
						|
        \ ] + split(get(g:dein#_ftplugin, '_', []), '\n') + ['endfunction'])
 | 
						|
 | 
						|
  let python = readfile(dein#util#_get_runtime_path()
 | 
						|
        \ . '/after/ftplugin/python.vim')
 | 
						|
  call s:assert.equals(python[-1], g:dein#_ftplugin['python'])
 | 
						|
  call s:assert.false(filereadable(dein#util#_get_runtime_path()
 | 
						|
        \ . '/after/ftplugin/_.vim'))
 | 
						|
endfunction
 |