19f6277bdSBram Moolenaar" Tests for Vim buffer 29f6277bdSBram Moolenaar 39f6277bdSBram Moolenaar" Test for the :bunload command with an offset 49f6277bdSBram Moolenaarfunc Test_bunload_with_offset() 59f6277bdSBram Moolenaar %bwipe! 69f6277bdSBram Moolenaar call writefile(['B1'], 'b1') 79f6277bdSBram Moolenaar call writefile(['B2'], 'b2') 89f6277bdSBram Moolenaar call writefile(['B3'], 'b3') 99f6277bdSBram Moolenaar call writefile(['B4'], 'b4') 109f6277bdSBram Moolenaar 119f6277bdSBram Moolenaar " Load four buffers. Unload the second and third buffers and then 129f6277bdSBram Moolenaar " execute .+3bunload to unload the last buffer. 139f6277bdSBram Moolenaar edit b1 149f6277bdSBram Moolenaar new b2 159f6277bdSBram Moolenaar new b3 169f6277bdSBram Moolenaar new b4 179f6277bdSBram Moolenaar 189f6277bdSBram Moolenaar bunload b2 199f6277bdSBram Moolenaar bunload b3 209f6277bdSBram Moolenaar exe bufwinnr('b1') . 'wincmd w' 219f6277bdSBram Moolenaar .+3bunload 229f6277bdSBram Moolenaar call assert_equal(0, getbufinfo('b4')[0].loaded) 239f6277bdSBram Moolenaar call assert_equal('b1', 249f6277bdSBram Moolenaar \ fnamemodify(getbufinfo({'bufloaded' : 1})[0].name, ':t')) 259f6277bdSBram Moolenaar 269f6277bdSBram Moolenaar " Load four buffers. Unload the third and fourth buffers. Execute .+3bunload 279f6277bdSBram Moolenaar " and check whether the second buffer is unloaded. 289f6277bdSBram Moolenaar ball 299f6277bdSBram Moolenaar bunload b3 309f6277bdSBram Moolenaar bunload b4 319f6277bdSBram Moolenaar exe bufwinnr('b1') . 'wincmd w' 329f6277bdSBram Moolenaar .+3bunload 339f6277bdSBram Moolenaar call assert_equal(0, getbufinfo('b2')[0].loaded) 349f6277bdSBram Moolenaar call assert_equal('b1', 359f6277bdSBram Moolenaar \ fnamemodify(getbufinfo({'bufloaded' : 1})[0].name, ':t')) 369f6277bdSBram Moolenaar 379f6277bdSBram Moolenaar " Load four buffers. Unload the second and third buffers and from the last 389f6277bdSBram Moolenaar " buffer execute .-3bunload to unload the first buffer. 399f6277bdSBram Moolenaar ball 409f6277bdSBram Moolenaar bunload b2 419f6277bdSBram Moolenaar bunload b3 429f6277bdSBram Moolenaar exe bufwinnr('b4') . 'wincmd w' 439f6277bdSBram Moolenaar .-3bunload 449f6277bdSBram Moolenaar call assert_equal(0, getbufinfo('b1')[0].loaded) 459f6277bdSBram Moolenaar call assert_equal('b4', 469f6277bdSBram Moolenaar \ fnamemodify(getbufinfo({'bufloaded' : 1})[0].name, ':t')) 479f6277bdSBram Moolenaar 489f6277bdSBram Moolenaar " Load four buffers. Unload the first and second buffers. Execute .-3bunload 499f6277bdSBram Moolenaar " from the last buffer and check whether the third buffer is unloaded. 509f6277bdSBram Moolenaar ball 519f6277bdSBram Moolenaar bunload b1 529f6277bdSBram Moolenaar bunload b2 539f6277bdSBram Moolenaar exe bufwinnr('b4') . 'wincmd w' 549f6277bdSBram Moolenaar .-3bunload 559f6277bdSBram Moolenaar call assert_equal(0, getbufinfo('b3')[0].loaded) 569f6277bdSBram Moolenaar call assert_equal('b4', 579f6277bdSBram Moolenaar \ fnamemodify(getbufinfo({'bufloaded' : 1})[0].name, ':t')) 589f6277bdSBram Moolenaar 599f6277bdSBram Moolenaar %bwipe! 609f6277bdSBram Moolenaar call delete('b1') 619f6277bdSBram Moolenaar call delete('b2') 629f6277bdSBram Moolenaar call delete('b3') 639f6277bdSBram Moolenaar call delete('b4') 64f0cee197SBram Moolenaar 65f0cee197SBram Moolenaar call assert_fails('1,4bunload', 'E16:') 66f0cee197SBram Moolenaar call assert_fails(',100bunload', 'E16:') 67f0cee197SBram Moolenaar 68f0cee197SBram Moolenaar " Use a try-catch for this test. When assert_fails() is used for this 69f0cee197SBram Moolenaar " test, the command fails with E515: instead of E90: 70f0cee197SBram Moolenaar let caught_E90 = 0 71f0cee197SBram Moolenaar try 72f0cee197SBram Moolenaar $bunload 73f0cee197SBram Moolenaar catch /E90:/ 74f0cee197SBram Moolenaar let caught_E90 = 1 75f0cee197SBram Moolenaar endtry 76f0cee197SBram Moolenaar call assert_equal(1, caught_E90) 77f0cee197SBram Moolenaar call assert_fails('$bunload', 'E515:') 78f0cee197SBram Moolenaarendfunc 79f0cee197SBram Moolenaar 80f0cee197SBram Moolenaar" Test for :buffer, :bnext, :bprevious, :brewind, :blast and :bmodified 81f0cee197SBram Moolenaar" commands 82f0cee197SBram Moolenaarfunc Test_buflist_browse() 83f0cee197SBram Moolenaar %bwipe! 84f0cee197SBram Moolenaar call assert_fails('buffer 1000', 'E86:') 85f0cee197SBram Moolenaar 86f0cee197SBram Moolenaar call writefile(['foo1', 'foo2', 'foo3', 'foo4'], 'Xfile1') 87f0cee197SBram Moolenaar call writefile(['bar1', 'bar2', 'bar3', 'bar4'], 'Xfile2') 88f0cee197SBram Moolenaar call writefile(['baz1', 'baz2', 'baz3', 'baz4'], 'Xfile3') 89f0cee197SBram Moolenaar edit Xfile1 90f0cee197SBram Moolenaar let b1 = bufnr() 91f0cee197SBram Moolenaar edit Xfile2 92f0cee197SBram Moolenaar let b2 = bufnr() 93f0cee197SBram Moolenaar edit +/baz4 Xfile3 94f0cee197SBram Moolenaar let b3 = bufnr() 95f0cee197SBram Moolenaar 96f0cee197SBram Moolenaar call assert_fails('buffer ' .. b1 .. ' abc', 'E488:') 97f0cee197SBram Moolenaar call assert_equal(b3, bufnr()) 98f0cee197SBram Moolenaar call assert_equal(4, line('.')) 99f0cee197SBram Moolenaar exe 'buffer +/bar2 ' .. b2 100f0cee197SBram Moolenaar call assert_equal(b2, bufnr()) 101f0cee197SBram Moolenaar call assert_equal(2, line('.')) 102f0cee197SBram Moolenaar exe 'buffer +/bar1' 103f0cee197SBram Moolenaar call assert_equal(b2, bufnr()) 104f0cee197SBram Moolenaar call assert_equal(1, line('.')) 105f0cee197SBram Moolenaar 106*bc2b71d4SBram Moolenaar brewind + 107f0cee197SBram Moolenaar call assert_equal(b1, bufnr()) 108*bc2b71d4SBram Moolenaar call assert_equal(4, line('.')) 109f0cee197SBram Moolenaar 110f0cee197SBram Moolenaar blast +/baz2 111f0cee197SBram Moolenaar call assert_equal(b3, bufnr()) 112f0cee197SBram Moolenaar call assert_equal(2, line('.')) 113f0cee197SBram Moolenaar 114f0cee197SBram Moolenaar bprevious +/bar4 115f0cee197SBram Moolenaar call assert_equal(b2, bufnr()) 116f0cee197SBram Moolenaar call assert_equal(4, line('.')) 117f0cee197SBram Moolenaar 118f0cee197SBram Moolenaar bnext +/baz3 119f0cee197SBram Moolenaar call assert_equal(b3, bufnr()) 120f0cee197SBram Moolenaar call assert_equal(3, line('.')) 121f0cee197SBram Moolenaar 122f0cee197SBram Moolenaar call assert_fails('bmodified', 'E84:') 123f0cee197SBram Moolenaar call setbufvar(b2, '&modified', 1) 124f0cee197SBram Moolenaar exe 'bmodified +/bar3' 125f0cee197SBram Moolenaar call assert_equal(b2, bufnr()) 126f0cee197SBram Moolenaar call assert_equal(3, line('.')) 127f0cee197SBram Moolenaar 128f0cee197SBram Moolenaar " With no listed buffers in the list, :bnext and :bprev should fail 129f0cee197SBram Moolenaar %bwipe! 130f0cee197SBram Moolenaar set nobuflisted 131f0cee197SBram Moolenaar call assert_fails('bnext', 'E85:') 132f0cee197SBram Moolenaar call assert_fails('bprev', 'E85:') 133f0cee197SBram Moolenaar set buflisted 134f0cee197SBram Moolenaar 135f0cee197SBram Moolenaar call assert_fails('sandbox bnext', 'E48:') 136f0cee197SBram Moolenaar 137f0cee197SBram Moolenaar call delete('Xfile1') 138f0cee197SBram Moolenaar call delete('Xfile2') 139f0cee197SBram Moolenaar call delete('Xfile3') 140f0cee197SBram Moolenaar %bwipe! 141f0cee197SBram Moolenaarendfunc 142f0cee197SBram Moolenaar 143f0cee197SBram Moolenaar" Test for :bdelete 144f0cee197SBram Moolenaarfunc Test_bdelete_cmd() 145f0cee197SBram Moolenaar %bwipe! 146f0cee197SBram Moolenaar call assert_fails('bdelete 5', 'E516:') 147f0cee197SBram Moolenaar 148f0cee197SBram Moolenaar " Deleting a unlisted and unloaded buffer 149f0cee197SBram Moolenaar edit Xfile1 150f0cee197SBram Moolenaar let bnr = bufnr() 151f0cee197SBram Moolenaar set nobuflisted 152f0cee197SBram Moolenaar enew 153f0cee197SBram Moolenaar call assert_fails('bdelete ' .. bnr, 'E516:') 154f0cee197SBram Moolenaar %bwipe! 1559f6277bdSBram Moolenaarendfunc 1569f6277bdSBram Moolenaar 1579f6277bdSBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab 158