mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.0.0329: xfontset and guifontwide are not tested
Problem: Xfontset and guifontwide are not tested. Solution: Add tests. (Kazunobu Kuriyama)
This commit is contained in:
parent
23a5558cfd
commit
1043467482
@ -131,6 +131,148 @@ func Test_set_guifont()
|
|||||||
endif
|
endif
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_set_guifontset()
|
||||||
|
let skipped = 0
|
||||||
|
|
||||||
|
if has('xfontset')
|
||||||
|
let l:ctype_saved = v:ctype
|
||||||
|
|
||||||
|
" For UTF-8 locales, XCreateFontSet(3) is likely to fail in constructing a
|
||||||
|
" fontset automatically from one or two simple XLFDs because it requires
|
||||||
|
" the host system to have a fairly comprehensive collection of fixed-width
|
||||||
|
" fonts with various sizes and registries/encodings in order to get the
|
||||||
|
" job done. To make the test meaningful for a wide variety of hosts, we
|
||||||
|
" confine ourselves to the following locale for which X11 historically has
|
||||||
|
" the fonts to use with.
|
||||||
|
language ctype ja_JP.eucJP
|
||||||
|
|
||||||
|
" Since XCreateFontSet(3) is very sensitive to locale, fonts must be
|
||||||
|
" chosen meticulously.
|
||||||
|
let l:font_head = '-misc-fixed-medium-r-normal--14'
|
||||||
|
|
||||||
|
let l:font_aw70 = l:font_head . '-130-75-75-c-70'
|
||||||
|
let l:font_aw140 = l:font_head . '-130-75-75-c-140'
|
||||||
|
|
||||||
|
let l:font_jisx0201 = l:font_aw70 . '-jisx0201.1976-0'
|
||||||
|
let l:font_jisx0208 = l:font_aw140 . '-jisx0208.1983-0'
|
||||||
|
|
||||||
|
" Full XLFDs
|
||||||
|
let l:fontset_name = join([ l:font_jisx0208, l:font_jisx0201 ], ',')
|
||||||
|
exec 'set guifontset=' . l:fontset_name
|
||||||
|
call assert_equal(l:fontset_name, &guifontset)
|
||||||
|
|
||||||
|
" XLFDs w/o CharSetRegistry and CharSetEncoding
|
||||||
|
let l:fontset_name = join([ l:font_aw140, l:font_aw70 ], ',')
|
||||||
|
exec 'set guifontset=' . l:fontset_name
|
||||||
|
call assert_equal(l:fontset_name, &guifontset)
|
||||||
|
|
||||||
|
" Singleton
|
||||||
|
let l:fontset_name = l:font_head . '-*'
|
||||||
|
exec 'set guifontset=' . l:fontset_name
|
||||||
|
call assert_equal(l:fontset_name, &guifontset)
|
||||||
|
|
||||||
|
" Aliases
|
||||||
|
let l:fontset_name = 'k14,r14'
|
||||||
|
exec 'set guifontset=' . l:fontset_name
|
||||||
|
call assert_equal(l:fontset_name, &guifontset)
|
||||||
|
|
||||||
|
exec 'language ctype' l:ctype_saved
|
||||||
|
|
||||||
|
else
|
||||||
|
let skipped = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
if skipped
|
||||||
|
throw "Skipped: Not supported by this GUI"
|
||||||
|
endif
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Test_set_guifontwide()
|
||||||
|
let skipped = 0
|
||||||
|
|
||||||
|
if has('gui_gtk')
|
||||||
|
let l:guifont_saved = &guifont
|
||||||
|
let l:guifontwide_saved = &guifontwide
|
||||||
|
|
||||||
|
let l:fc_match = exepath('fc-match')
|
||||||
|
if l:fc_match != ''
|
||||||
|
let &guifont = system('fc-match -f "%{family[0]} %{size}" monospace:size=10')
|
||||||
|
let l:wide = system('fc-match -f "%{family[0]} %{size}" monospace:size=10:lang=ja')
|
||||||
|
exec 'set guifontwide=' . fnameescape(l:wide)
|
||||||
|
call assert_equal(l:wide, &guifontwide)
|
||||||
|
else
|
||||||
|
let skipped = 3
|
||||||
|
endif
|
||||||
|
|
||||||
|
let &guifontwide = l:guifontwide_saved
|
||||||
|
let &guifont = l:guifont_saved
|
||||||
|
|
||||||
|
elseif has('gui_athena') || has('gui_motif')
|
||||||
|
" guifontwide is premised upon the xfontset feature.
|
||||||
|
if has('xfontset')
|
||||||
|
let l:encoding_saved = &encoding
|
||||||
|
let l:guifont_saved = &guifont
|
||||||
|
let l:guifontset_saved = &guifontset
|
||||||
|
let l:guifontwide_saved = &guifontwide
|
||||||
|
|
||||||
|
let l:nfont = '-misc-fixed-medium-r-normal-*-18-120-100-100-c-90-iso10646-1'
|
||||||
|
let l:wfont = '-misc-fixed-medium-r-normal-*-18-120-100-100-c-180-iso10646-1'
|
||||||
|
|
||||||
|
set encoding=utf-8
|
||||||
|
|
||||||
|
" Case 1: guifontset is empty
|
||||||
|
set guifontset=
|
||||||
|
|
||||||
|
" Case 1-1: Automatic selection
|
||||||
|
set guifontwide=
|
||||||
|
exec 'set guifont=' . l:nfont
|
||||||
|
call assert_equal(l:wfont, &guifontwide)
|
||||||
|
|
||||||
|
" Case 1-2: Manual selection
|
||||||
|
exec 'set guifontwide=' . l:wfont
|
||||||
|
exec 'set guifont=' . l:nfont
|
||||||
|
call assert_equal(l:wfont, &guifontwide)
|
||||||
|
|
||||||
|
" Case 2: guifontset is invalid
|
||||||
|
try
|
||||||
|
set guifontset=-*-notexist-*
|
||||||
|
call assert_false(1, "'set guifontset=notexist' should have failed")
|
||||||
|
catch
|
||||||
|
call assert_exception('E598')
|
||||||
|
endtry
|
||||||
|
" Set it to an invalid value brutally for preparation.
|
||||||
|
let &guifontset = '-*-notexist-*'
|
||||||
|
|
||||||
|
" Case 2-1: Automatic selection
|
||||||
|
set guifontwide=
|
||||||
|
exec 'set guifont=' . l:nfont
|
||||||
|
call assert_equal(l:wfont, &guifontwide)
|
||||||
|
|
||||||
|
" Case 2-2: Manual selection
|
||||||
|
exec 'set guifontwide=' . l:wfont
|
||||||
|
exec 'set guifont=' . l:nfont
|
||||||
|
call assert_equal(l:wfont, &guifontwide)
|
||||||
|
|
||||||
|
let &guifontwide = l:guifontwide_saved
|
||||||
|
let &guifontset = l:guifontset_saved
|
||||||
|
let &guifont = l:guifont_saved
|
||||||
|
let &encoding = l:encoding_saved
|
||||||
|
else
|
||||||
|
let skipped = 2
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
let skipped = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
if skipped == 1
|
||||||
|
throw "Skipped: Test not implemented yet for this GUI"
|
||||||
|
elseif skipped == 2
|
||||||
|
throw "Skipped: Not supported by this GUI"
|
||||||
|
elseif skipped == 3
|
||||||
|
throw "Skipped: Test not supported by the environment"
|
||||||
|
endif
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_getwinpos()
|
func Test_getwinpos()
|
||||||
call assert_match('Window position: X \d\+, Y \d\+', execute('winpos'))
|
call assert_match('Window position: X \d\+, Y \d\+', execute('winpos'))
|
||||||
call assert_true(getwinposx() >= 0)
|
call assert_true(getwinposx() >= 0)
|
||||||
|
@ -764,6 +764,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
329,
|
||||||
/**/
|
/**/
|
||||||
328,
|
328,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user