let s:suite = themis#suite('git') let s:assert = themis#helper('assert') let s:type = dein#types#git#define() let s:path = tempname() let s:base = s:path . '/repos/' function! s:suite.protocol() abort call dein#begin(s:path) " Protocol errors call s:assert.equals(s:type.init( \ 'http://github.com/Shougo/dein.vim', {}), \ {}) call s:assert.equals(s:type.init( \ 'foo://github.com/Shougo/dein.vim', {}), \ {}) call s:assert.equals(s:type.init( \ 'https://github.com/vim/vim/archive/master.zip', {}), \ {}) call s:assert.equals(s:type.init( \ 'test.zip', {}), \ {}) call dein#end() endfunction function! s:suite.init() abort call dein#begin(s:path) call s:assert.equals(s:type.init( \ 'https://github.com/Shougo/dein.vim', {}), \ { 'type': 'git', \ 'path': s:base.'github.com/Shougo/dein.vim' }) call s:assert.equals(s:type.get_uri( \ 'https://github.com/Shougo/dein.vim', {}), \ 'https://github.com/Shougo/dein.vim') call s:assert.equals(s:type.init( \ 'Shougo/dein.vim', {}), \ { 'type': 'git', \ 'path': s:base.'github.com/Shougo/dein.vim' }) call s:assert.equals(s:type.get_uri( \ 'Shougo/dein.vim', {}), \ 'https://github.com/Shougo/dein.vim') call s:assert.equals(s:type.init( \ 'https://github.com:80/Shougo/dein.vim', {}), \ { 'type': 'git', \ 'path': s:base.'github.com/Shougo/dein.vim' }) call s:assert.equals(s:type.get_uri( \ 'https://github.com:80/Shougo/dein.vim', {}), \ 'https://github.com/Shougo/dein.vim') call s:assert.equals(s:type.init('L9', {}), {}) call s:assert.equals(s:type.init( \ 'https://bitbucket.org/mortonfox/twitvim.git', {}), \ { 'type': 'git', \ 'path': s:base.'bitbucket.org/mortonfox/twitvim' }) call s:assert.equals(s:type.get_uri( \ 'https://bitbucket.org/mortonfox/twitvim.git', {}), \ 'https://bitbucket.org/mortonfox/twitvim.git') call s:assert.equals(s:type.init( \ 'https://git.code.sf.net/p/atp-vim/code', {'type': 'git'}), \ { 'type': 'git', \ 'path': s:base.'git.code.sf.net/p/atp-vim/code' }) call s:assert.equals(s:type.get_uri( \ 'https://git.code.sf.net/p/atp-vim/code', {'type': 'git'}), \ 'https://git.code.sf.net/p/atp-vim/code') call s:assert.equals(s:type.get_uri( \ 'git@bitbucket.com:vim/snippets', {}), \ 'git@bitbucket.com:vim/snippets') call s:assert.equals(s:type.get_uri( \ 'ssh://git.company.com/gitroot/devtools/vim-company.git', {}), \ 'ssh://git.company.com/gitroot/devtools/vim-company.git') let g:dein#types#git#default_protocol = 'ssh' call s:assert.equals(s:type.init('Shougo/dein.vim', {}), \ { 'type': 'git', \ 'path': s:base.'github.com/Shougo/dein.vim' }) call s:assert.equals(s:type.get_uri('Shougo/dein.vim', {}), \ 'git@github.com:Shougo/dein.vim') let g:dein#types#git#default_protocol = 'https' call dein#end() endfunction