summaryrefslogtreecommitdiff
path: root/src/testdir/test_gui.vim
diff options
context:
space:
mode:
Diffstat (limited to 'src/testdir/test_gui.vim')
-rw-r--r--src/testdir/test_gui.vim202
1 files changed, 79 insertions, 123 deletions
diff --git a/src/testdir/test_gui.vim b/src/testdir/test_gui.vim
index 240fda355..84836e669 100644
--- a/src/testdir/test_gui.vim
+++ b/src/testdir/test_gui.vim
@@ -61,11 +61,9 @@ func Test_colorscheme()
endfunc
func Test_getfontname_with_arg()
- let skipped = ''
+ CheckX11BasedGui
- if !g:x11_based_gui
- let skipped = g:not_implemented
- elseif has('gui_athena') || has('gui_motif')
+ if has('gui_athena') || has('gui_motif')
" Invalid font name. The result should be an empty string.
call assert_equal('', getfontname('notexist'))
@@ -82,20 +80,14 @@ func Test_getfontname_with_arg()
let fname = 'Bitstream Vera Sans Mono 12'
call assert_equal(fname, getfontname(fname))
endif
-
- if !empty(skipped)
- throw skipped
- endif
endfunc
func Test_getfontname_without_arg()
- let skipped = ''
+ CheckX11BasedGui
let fname = getfontname()
- if !g:x11_based_gui
- let skipped = g:not_implemented
- elseif has('gui_kde')
+ if has('gui_kde')
" 'expected' is the value specified by SetUp() above.
call assert_equal('Courier 10 Pitch/8/-1/5/50/0/0/0/0/0', fname)
elseif has('gui_athena') || has('gui_motif')
@@ -106,10 +98,6 @@ func Test_getfontname_without_arg()
" 'expected' is DEFAULT_FONT of gui_gtk_x11.c.
call assert_equal('Monospace 10', fname)
endif
-
- if !empty(skipped)
- throw skipped
- endif
endfunc
func Test_getwinpos()
@@ -120,48 +108,41 @@ func Test_getwinpos()
endfunc
func Test_quoteplus()
- let g:test_is_flaky = 1
- let skipped = ''
+ CheckX11BasedGui
- if !g:x11_based_gui
- let skipped = g:not_supported . 'quoteplus'
- else
- let quoteplus_saved = @+
-
- let test_call = 'Can you hear me?'
- let test_response = 'Yes, I can.'
- let vim_exe = GetVimCommand()
- let testee = 'VIMRUNTIME=' . $VIMRUNTIME . '; export VIMRUNTIME;'
- \ . vim_exe . ' --noplugin --not-a-term -c ''%s'''
- " Ignore the "failed to create input context" error.
- let cmd = 'call test_ignore_error("E285") | '
- \ . 'gui -f | '
- \ . 'call feedkeys("'
- \ . '\"+p'
- \ . ':s/' . test_call . '/' . test_response . '/\<CR>'
- \ . '\"+yis'
- \ . ':q!\<CR>", "tx")'
- let run_vimtest = printf(testee, cmd)
-
- " Set the quoteplus register to test_call, and another gvim will launched.
- " Then, it first tries to paste the content of its own quotedplus register
- " onto it. Second, it tries to substitute test_response for the pasted
- " sentence. If the sentence is identical to test_call, the substitution
- " should succeed. Third, it tries to yank the result of the substitution
- " to its own quoteplus register, and last it quits. When system()
- " returns, the content of the quoteplus register should be identical to
- " test_response if those quoteplus registers are synchronized properly
- " with/through the X11 clipboard.
- let @+ = test_call
- call system(run_vimtest)
- call assert_equal(test_response, @+)
-
- let @+ = quoteplus_saved
- endif
+ let g:test_is_flaky = 1
- if !empty(skipped)
- throw skipped
- endif
+ let quoteplus_saved = @+
+
+ let test_call = 'Can you hear me?'
+ let test_response = 'Yes, I can.'
+ let vim_exe = GetVimCommand()
+ let testee = 'VIMRUNTIME=' . $VIMRUNTIME . '; export VIMRUNTIME;'
+ \ . vim_exe . ' --noplugin --not-a-term -c ''%s'''
+ " Ignore the "failed to create input context" error.
+ let cmd = 'call test_ignore_error("E285") | '
+ \ . 'gui -f | '
+ \ . 'call feedkeys("'
+ \ . '\"+p'
+ \ . ':s/' . test_call . '/' . test_response . '/\<CR>'
+ \ . '\"+yis'
+ \ . ':q!\<CR>", "tx")'
+ let run_vimtest = printf(testee, cmd)
+
+ " Set the quoteplus register to test_call, and another gvim will launched.
+ " Then, it first tries to paste the content of its own quotedplus register
+ " onto it. Second, it tries to substitute test_response for the pasted
+ " sentence. If the sentence is identical to test_call, the substitution
+ " should succeed. Third, it tries to yank the result of the substitution
+ " to its own quoteplus register, and last it quits. When system()
+ " returns, the content of the quoteplus register should be identical to
+ " test_response if those quoteplus registers are synchronized properly
+ " with/through the X11 clipboard.
+ let @+ = test_call
+ call system(run_vimtest)
+ call assert_equal(test_response, @+)
+
+ let @+ = quoteplus_saved
endfunc
func Test_set_background()
@@ -333,8 +314,29 @@ func Test_set_guicursor()
let &guicursor = guicursor_saved
endfunc
+func Test_set_guifont_errors()
+ if has('win32')
+ " Invalid font names are accepted in GTK GUI
+ call assert_fails('set guifont=xa1bc23d7f', 'E596:')
+ endif
+
+ " This only works if 'renderoptions' exists and does not work for Windows XP
+ " and older.
+ if exists('+renderoptions') && windowsversion() !~ '^[345]\.'
+ " doing this four times used to cause a crash
+ set renderoptions=type:directx
+ for i in range(5)
+ set guifont=
+ endfor
+ set renderoptions=
+ for i in range(5)
+ set guifont=
+ endfor
+ endif
+endfunc
+
func Test_set_guifont()
- let skipped = ''
+ CheckX11BasedGui
let guifont_saved = &guifont
if has('xfontset')
@@ -343,9 +345,7 @@ func Test_set_guifont()
set guifontset=
endif
- if !g:x11_based_gui
- let skipped = g:not_implemented
- elseif has('gui_athena') || has('gui_motif')
+ 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
@@ -384,33 +384,10 @@ func Test_set_guifont()
call assert_equal('Monospace 10', getfontname())
endif
- if has('win32')
- " Invalid font names are accepted in GTK GUI
- call assert_fails('set guifont=xa1bc23d7f', 'E596:')
- endif
-
- " This only works if 'renderoptions' exists and does not work for Windows XP
- " and older.
- if exists('+renderoptions') && windowsversion() !~ '^[345]\.'
- " doing this four times used to cause a crash
- set renderoptions=type:directx
- for i in range(5)
- set guifont=
- endfor
- set renderoptions=
- for i in range(5)
- set guifont=
- endfor
- endif
-
if has('xfontset')
let &guifontset = guifontset_saved
endif
let &guifont = guifont_saved
-
- if !empty(skipped)
- throw skipped
- endif
endfunc
func Test_set_guifontset()
@@ -485,12 +462,11 @@ func Test_set_guifontset()
endfunc
func Test_set_guifontwide()
+ CheckX11BasedGui
+
call assert_fails('set guifontwide=*', 'E533:')
- let skipped = ''
- if !g:x11_based_gui
- let skipped = g:not_implemented
- elseif has('gui_gtk')
+ if has('gui_gtk')
let guifont_saved = &guifont
let guifontwide_saved = &guifontwide
@@ -561,51 +537,31 @@ func Test_set_guifontwide()
let &encoding = encoding_saved
endif
endif
-
- if !empty(skipped)
- throw skipped
- endif
endfunc
func Test_set_guiligatures()
- let skipped = ''
-
- if !g:x11_based_gui
- let skipped = g:not_supported . 'guiligatures'
- else
- if has('gui_gtk') || has('gui_gtk2') || has('gui_gnome') || has('gui_gtk3')
- " Try correct value
- set guiligatures=<>=ab
- call assert_equal("<>=ab", &guiligatures)
- " Try to throw error
- try
- set guiligatures=<>=šab
- call assert_report("'set guiligatures=<>=šab should have failed")
- catch
- call assert_exception('E1243:')
- endtry
- endif
- endif
+ CheckX11BasedGui
- if !empty(skipped)
- throw skipped
+ if has('gui_gtk') || has('gui_gtk2') || has('gui_gnome') || has('gui_gtk3')
+ " Try correct value
+ set guiligatures=<>=ab
+ call assert_equal("<>=ab", &guiligatures)
+ " Try to throw error
+ try
+ set guiligatures=<>=šab
+ call assert_report("'set guiligatures=<>=šab should have failed")
+ catch
+ call assert_exception('E1243:')
+ endtry
endif
endfunc
func Test_set_guiheadroom()
- let skipped = ''
+ CheckX11BasedGui
- if !g:x11_based_gui
- let skipped = g:not_supported . 'guiheadroom'
- else
- " Since this script is to be read together with '-U NONE', the default
- " value must be preserved.
- call assert_equal(50, &guiheadroom)
- endif
-
- if !empty(skipped)
- throw skipped
- endif
+ " Since this script is to be read together with '-U NONE', the default
+ " value must be preserved.
+ call assert_equal(50, &guiheadroom)
endfunc
func Test_set_guioptions()