Mercurial > vim
comparison src/testdir/test_gui.vim @ 10879:1fce74a5a628 v8.0.0329
patch 8.0.0329: xfontset and guifontwide are not tested
commit https://github.com/vim/vim/commit/10434674821939222bf552d15d93e0132d13badc
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Feb 12 19:59:08 2017 +0100
patch 8.0.0329: xfontset and guifontwide are not tested
Problem: Xfontset and guifontwide are not tested.
Solution: Add tests. (Kazunobu Kuriyama)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 12 Feb 2017 20:00:04 +0100 |
parents | 20d71d305d1c |
children | 310834b0256a |
comparison
equal
deleted
inserted
replaced
10878:cd7433f8778b | 10879:1fce74a5a628 |
---|---|
129 if skipped | 129 if skipped |
130 throw "Skipped: Test not implemented yet for this GUI" | 130 throw "Skipped: Test not implemented yet for this GUI" |
131 endif | 131 endif |
132 endfunc | 132 endfunc |
133 | 133 |
134 func Test_set_guifontset() | |
135 let skipped = 0 | |
136 | |
137 if has('xfontset') | |
138 let l:ctype_saved = v:ctype | |
139 | |
140 " For UTF-8 locales, XCreateFontSet(3) is likely to fail in constructing a | |
141 " fontset automatically from one or two simple XLFDs because it requires | |
142 " the host system to have a fairly comprehensive collection of fixed-width | |
143 " fonts with various sizes and registries/encodings in order to get the | |
144 " job done. To make the test meaningful for a wide variety of hosts, we | |
145 " confine ourselves to the following locale for which X11 historically has | |
146 " the fonts to use with. | |
147 language ctype ja_JP.eucJP | |
148 | |
149 " Since XCreateFontSet(3) is very sensitive to locale, fonts must be | |
150 " chosen meticulously. | |
151 let l:font_head = '-misc-fixed-medium-r-normal--14' | |
152 | |
153 let l:font_aw70 = l:font_head . '-130-75-75-c-70' | |
154 let l:font_aw140 = l:font_head . '-130-75-75-c-140' | |
155 | |
156 let l:font_jisx0201 = l:font_aw70 . '-jisx0201.1976-0' | |
157 let l:font_jisx0208 = l:font_aw140 . '-jisx0208.1983-0' | |
158 | |
159 " Full XLFDs | |
160 let l:fontset_name = join([ l:font_jisx0208, l:font_jisx0201 ], ',') | |
161 exec 'set guifontset=' . l:fontset_name | |
162 call assert_equal(l:fontset_name, &guifontset) | |
163 | |
164 " XLFDs w/o CharSetRegistry and CharSetEncoding | |
165 let l:fontset_name = join([ l:font_aw140, l:font_aw70 ], ',') | |
166 exec 'set guifontset=' . l:fontset_name | |
167 call assert_equal(l:fontset_name, &guifontset) | |
168 | |
169 " Singleton | |
170 let l:fontset_name = l:font_head . '-*' | |
171 exec 'set guifontset=' . l:fontset_name | |
172 call assert_equal(l:fontset_name, &guifontset) | |
173 | |
174 " Aliases | |
175 let l:fontset_name = 'k14,r14' | |
176 exec 'set guifontset=' . l:fontset_name | |
177 call assert_equal(l:fontset_name, &guifontset) | |
178 | |
179 exec 'language ctype' l:ctype_saved | |
180 | |
181 else | |
182 let skipped = 1 | |
183 endif | |
184 | |
185 if skipped | |
186 throw "Skipped: Not supported by this GUI" | |
187 endif | |
188 endfunc | |
189 | |
190 func Test_set_guifontwide() | |
191 let skipped = 0 | |
192 | |
193 if has('gui_gtk') | |
194 let l:guifont_saved = &guifont | |
195 let l:guifontwide_saved = &guifontwide | |
196 | |
197 let l:fc_match = exepath('fc-match') | |
198 if l:fc_match != '' | |
199 let &guifont = system('fc-match -f "%{family[0]} %{size}" monospace:size=10') | |
200 let l:wide = system('fc-match -f "%{family[0]} %{size}" monospace:size=10:lang=ja') | |
201 exec 'set guifontwide=' . fnameescape(l:wide) | |
202 call assert_equal(l:wide, &guifontwide) | |
203 else | |
204 let skipped = 3 | |
205 endif | |
206 | |
207 let &guifontwide = l:guifontwide_saved | |
208 let &guifont = l:guifont_saved | |
209 | |
210 elseif has('gui_athena') || has('gui_motif') | |
211 " guifontwide is premised upon the xfontset feature. | |
212 if has('xfontset') | |
213 let l:encoding_saved = &encoding | |
214 let l:guifont_saved = &guifont | |
215 let l:guifontset_saved = &guifontset | |
216 let l:guifontwide_saved = &guifontwide | |
217 | |
218 let l:nfont = '-misc-fixed-medium-r-normal-*-18-120-100-100-c-90-iso10646-1' | |
219 let l:wfont = '-misc-fixed-medium-r-normal-*-18-120-100-100-c-180-iso10646-1' | |
220 | |
221 set encoding=utf-8 | |
222 | |
223 " Case 1: guifontset is empty | |
224 set guifontset= | |
225 | |
226 " Case 1-1: Automatic selection | |
227 set guifontwide= | |
228 exec 'set guifont=' . l:nfont | |
229 call assert_equal(l:wfont, &guifontwide) | |
230 | |
231 " Case 1-2: Manual selection | |
232 exec 'set guifontwide=' . l:wfont | |
233 exec 'set guifont=' . l:nfont | |
234 call assert_equal(l:wfont, &guifontwide) | |
235 | |
236 " Case 2: guifontset is invalid | |
237 try | |
238 set guifontset=-*-notexist-* | |
239 call assert_false(1, "'set guifontset=notexist' should have failed") | |
240 catch | |
241 call assert_exception('E598') | |
242 endtry | |
243 " Set it to an invalid value brutally for preparation. | |
244 let &guifontset = '-*-notexist-*' | |
245 | |
246 " Case 2-1: Automatic selection | |
247 set guifontwide= | |
248 exec 'set guifont=' . l:nfont | |
249 call assert_equal(l:wfont, &guifontwide) | |
250 | |
251 " Case 2-2: Manual selection | |
252 exec 'set guifontwide=' . l:wfont | |
253 exec 'set guifont=' . l:nfont | |
254 call assert_equal(l:wfont, &guifontwide) | |
255 | |
256 let &guifontwide = l:guifontwide_saved | |
257 let &guifontset = l:guifontset_saved | |
258 let &guifont = l:guifont_saved | |
259 let &encoding = l:encoding_saved | |
260 else | |
261 let skipped = 2 | |
262 endif | |
263 else | |
264 let skipped = 1 | |
265 endif | |
266 | |
267 if skipped == 1 | |
268 throw "Skipped: Test not implemented yet for this GUI" | |
269 elseif skipped == 2 | |
270 throw "Skipped: Not supported by this GUI" | |
271 elseif skipped == 3 | |
272 throw "Skipped: Test not supported by the environment" | |
273 endif | |
274 endfunc | |
275 | |
134 func Test_getwinpos() | 276 func Test_getwinpos() |
135 call assert_match('Window position: X \d\+, Y \d\+', execute('winpos')) | 277 call assert_match('Window position: X \d\+, Y \d\+', execute('winpos')) |
136 call assert_true(getwinposx() >= 0) | 278 call assert_true(getwinposx() >= 0) |
137 call assert_true(getwinposy() >= 0) | 279 call assert_true(getwinposy() >= 0) |
138 endfunc | 280 endfunc |