vimrc/sources_non_forked/vim-go/autoload/go/term_test.vim

139 lines
3.0 KiB
VimL

" don't spam the user when Vim is started in Vi compatibility mode
let s:cpo_save = &cpo
set cpo&vim
func! Test_GoTermNewMode()
if !(has('nvim') || has('terminal'))
return
endif
let l:wd = getcwd()
try
let g:go_gopls_enabled = 0
let l:filename = 'term/term.go'
let l:tmp = gotest#load_fixture(l:filename)
call go#util#Chdir(l:tmp . '/src/term')
let expected = expand('%:p')
let l:winid = win_getid()
let l:expectedwindows = len(getwininfo()) + 1
let cmd = "go run ". go#util#Shelljoin(go#tool#Files())
set nosplitright
let l:jobid = go#term#new(0, cmd, &errorformat)
call go#job#Wait(l:jobid)
let actual = expand('%:p')
call assert_equal(actual, l:expected)
call assert_equal(l:expectedwindows, len(getwininfo()))
finally
call win_gotoid(l:winid)
only!
call go#util#Chdir(l:wd)
call delete(l:tmp, 'rf')
endtry
endfunc
func! Test_GoTermNewMode_SplitRight()
if !(has('nvim') || has('terminal'))
return
endif
let l:wd = getcwd()
try
let g:go_gopls_enabled = 0
let l:filename = 'term/term.go'
let l:tmp = gotest#load_fixture(l:filename)
call go#util#Chdir(l:tmp . '/src/term')
let expected = expand('%:p')
let l:winid = win_getid()
let l:expectedwindows = len(getwininfo()) + 1
let cmd = "go run ". go#util#Shelljoin(go#tool#Files())
set splitright
let l:jobid = go#term#new(0, cmd, &errorformat)
call go#job#Wait(l:jobid)
let actual = expand('%:p')
call assert_equal(actual, l:expected)
call assert_equal(l:expectedwindows, len(getwininfo()))
finally
call win_gotoid(l:winid)
only!
call go#util#Chdir(l:wd)
call delete(l:tmp, 'rf')
set nosplitright
endtry
endfunc
func! Test_GoTermReuse()
if !(has('nvim') || has('terminal'))
return
endif
let l:wd = getcwd()
try
let g:go_gopls_enabled = 0
let l:filename = 'term/term.go'
let l:tmp = gotest#load_fixture(l:filename)
call go#util#Chdir(l:tmp . '/src/term')
let l:winid = win_getid()
let expected = expand('%:p')
let l:expectedwindows = len(getwininfo())+1
let cmd = "go run ". go#util#Shelljoin(go#tool#Files())
set nosplitright
" prime the terminal window
let l:jobid = go#term#new(0, cmd, &errorformat)
call go#job#Wait(l:jobid)
let g:go_term_reuse = 1
let l:jobid = go#term#new(0, cmd, &errorformat)
call go#job#Wait(l:jobid)
let actual = expand('%:p')
call assert_equal(actual, l:expected)
call assert_equal(l:expectedwindows, len(getwininfo()))
let l:jobid = go#term#new(0, cmd, &errorformat)
call go#job#Wait(l:jobid)
let actual = expand('%:p')
call assert_equal(actual, l:expected)
call assert_equal(l:expectedwindows, len(getwininfo()))
finally
call win_gotoid(l:winid)
only!
call go#util#Chdir(l:wd)
call delete(l:tmp, 'rf')
endtry
endfunc
" restore Vi compatibility settings
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: sw=2 ts=2 et