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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
" Test specifically for the Man filetype plugin.
runtime ftplugin/man.vim
func Test_g_ft_man_open_mode()
vnew
let l:h = winheight(1)
q
let l:w = winwidth(1)
" split horizontally
let wincnt = winnr('$')
Man vim
if wincnt == winnr('$')
" Vim manual page cannot be found.
return
endif
call assert_inrange(l:w - 2, l:w + 2, winwidth(1))
call assert_true(l:h > winheight(1))
call assert_equal(1, tabpagenr('$'))
call assert_equal(1, tabpagenr())
q
" split horizontally
let g:ft_man_open_mode = "horz"
Man vim
call assert_inrange(l:w - 2, l:w + 2, winwidth(1))
call assert_true(l:h > winheight(1))
call assert_equal(1, tabpagenr('$'))
call assert_equal(1, tabpagenr())
q
" split vertically
let g:ft_man_open_mode = "vert"
Man vim
call assert_true(l:w > winwidth(1))
call assert_equal(l:h, winheight(1))
call assert_equal(1, tabpagenr('$'))
call assert_equal(1, tabpagenr())
q
" separate tab
let g:ft_man_open_mode = "tab"
Man vim
call assert_inrange(l:w - 2, l:w + 2, winwidth(1))
call assert_inrange(l:h - 1, l:h + 1, winheight(1))
call assert_equal(2, tabpagenr('$'))
call assert_equal(2, tabpagenr())
q
unlet g:ft_man_open_mode
endfunc
func Test_nomodifiable()
let wincnt = winnr('$')
Man vim
if wincnt == winnr('$')
" Vim manual page cannot be found.
return
endif
call assert_false(&l:modifiable)
q
endfunc
func Test_buffer_count_hidden()
%bw!
set hidden
call assert_equal(1, len(getbufinfo()))
let wincnt = winnr('$')
Man vim
if wincnt == winnr('$')
" Vim manual page cannot be found.
return
endif
call assert_equal(1, len(getbufinfo({'buflisted':1})))
call assert_equal(2, len(getbufinfo()))
q
Man vim
call assert_equal(1, len(getbufinfo({'buflisted':1})))
call assert_equal(2, len(getbufinfo()))
q
set hidden&
endfunc
" Check that we do not alter the settings in the initial window.
func Test_local_options()
%bw!
set foldcolumn=1 number
let wincnt = winnr('$')
Man vim
if wincnt == winnr('$')
" Vim manual page cannot be found.
return
endif
" man page
call assert_false(&nu)
call assert_equal(0, &fdc)
" initial window
wincmd p
call assert_true(&nu)
call assert_equal(1, &fdc)
%bw!
set foldcolumn& number&
endfunc
" Check that the unnamed register is not overwritten.
func Test_keep_unnamed_register()
%bw!
let @" = '---'
let wincnt = winnr('$')
Man vim
if wincnt == winnr('$')
" Vim manual page cannot be found.
return
endif
call assert_equal('---', @")
%bw!
endfunc
" Check that underlying shell command arguments are escaped.
func Test_Man_uses_shellescape()
Man `touch\ Xbar` `touch\ Xfoo`
redir => msg
1messages
redir END
call assert_match('no manual entry for "`touch Xfoo`"', msg)
call assert_false(filereadable('Xbar'))
call assert_false(filereadable('Xfoo'))
endfunc
" vim: shiftwidth=2 sts=2 expandtab
|