blob: da97fcf5c491b980b075c41fad6e5bbda1ca6839 [file] [log] [blame]
" Test for the new-tutor plugin
source util/screendump.vim
source util/script_util.vim
func SetUp()
set nocompatible
runtime plugin/tutor.vim
endfunc
func Test_auto_enable_interactive()
Tutor
call assert_equal('nofile', &buftype)
call assert_match('tutor#EnableInteractive', b:undo_ftplugin)
edit Xtutor/Xtest.tutor
call assert_true(empty(&buftype))
call assert_match('tutor#EnableInteractive', b:undo_ftplugin)
endfunc
func Test_tutor_link()
let tutor_files = globpath($VIMRUNTIME, 'tutor/**/*.tutor', 0, 1)
let pattern = '\[.\{-}@tutor:\zs[^)\]]*\ze[)\]]'
for tutor_file in tutor_files
let lang = fnamemodify(tutor_file, ':h:t')
if lang == 'tutor'
let lang = 'en'
endif
let text = readfile(tutor_file)
let links = matchstrlist(text, pattern)->map({_, v -> v.text})
for link in links
call assert_true(tutor#GlobTutorials(link, lang)->len() > 0)
endfor
endfor
endfunc
func Test_mark()
CheckScreendump
call writefile([
\ 'set nocompatible',
\ 'runtime plugin/tutor.vim',
\ 'Tutor tutor',
\ 'set statusline=',
\ ], 'Xtest_plugin_tutor_mark', 'D')
let buf = RunVimInTerminal('-S Xtest_plugin_tutor_mark', {'rows': 20, 'cols': 78})
call term_sendkeys(buf, ":240\<CR>")
call WaitForAssert({-> assert_match('Bot$', term_getline(buf, 20))})
call VerifyScreenDump(buf, 'Test_plugin_tutor_mark_1', {})
" clean up
call StopVimInTerminal(buf)
endfunc