mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-01-24 06:30:03 +08:00
7c9058447b
update dein to 9ab8106405
229 lines
6.7 KiB
VimL
229 lines
6.7 KiB
VimL
" set verbose=1
|
|
|
|
let s:suite = themis#suite('parse')
|
|
let s:assert = themis#helper('assert')
|
|
|
|
let s:path = tempname()
|
|
|
|
function! s:suite.before_each() abort
|
|
call dein#min#_init()
|
|
endfunction
|
|
|
|
function! s:suite.after_each() abort
|
|
endfunction
|
|
|
|
function! s:suite.parse_dict() abort
|
|
call dein#begin(s:path)
|
|
|
|
let plugin = {'name': 'baz'}
|
|
let parsed_plugin = dein#parse#_dict(dein#parse#_init('', plugin))
|
|
call s:assert.equals(parsed_plugin.name, 'baz')
|
|
|
|
let plugin = {'name': 'baz', 'if': '1'}
|
|
let parsed_plugin = dein#parse#_dict(dein#parse#_init('', plugin))
|
|
call s:assert.equals(parsed_plugin.merged, 0)
|
|
|
|
let plugin = {'name': 'baz', 'rev': 'foo'}
|
|
let parsed_plugin = dein#parse#_dict(dein#parse#_init('foo', plugin))
|
|
call s:assert.equals(parsed_plugin.path, '_foo')
|
|
|
|
let plugin = {'name': 'baz', 'rev': 'foo/bar'}
|
|
let parsed_plugin = dein#parse#_dict(dein#parse#_init('foo', plugin))
|
|
call s:assert.equals(parsed_plugin.path, '_foo_bar')
|
|
|
|
let $BAZDIR = '/baz'
|
|
let repo = '$BAZDIR/foo'
|
|
let plugin = {'repo': repo}
|
|
let parsed_plugin = dein#parse#_dict(dein#parse#_init(repo, plugin))
|
|
call s:assert.equals(parsed_plugin.repo, '/baz/foo')
|
|
|
|
call dein#end()
|
|
endfunction
|
|
|
|
function! s:suite.name_conversion() abort
|
|
let g:dein#enable_name_conversion = v:true
|
|
|
|
let plugin = dein#parse#_dict(
|
|
\ {'repo': 'https://github.com/Shougo/dein.vim.git'})
|
|
call s:assert.equals(plugin.name, 'dein')
|
|
|
|
let plugin = dein#parse#_dict(
|
|
\ {'repo': 'https://bitbucket.org/kh3phr3n/vim-qt-syntax.git'})
|
|
call s:assert.equals(plugin.name, 'qt-syntax')
|
|
|
|
let plugin = dein#parse#_dict(
|
|
\ {'repo': 'https://bitbucket.org/kh3phr3n/qt-syntax-vim.git'})
|
|
call s:assert.equals(plugin.name, 'qt-syntax')
|
|
|
|
let plugin = dein#parse#_dict(
|
|
\ {'repo': 'https://bitbucket.org/kh3phr3n/vim-qt-syntax.git',
|
|
\ 'name': 'vim-qt-syntax'})
|
|
call s:assert.equals(plugin.name, 'vim-qt-syntax')
|
|
|
|
let g:dein#enable_name_conversion = v:false
|
|
endfunction
|
|
|
|
function! s:suite.load_toml() abort
|
|
let toml = tempname()
|
|
call writefile([
|
|
\ '# TOML sample',
|
|
\ 'hook_add = "let g:foo = 0"',
|
|
\ '',
|
|
\ '[ftplugin]',
|
|
\ 'c = "let g:bar = 0"',
|
|
\ '',
|
|
\ '[[plugins]]',
|
|
\ '# repository name is required.',
|
|
\ "repo = 'Shougo/denite.nvim'",
|
|
\ "on_map = '<Plug>'",
|
|
\ '[[plugins]]',
|
|
\ "repo = 'Shougo/neosnippet.vim'",
|
|
\ "on_ft = 'snippet'",
|
|
\ "hook_add = '''",
|
|
\ '"echo',
|
|
\ '"comment',
|
|
\ "echo",
|
|
\ "'''",
|
|
\ "hook_source = '''",
|
|
\ "echo",
|
|
\ '\',
|
|
\ "echo",
|
|
\ "'''",
|
|
\ '[plugins.ftplugin]',
|
|
\ 'c = "let g:bar = 0"',
|
|
\ '[[multiple_plugins]]',
|
|
\ "plugins = ['foo', 'bar']",
|
|
\ "hook_add = 'foo'",
|
|
\ ], toml)
|
|
|
|
call dein#begin(s:path)
|
|
call s:assert.equals(g:dein#_hook_add, '')
|
|
call s:assert.equals(g:dein#_ftplugin, {})
|
|
call s:assert.equals(dein#load_toml(toml), 0)
|
|
call s:assert.equals(g:dein#_hook_add, "\nlet g:foo = 0")
|
|
call s:assert.equals(g:dein#_ftplugin,
|
|
\ {'c': "let g:bar = 0\nlet g:bar = 0"})
|
|
call s:assert.equals(g:dein#_multiple_plugins, [
|
|
\ {'plugins': ['foo', 'bar'], 'hook_add': 'foo'},
|
|
\ ])
|
|
call dein#end()
|
|
|
|
call s:assert.equals(dein#get('neosnippet.vim').hook_add,
|
|
\ "\"echo\n\"comment\necho\n")
|
|
call s:assert.equals(dein#get('neosnippet.vim').hook_source,
|
|
\ "echo\necho\n")
|
|
endfunction
|
|
|
|
function! s:suite.error_toml() abort
|
|
let toml = tempname()
|
|
call writefile([
|
|
\ '# TOML sample',
|
|
\ '[[plugins]]',
|
|
\ '# repository name is required.',
|
|
\ "on_map = '<Plug>'",
|
|
\ '[[plugins]]',
|
|
\ "on_ft = 'snippet'",
|
|
\ ], toml)
|
|
|
|
call dein#begin(s:path)
|
|
call s:assert.equals(dein#load_toml(toml), 1)
|
|
call dein#end()
|
|
endfunction
|
|
|
|
function! s:suite.load_dict() abort
|
|
call dein#begin(s:path)
|
|
call s:assert.equals(dein#load_dict({
|
|
\ 'Shougo/denite.nvim': {},
|
|
\ 'Shougo/deoplete.nvim': {'name': 'deoplete'}
|
|
\ }, {'lazy': 1}), 0)
|
|
call dein#end()
|
|
|
|
call s:assert.not_equals(dein#get('denite.nvim'), {})
|
|
call s:assert.equals(dein#get('deoplete').lazy, 1)
|
|
endfunction
|
|
|
|
function! s:suite.disable() abort
|
|
call dein#begin(s:path)
|
|
call dein#load_dict({
|
|
\ 'Shougo/denite.nvim': {'on_cmd': 'Unite'}
|
|
\ })
|
|
call s:assert.false(!exists(':Unite'))
|
|
call dein#disable('denite.nvim')
|
|
call s:assert.false(exists(':Unite'))
|
|
call dein#end()
|
|
|
|
call s:assert.equals(dein#get('denite.nvim'), {})
|
|
endfunction
|
|
|
|
function! s:suite.config() abort
|
|
call dein#begin(s:path)
|
|
call dein#load_dict({
|
|
\ 'Shougo/denite.nvim': {}
|
|
\ })
|
|
let g:dein#name = 'denite.nvim'
|
|
call dein#config({'on_event': ['InsertEnter']})
|
|
call dein#end()
|
|
call dein#config('unite', {'on_event': ['InsertEnter']})
|
|
|
|
call s:assert.equals(dein#get('denite.nvim').on_event, ['InsertEnter'])
|
|
endfunction
|
|
|
|
function! s:suite.skip_overwrite() abort
|
|
call dein#begin(s:path)
|
|
call dein#add('Shougo/denite.nvim', {'on_event': []})
|
|
call dein#add('Shougo/denite.nvim', {'on_event': ['InsertEnter']})
|
|
call dein#end()
|
|
|
|
call s:assert.equals(dein#get('denite.nvim').on_event, [])
|
|
endfunction
|
|
|
|
function! s:suite.overwrite() abort
|
|
call dein#begin(s:path)
|
|
call dein#add('Shougo/denite.nvim', {'on_event': []})
|
|
call dein#add('Shougo/denite.nvim', {'on_event': ['InsertEnter'], 'overwrite': 1})
|
|
call dein#end()
|
|
|
|
call s:assert.equals(dein#get('denite.nvim').on_event, ['InsertEnter'])
|
|
endfunction
|
|
|
|
function! s:suite.plugins2toml() abort
|
|
let parsed_plugin = dein#parse#_init('Shougo/denite.nvim', {})
|
|
let parsed_plugin2 = dein#parse#_init('Shougo/deoplete.nvim',
|
|
\ {'on_ft': ['vim'], 'hook_add': "hoge\npiyo"})
|
|
let parsed_plugin3 = dein#parse#_init('Shougo/deoppet.nvim',
|
|
\ {'on_map': {'n': ['a', 'b']}})
|
|
call s:assert.equals(dein#plugins2toml(
|
|
\ [parsed_plugin, parsed_plugin2, parsed_plugin3]), [
|
|
\ "[[plugins]]",
|
|
\ "repo = 'Shougo/denite.nvim'",
|
|
\ "",
|
|
\ "[[plugins]]",
|
|
\ "repo = 'Shougo/deoplete.nvim'",
|
|
\ "hook_add = '''",
|
|
\ "hoge",
|
|
\ "piyo",
|
|
\ "'''",
|
|
\ "on_ft = 'vim'",
|
|
\ "",
|
|
\ "[[plugins]]",
|
|
\ "repo = 'Shougo/deoppet.nvim'",
|
|
\ "on_map = {'n': ['a', 'b']}",
|
|
\ "",
|
|
\ ])
|
|
endfunction
|
|
|
|
function! s:suite.trusted() abort
|
|
let sudo = g:dein#_is_sudo
|
|
let g:dein#_is_sudo = 1
|
|
|
|
let parsed_plugin = dein#parse#_add(
|
|
\ 'Shougo/deoplete.nvim', {}, v:false)
|
|
call s:assert.equals(parsed_plugin.rtp, '')
|
|
|
|
let parsed_plugin = dein#parse#_add(
|
|
\ 'Shougo/denite.nvim', {'trusted': 1}, v:false)
|
|
call s:assert.not_equals(parsed_plugin.rtp, '')
|
|
|
|
let g:dein#_is_sudo = sudo
|
|
endfunction
|