comparison src/testdir/test_number.vim @ 10940:a479b7064550 v8.0.0359

patch 8.0.0359: 'number' and 'relativenumber' are not properly tested commit https://github.com/vim/vim/commit/dc9a081712ec8c140e6d4909e9f6b03a629d32d3 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Feb 23 18:46:50 2017 +0100 patch 8.0.0359: 'number' and 'relativenumber' are not properly tested Problem: 'number' and 'relativenumber' are not properly tested. Solution: Add tests, change old style to new style tests. (Ozaki Kiichi, closes #1447)
author Christian Brabandt <cb@256bit.org>
date Thu, 23 Feb 2017 19:00:05 +0100
parents
children 63b02fcf1361
comparison
equal deleted inserted replaced
10939:86572a2aab2e 10940:a479b7064550
1 " Test for 'number' and 'relativenumber'
2
3 source view_util.vim
4
5 func! s:screen_lines(start, end) abort
6 return ScreenLines([a:start, a:end], 8)
7 endfunc
8
9 func! s:compare_lines(expect, actual)
10 call assert_equal(a:expect, a:actual)
11 endfunc
12
13 func! s:test_windows(h, w) abort
14 call NewWindow(a:h, a:w)
15 endfunc
16
17 func! s:close_windows() abort
18 call CloseWindow()
19 endfunc
20
21 func! s:validate_cursor() abort
22 " update skipcol.
23 " wincol():
24 " f_wincol
25 " -> validate_cursor
26 " -> curs_columns
27 call wincol()
28 endfunc
29
30 func Test_set_options()
31 set nu rnu
32 call assert_equal(1, &nu)
33 call assert_equal(1, &rnu)
34
35 call s:test_windows(10, 20)
36 call assert_equal(1, &nu)
37 call assert_equal(1, &rnu)
38 call s:close_windows()
39
40 set nu& rnu&
41 endfunc
42
43 func Test_set_global_and_local()
44 " setlocal must NOT reset the other global value
45 set nonu nornu
46 setglobal nu
47 setlocal rnu
48 call assert_equal(1, &g:nu)
49
50 set nonu nornu
51 setglobal rnu
52 setlocal nu
53 call assert_equal(1, &g:rnu)
54
55 " setglobal MUST reset the other global value
56 set nonu nornu
57 setglobal nu
58 setglobal rnu
59 call assert_equal(1, &g:nu)
60
61 set nonu nornu
62 setglobal rnu
63 setglobal nu
64 call assert_equal(1, &g:rnu)
65
66 " set MUST reset the other global value
67 set nonu nornu
68 set nu
69 set rnu
70 call assert_equal(1, &g:nu)
71
72 set nonu nornu
73 set rnu
74 set nu
75 call assert_equal(1, &g:rnu)
76
77 set nu& rnu&
78 endfunc
79
80 func Test_number()
81 call s:test_windows(10, 20)
82 call setline(1, ["abcdefghij", "klmnopqrst", "uvwxyzABCD", "EFGHIJKLMN", "OPQRSTUVWX", "YZ"])
83 setl number
84 let lines = s:screen_lines(1, 4)
85 let expect = [
86 \ " 1 abcd",
87 \ " 2 klmn",
88 \ " 3 uvwx",
89 \ " 4 EFGH",
90 \ ]
91 call s:compare_lines(expect, lines)
92 call s:close_windows()
93 endfunc
94
95 func Test_relativenumber()
96 call s:test_windows(10, 20)
97 call setline(1, ["abcdefghij", "klmnopqrst", "uvwxyzABCD", "EFGHIJKLMN", "OPQRSTUVWX", "YZ"])
98 3
99 setl relativenumber
100 let lines = s:screen_lines(1, 6)
101 let expect = [
102 \ " 2 abcd",
103 \ " 1 klmn",
104 \ " 0 uvwx",
105 \ " 1 EFGH",
106 \ " 2 OPQR",
107 \ " 3 YZ ",
108 \ ]
109 call s:compare_lines(expect, lines)
110 call s:close_windows()
111 endfunc
112
113 func Test_number_with_relativenumber()
114 call s:test_windows(10, 20)
115 call setline(1, ["abcdefghij", "klmnopqrst", "uvwxyzABCD", "EFGHIJKLMN", "OPQRSTUVWX", "YZ"])
116 4
117 setl number relativenumber
118 let lines = s:screen_lines(1, 6)
119 let expect = [
120 \ " 3 abcd",
121 \ " 2 klmn",
122 \ " 1 uvwx",
123 \ "4 EFGH",
124 \ " 1 OPQR",
125 \ " 2 YZ ",
126 \ ]
127 call s:compare_lines(expect, lines)
128 call s:close_windows()
129 endfunc
130
131 func Test_number_with_linewrap1()
132 call s:test_windows(3, 20)
133 normal! 61ia
134 setl number wrap
135 call s:validate_cursor()
136 let lines = s:screen_lines(1, 3)
137 let expect = [
138 \ "--1 aaaa",
139 \ " aaaa",
140 \ " aaaa",
141 \ ]
142 call s:compare_lines(expect, lines)
143 call s:close_windows()
144 endfunc
145
146 " Pending: https://groups.google.com/forum/#!topic/vim_dev/tzNKP7EDWYI
147 func XTest_number_with_linewrap2()
148 call s:test_windows(3, 20)
149 normal! 61ia
150 setl number wrap
151 call s:validate_cursor()
152 0
153 call s:validate_cursor()
154 let lines = s:screen_lines(1, 3)
155 let expect = [
156 \ " 1 aaaa",
157 \ " aaaa",
158 \ " aaaa",
159 \ ]
160 call s:compare_lines(expect, lines)
161 call s:close_windows()
162 endfunc
163
164 " Pending: https://groups.google.com/forum/#!topic/vim_dev/tzNKP7EDWYI
165 func XTest_number_with_linewrap3()
166 call s:test_windows(4, 20)
167 normal! 81ia
168 setl number wrap
169 call s:validate_cursor()
170 setl nonumber
171 call s:validate_cursor()
172 let lines = s:screen_lines(1, 4)
173 let expect = [
174 \ "aaaaaaaa",
175 \ "aaaaaaaa",
176 \ "aaaaaaaa",
177 \ "a ",
178 \ ]
179 call s:compare_lines(expect, lines)
180 call s:close_windows()
181 endfunc
182
183 func Test_numberwidth()
184 call s:test_windows(10, 20)
185 call setline(1, repeat(['aaaa'], 10))
186 setl number numberwidth=6
187 let lines = s:screen_lines(1, 3)
188 let expect = [
189 \ " 1 aa",
190 \ " 2 aa",
191 \ " 3 aa",
192 \ ]
193 call s:compare_lines(expect, lines)
194
195 set relativenumber
196 let lines = s:screen_lines(1, 3)
197 let expect = [
198 \ "1 aa",
199 \ " 1 aa",
200 \ " 2 aa",
201 \ ]
202 call s:compare_lines(expect, lines)
203
204 set nonumber
205 let lines = s:screen_lines(1, 3)
206 let expect = [
207 \ " 0 aa",
208 \ " 1 aa",
209 \ " 2 aa",
210 \ ]
211 call s:compare_lines(expect, lines)
212 call s:close_windows()
213 endfunc
214
215 func Test_numberwidth_adjusted()
216 call s:test_windows(10, 20)
217 call setline(1, repeat(['aaaa'], 10000))
218 setl number numberwidth=4
219 let lines = s:screen_lines(1, 3)
220 let expect = [
221 \ " 1 aa",
222 \ " 2 aa",
223 \ " 3 aa",
224 \ ]
225 call s:compare_lines(expect, lines)
226
227 $
228 let lines = s:screen_lines(8, 10)
229 let expect = [
230 \ " 9998 aa",
231 \ " 9999 aa",
232 \ "10000 aa",
233 \ ]
234 call s:compare_lines(expect, lines)
235
236 setl relativenumber
237 let lines = s:screen_lines(8, 10)
238 let expect = [
239 \ " 2 aa",
240 \ " 1 aa",
241 \ "10000 aa",
242 \ ]
243 call s:compare_lines(expect, lines)
244
245 setl nonumber
246 let lines = s:screen_lines(8, 10)
247 let expect = [
248 \ " 2 aaaa",
249 \ " 1 aaaa",
250 \ " 0 aaaa",
251 \ ]
252 call s:compare_lines(expect, lines)
253 call s:close_windows()
254 endfunc