Mercurial > vim
view src/testdir/test_popupwin_textprop.vim @ 34780:54890be01c00 v9.1.0265
patch 9.1.0265: console dialog cannot save unnamed buffers
Commit: https://github.com/vim/vim/commit/df46115fc839c8912ed60646e86a412e5180ba1d
Author: glepnir <glephunter@gmail.com>
Date: Thu Apr 4 22:23:29 2024 +0200
patch 9.1.0265: console dialog cannot save unnamed buffers
Problem: console dialog cannot save unnamed buffers
Solution: set bufname before save (glepnir). Define dialog_con_gui
to test for GUI+Console dialog support, use it to skip
the test when the GUI feature has been defined.
Note: The dialog_changed() function will also try to call the
browse_save_fname() function, when FEAT_BROWSE is defined (which is only
defined in a GUI build of Vim). This will eventually lead to a call of
do_browse(), which causes an error message if a GUI is not currently
running (see the TODO: in do_browse()) and will then lead to a failure
in Test_goto_buf_with_onfirm().
Therefore, we must disable the Test_goto_buf_with_onfirm(), when the
dialog_con_gui feature is enabled (which basically means dialog feature
for GUI and Console builds, in contrast to the dialog_con and dialog_gui
feature).
(Previously this wasn't a problem, because the test aborted in the YES
case for the :confirm :b XgotoConf case and did therefore not run into
the browse function call)
closes: #14398
Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 04 Apr 2024 23:45:02 +0200 |
parents | dbec60b8c253 |
children |
line wrap: on
line source
" Tests for popup windows for text properties source check.vim CheckFeature popupwin CheckFeature textprop source screendump.vim CheckScreendump func Test_textprop_popup() let lines =<< trim END call setline(1, range(1, 100)) call setline(50, 'some text to work with') 50 normal zz set scrolloff=0 call prop_type_add('popupMarker', #{highlight: 'DiffAdd', bufnr: bufnr('%')}) call prop_add(50, 11, #{ \ length: 7, \ type: 'popupMarker', \ bufnr: bufnr('%'), \ }) let winid = popup_create('the text', #{ \ pos: 'botleft', \ textprop: 'popupMarker', \ border: [], \ padding: [0,1,0,1], \ close: 'click', \ }) END call writefile(lines, 'XtestTextpropPopup', 'D') let buf = RunVimInTerminal('-S XtestTextpropPopup', #{rows: 10}) call VerifyScreenDump(buf, 'Test_popup_textprop_01', {}) call term_sendkeys(buf, "zt") call VerifyScreenDump(buf, 'Test_popup_textprop_02', {}) call term_sendkeys(buf, "zzIawe\<Esc>") call VerifyScreenDump(buf, 'Test_popup_textprop_03', {}) call term_sendkeys(buf, "0dw") call VerifyScreenDump(buf, 'Test_popup_textprop_04', {}) call term_sendkeys(buf, "Oinserted\<Esc>") call VerifyScreenDump(buf, 'Test_popup_textprop_05', {}) call term_sendkeys(buf, "k2dd") call VerifyScreenDump(buf, 'Test_popup_textprop_06', {}) call term_sendkeys(buf, "4\<C-E>") call VerifyScreenDump(buf, 'Test_popup_textprop_07', {}) " clean up call StopVimInTerminal(buf) endfunc func Test_textprop_popup_corners() let lines =<< trim END call setline(1, range(1, 100)) call setline(50, 'now working with some longer text here') 50 normal zz set scrolloff=0 call prop_type_add('popupMarker', #{highlight: 'DiffAdd'}) call prop_add(50, 23, #{ \ length: 6, \ type: 'popupMarker', \ }) let winid = popup_create('bottom left', #{ \ pos: 'botleft', \ textprop: 'popupMarker', \ textpropwin: win_getid(), \ padding: [0,1,0,1], \ }) let winid = popup_create('bottom right', #{ \ pos: 'botright', \ textprop: 'popupMarker', \ border: [], \ padding: [0,1,0,1], \ }) let winid = popup_create('top left', #{ \ pos: 'topleft', \ textprop: 'popupMarker', \ border: [], \ padding: [0,1,0,1], \ }) let winid = popup_create('top right', #{ \ pos: 'topright', \ textprop: 'popupMarker', \ padding: [0,1,0,1], \ }) END call writefile(lines, 'XtestTextpropPopupCorners', 'D') let buf = RunVimInTerminal('-S XtestTextpropPopupCorners', #{rows: 12}) call VerifyScreenDump(buf, 'Test_popup_textprop_corn_1', {}) call term_sendkeys(buf, "0dw") call VerifyScreenDump(buf, 'Test_popup_textprop_corn_2', {}) call term_sendkeys(buf, "46Goextra\<Esc>") call VerifyScreenDump(buf, 'Test_popup_textprop_corn_3', {}) call term_sendkeys(buf, "u") call term_sendkeys(buf, ":\<CR>") call VerifyScreenDump(buf, 'Test_popup_textprop_corn_4', {}) call term_sendkeys(buf, ":vsplit foo\<CR>") call VerifyScreenDump(buf, 'Test_popup_textprop_corn_5', {}) call term_sendkeys(buf, ":only!\<CR>") call VerifyScreenDump(buf, 'Test_popup_textprop_corn_6', {}) " clean up call StopVimInTerminal(buf) endfunc func Test_textprop_popup_offsets() let lines =<< trim END call setline(1, range(1, 100)) call setline(50, 'now working with some longer text here') 50 normal zz set scrolloff=0 call prop_type_add('popupMarker', #{highlight: 'DiffAdd'}) call prop_add(50, 23, #{ \ length: 6, \ type: 'popupMarker', \ }) let winid = popup_create('bottom left', #{ \ pos: 'botleft', \ line: -1, \ col: 2, \ textprop: 'popupMarker', \ padding: [0,1,0,1], \ }) let winid = popup_create('bottom right', #{ \ pos: 'botright', \ line: -1, \ col: -2, \ textprop: 'popupMarker', \ border: [], \ padding: [0,1,0,1], \ }) let winid = popup_create('top left', #{ \ pos: 'topleft', \ line: 1, \ col: 2, \ textprop: 'popupMarker', \ border: [], \ padding: [0,1,0,1], \ }) let winid = popup_create('top right', #{ \ pos: 'topright', \ line: 1, \ col: -2, \ textprop: 'popupMarker', \ padding: [0,1,0,1], \ }) END call writefile(lines, 'XtestTextpropPopupOffset', 'D') let buf = RunVimInTerminal('-S XtestTextpropPopupOffset', #{rows: 12}) call VerifyScreenDump(buf, 'Test_popup_textprop_off_1', {}) " test that removing the text property closes the popups call term_sendkeys(buf, ":call prop_clear(50)\<CR>") call VerifyScreenDump(buf, 'Test_popup_textprop_off_2', {}) " clean up call StopVimInTerminal(buf) endfunc " vim: shiftwidth=2 sts=2