diff options
-rw-r--r-- | src/nvim/testdir/test_autocmd.vim | 51 | ||||
-rw-r--r-- | src/nvim/testdir/test_bufline.vim | 20 | ||||
-rw-r--r-- | src/nvim/testdir/test_functions.vim | 28 |
3 files changed, 68 insertions, 31 deletions
diff --git a/src/nvim/testdir/test_autocmd.vim b/src/nvim/testdir/test_autocmd.vim index 778e5f9b9f..a249c2bf50 100644 --- a/src/nvim/testdir/test_autocmd.vim +++ b/src/nvim/testdir/test_autocmd.vim @@ -493,16 +493,24 @@ func Test_BufReadCmdHelpJump() au! BufReadCmd endfunc -" BufReadCmd is triggered for a "nofile" buffer +" BufReadCmd is triggered for a "nofile" buffer. Check all values. func Test_BufReadCmdNofile() - new somefile - set buftype=nofile - au BufReadCmd somefile call setline(1, 'triggered') - edit - call assert_equal('triggered', getline(1)) - - au! BufReadCmd - bwipe! + for val in ['nofile', + \ 'nowrite', + \ 'acwrite', + \ 'quickfix', + \ 'help', + \ 'prompt', + \ ] + new somefile + exe 'set buftype=' .. val + au BufReadCmd somefile call setline(1, 'triggered') + edit + call assert_equal('triggered', getline(1)) + + au! BufReadCmd + bwipe! + endfor endfunc func Test_augroup_deleted() @@ -603,15 +611,22 @@ func Test_BufEnter() au! BufEnter " Editing a "nofile" buffer doesn't read the file but does trigger BufEnter - " for historic reasons. - new somefile - set buftype=nofile - au BufEnter somefile call setline(1, 'some text') - edit - call assert_equal('some text', getline(1)) - - bwipe! - au! BufEnter + " for historic reasons. Also test other 'buftype' values. + for val in ['nofile', + \ 'nowrite', + \ 'acwrite', + \ 'quickfix', + \ 'help', + \ 'prompt', + \ ] + new somefile + exe 'set buftype=' .. val + au BufEnter somefile call setline(1, 'some text') + edit + call assert_equal('some text', getline(1)) + bwipe! + au! BufEnter + endfor endfunc " Closing a window might cause an endless loop diff --git a/src/nvim/testdir/test_bufline.vim b/src/nvim/testdir/test_bufline.vim index 939147b83b..3b5bcbce89 100644 --- a/src/nvim/testdir/test_bufline.vim +++ b/src/nvim/testdir/test_bufline.vim @@ -187,4 +187,24 @@ func Test_deletebufline_select_mode() bwipe! endfunc +func Test_setbufline_startup_nofile() + let before =<< trim [CODE] + set shortmess+=F + file Xresult + set buftype=nofile + call setbufline('', 1, 'success') + [CODE] + let after =<< trim [CODE] + set buftype= + write + quit + [CODE] + + if !RunVim(before, after, '--clean') + return + endif + call assert_equal(['success'], readfile('Xresult')) + call delete('Xresult') +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/nvim/testdir/test_functions.vim b/src/nvim/testdir/test_functions.vim index 555c4f58b7..147eda5b0a 100644 --- a/src/nvim/testdir/test_functions.vim +++ b/src/nvim/testdir/test_functions.vim @@ -1880,19 +1880,21 @@ func Test_bufadd_bufload() exe 'bwipe ' .. buf2 call assert_equal(0, bufexists(buf2)) - " when 'buftype' is "nofile" then bufload() does not read the file - bwipe! XotherName - let buf = bufadd('XotherName') - call setbufvar(buf, '&bt', 'nofile') - call bufload(buf) - call assert_equal([''], getbufline(buf, 1, '$')) - - " when 'buftype' is "acwrite" then bufload() DOES read the file - bwipe! XotherName - let buf = bufadd('XotherName') - call setbufvar(buf, '&bt', 'acwrite') - call bufload(buf) - call assert_equal(['some', 'text'], getbufline(buf, 1, '$')) + " When 'buftype' is "nofile" then bufload() does not read the file. + " Other values too. + for val in [['nofile', 0], + \ ['nowrite', 1], + \ ['acwrite', 1], + \ ['quickfix', 0], + \ ['help', 1], + \ ['prompt', 0], + \ ] + bwipe! XotherName + let buf = bufadd('XotherName') + call setbufvar(buf, '&bt', val[0]) + call bufload(buf) + call assert_equal(val[1] ? ['some', 'text'] : [''], getbufline(buf, 1, '$'), val[0]) + endfor bwipe someName bwipe XotherName |