summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-02-09 16:06:17 +0100
committerBram Moolenaar <Bram@vim.org>2017-02-09 16:06:17 +0100
commit43dded8c59c0647a70dd52c3125783945d90ae5a (patch)
treedc488a343cc9f06fb9a9d800d2f27ae3206cfb02
parentdad7309dd22f0c6b5de0b031acd7f54d3aa94326 (diff)
downloadvim-git-8.0.0317.tar.gz
patch 8.0.0317: no test for setting 'guifont'v8.0.0317
Problem: No test for setting 'guifont'. Solution: Add a test for X11 GUIs. (Kazunobu Kuriyama)
-rw-r--r--src/testdir/test_gui.vim59
-rw-r--r--src/version.c2
2 files changed, 61 insertions, 0 deletions
diff --git a/src/testdir/test_gui.vim b/src/testdir/test_gui.vim
index 0a158e72c..3361649a1 100644
--- a/src/testdir/test_gui.vim
+++ b/src/testdir/test_gui.vim
@@ -72,6 +72,65 @@ func Test_getfontname_without_arg()
endif
endfunc
+func Test_set_guifont()
+ let l:guifont_saved = &guifont
+ if has('xfontset')
+ " Prevent 'guifontset' from canceling 'guifont'.
+ let l:guifontset_saved = &guifontset
+ set guifontset=
+ endif
+
+ let skipped = 0
+ if has('gui_athena') || has('gui_motif')
+ " Non-empty font list with invalid font names.
+ "
+ " This test is twofold: (1) It checks if the command fails as expected
+ " when there are no loadable fonts found in the list. (2) It checks if
+ " 'guifont' remains the same after the command loads none of the fonts
+ " listed.
+ let l:flist = &guifont
+ call assert_fails('set guifont=-notexist1-*,-notexist2-*')
+ call assert_equal(l:flist, &guifont)
+
+ " Non-empty font list with a valid font name. Should pick up the first
+ " valid font.
+ set guifont=-notexist1-*,fixed,-notexist2-*
+ call assert_equal('fixed', getfontname())
+
+ " Empty list. Should fallback to the built-in default.
+ set guifont=
+ call assert_equal('7x13', getfontname())
+
+ elseif has('gui_gtk2') || has('gui_gnome') || has('gui_gtk3')
+ " For GTK, what we refer to as 'font names' in our manual are actually
+ " 'initial font patterns'. A valid font which matches the 'canonical font
+ " pattern' constructed from a given 'initial pattern' is to be looked up
+ " and loaded. That explains why the GTK GUIs appear to accept 'invalid
+ " font names'.
+ "
+ " Non-empty list. Should always pick up the first element, no matter how
+ " strange it is, as explained above.
+ set guifont=(´・ω・`)\ 12,Courier\ 12
+ call assert_equal('(´・ω・`) 12', getfontname())
+
+ " Empty list. Should fallback to the built-in default.
+ set guifont=
+ call assert_equal('Monospace 10', getfontname())
+
+ else
+ let skipped = 1
+ endif
+
+ if has('xfontset')
+ let &guifontset = l:guifontset_saved
+ endif
+ let &guifont = l:guifont_saved
+
+ if skipped
+ throw "Skipped: Test not implemented yet for this GUI"
+ endif
+endfunc
+
func Test_getwinpos()
call assert_match('Window position: X \d\+, Y \d\+', execute('winpos'))
call assert_true(getwinposx() >= 0)
diff --git a/src/version.c b/src/version.c
index 68af6ff11..50c6fb1dd 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 317,
+/**/
316,
/**/
315,