File: test_plugin_tutor.vim

package info (click to toggle)
neovim 0.11.4-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 64,136 kB
  • sloc: ansic: 263,156; python: 1,472; lisp: 1,237; sh: 1,138; makefile: 378; xml: 83; ruby: 6
file content (55 lines) | stat: -rw-r--r-- 1,446 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
" Test for the new-tutor plugin

source screendump.vim
source check.vim
source 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