Mercurial > vim
view src/testdir/test_hide.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 | e373843e2980 |
children |
line wrap: on
line source
" Tests for :hide command/modifier and 'hidden' option func SetUp() let s:save_hidden = &hidden let s:save_bufhidden = &bufhidden let s:save_autowrite = &autowrite set nohidden set bufhidden= set noautowrite endfunc function TearDown() let &hidden = s:save_hidden let &bufhidden = s:save_bufhidden let &autowrite = s:save_autowrite endfunc function Test_hide() let orig_bname = bufname('') let orig_winnr = winnr('$') new Xf1 set modified call assert_fails('edit Xf2') bwipeout! Xf1 new Xf1 set modified edit! Xf2 call assert_equal(['Xf2', 2], [bufname(''), winnr('$')]) call assert_equal([1, 0], [buflisted('Xf1'), bufloaded('Xf1')]) bwipeout! Xf1 bwipeout! Xf2 new Xf1 set modified " :hide as a command hide call assert_equal([orig_bname, orig_winnr], [bufname(''), winnr('$')]) call assert_equal([1, 1], ['Xf1'->buflisted(), 'Xf1'->bufloaded()]) bwipeout! Xf1 new Xf1 set modified " :hide as a command with trailing comment hide " comment call assert_equal([orig_bname, orig_winnr], [bufname(''), winnr('$')]) call assert_equal([1, 1], [buflisted('Xf1'), bufloaded('Xf1')]) bwipeout! Xf1 new Xf1 set modified " :hide as a command with bar hide | new Xf2 " comment call assert_equal(['Xf2', 2], [bufname(''), winnr('$')]) call assert_equal([1, 1], [buflisted('Xf1'), bufloaded('Xf1')]) bwipeout! Xf1 bwipeout! Xf2 new Xf1 set modified " :hide as a modifier with trailing comment hide edit Xf2 " comment call assert_equal(['Xf2', 2], [bufname(''), winnr('$')]) call assert_equal([1, 1], [buflisted('Xf1'), bufloaded('Xf1')]) bwipeout! Xf1 bwipeout! Xf2 new Xf1 set modified " To check that the bar is not recognized to separate commands hide echo "one|two" call assert_equal(['Xf1', 2], [bufname(''), winnr('$')]) call assert_equal([1, 1], [buflisted('Xf1'), bufloaded('Xf1')]) bwipeout! Xf1 " set hidden new Xf1 set hidden set modified edit Xf2 " comment call assert_equal(['Xf2', 2], [bufname(''), winnr('$')]) call assert_equal([1, 1], [buflisted('Xf1'), bufloaded('Xf1')]) bwipeout! Xf1 bwipeout! Xf2 " set hidden bufhidden=wipe new Xf1 set bufhidden=wipe set modified hide edit! Xf2 " comment call assert_equal(['Xf2', 2], [bufname(''), winnr('$')]) call assert_equal([0, 0], [buflisted('Xf1'), bufloaded('Xf1')]) bwipeout! Xf2 endfunc " vim: shiftwidth=2 sts=2 expandtab