Mercurial > vim
view src/testdir/test_delete.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 | 58c9f11eae5b |
children |
line wrap: on
line source
" Test for delete(). source check.vim source term_util.vim source screendump.vim func Test_file_delete() split Xfdelfile call setline(1, ['a', 'b']) wq call assert_equal(['a', 'b'], readfile('Xfdelfile')) call assert_equal(0, delete('Xfdelfile')) call assert_fails('call readfile("Xfdelfile")', 'E484:') call assert_equal(-1, delete('Xfdelfile')) bwipe Xfdelfile endfunc func Test_dir_delete() call mkdir('Xdirdel') call assert_true(isdirectory('Xdirdel')) call assert_equal(0, delete('Xdirdel', 'd')) call assert_false(isdirectory('Xdirdel')) call assert_equal(-1, delete('Xdirdel', 'd')) endfunc func Test_recursive_delete() call mkdir('Xrecdel') call mkdir('Xrecdel/subdir') call mkdir('Xrecdel/empty') split Xrecdel/Xfile call setline(1, ['a', 'b']) w w Xrecdel/subdir/Xfile close call assert_true(isdirectory('Xrecdel')) call assert_equal(['a', 'b'], readfile('Xrecdel/Xfile')) call assert_true(isdirectory('Xrecdel/subdir')) call assert_equal(['a', 'b'], readfile('Xrecdel/subdir/Xfile')) call assert_true('Xrecdel/empty'->isdirectory()) call assert_equal(0, delete('Xrecdel', 'rf')) call assert_false(isdirectory('Xrecdel')) call assert_equal(-1, delete('Xrecdel', 'd')) bwipe Xrecdel/Xfile bwipe Xrecdel/subdir/Xfile endfunc func Test_symlink_delete() CheckUnix split Xslfile call setline(1, ['a', 'b']) wq silent !ln -s Xslfile Xdellink " Delete the link, not the file call assert_equal(0, delete('Xdellink')) call assert_equal(-1, delete('Xdellink')) call assert_equal(0, delete('Xslfile')) bwipe Xslfile endfunc func Test_symlink_dir_delete() CheckUnix call mkdir('Xsymdir') silent !ln -s Xsymdir Xdirlink call assert_true(isdirectory('Xsymdir')) call assert_true(isdirectory('Xdirlink')) " Delete the link, not the directory call assert_equal(0, delete('Xdirlink')) call assert_equal(-1, delete('Xdirlink')) call assert_equal(0, delete('Xsymdir', 'd')) endfunc func Test_symlink_recursive_delete() CheckUnix call mkdir('Xrecdir3') call mkdir('Xrecdir3/subdir') call mkdir('Xrecdir4') split Xrecdir3/Xfile call setline(1, ['a', 'b']) w w Xrecdir3/subdir/Xfile w Xrecdir4/Xfile close silent !ln -s ../Xrecdir4 Xrecdir3/Xreclink call assert_true(isdirectory('Xrecdir3')) call assert_equal(['a', 'b'], readfile('Xrecdir3/Xfile')) call assert_true(isdirectory('Xrecdir3/subdir')) call assert_equal(['a', 'b'], readfile('Xrecdir3/subdir/Xfile')) call assert_true(isdirectory('Xrecdir4')) call assert_true(isdirectory('Xrecdir3/Xreclink')) call assert_equal(['a', 'b'], readfile('Xrecdir4/Xfile')) call assert_equal(0, delete('Xrecdir3', 'rf')) call assert_false(isdirectory('Xrecdir3')) call assert_equal(-1, delete('Xrecdir3', 'd')) " symlink is deleted, not the directory it points to call assert_true(isdirectory('Xrecdir4')) call assert_equal(['a', 'b'], readfile('Xrecdir4/Xfile')) call assert_equal(0, delete('Xrecdir4/Xfile')) call assert_equal(0, delete('Xrecdir4', 'd')) bwipe Xrecdir3/Xfile bwipe Xrecdir3/subdir/Xfile bwipe Xrecdir4/Xfile endfunc func Test_delete_errors() call assert_fails('call delete('''')', 'E474:') call assert_fails('call delete(''foo'', 0)', 'E15:') endfunc " This should no longer trigger ml_get errors func Test_delete_ml_get_errors() CheckRunVimInTerminal let lines =<< trim END set noshowcmd noruler scrolloff=0 source samples/matchparen.vim END call writefile(lines, 'XDelete_ml_get_error', 'D') let buf = RunVimInTerminal('-S XDelete_ml_get_error samples/box.txt', #{rows: 10, wait_for_ruler: 0}) call TermWait(buf) call term_sendkeys(buf, "249GV\<C-End>d") call TermWait(buf) " The following used to trigger ml_get errors call term_sendkeys(buf, "\<PageUp>") call TermWait(buf) call term_sendkeys(buf, ":mess\<cr>") call VerifyScreenDump(buf, 'Test_delete_ml_get_errors_1', {}) call term_sendkeys(buf, ":q!\<cr>") call StopVimInTerminal(buf) endfunc " vim: shiftwidth=2 sts=2 expandtab