1b5ae48e9SBram Moolenaar" Tests for the getbufinfo(), getwininfo() and gettabinfo() functions 2b5ae48e9SBram Moolenaar 3b5ae48e9SBram Moolenaarfunction Test_getbufwintabinfo() 4b5ae48e9SBram Moolenaar edit Xtestfile1 5b5ae48e9SBram Moolenaar edit Xtestfile2 6b5ae48e9SBram Moolenaar let buflist = getbufinfo() 7b5ae48e9SBram Moolenaar call assert_equal(2, len(buflist)) 8b5ae48e9SBram Moolenaar call assert_match('Xtestfile1', buflist[0].name) 9b5ae48e9SBram Moolenaar call assert_match('Xtestfile2', getbufinfo('Xtestfile2')[0].name) 10b5ae48e9SBram Moolenaar call assert_equal([], getbufinfo(2016)) 11b5ae48e9SBram Moolenaar edit Xtestfile1 12b5ae48e9SBram Moolenaar hide edit Xtestfile2 13b5ae48e9SBram Moolenaar hide enew 14b5ae48e9SBram Moolenaar call assert_equal(3, len(getbufinfo({'bufloaded':1}))) 15b5ae48e9SBram Moolenaar 16386600f0SBram Moolenaar set tabstop&vim 17386600f0SBram Moolenaar let b:editor = 'vim' 18386600f0SBram Moolenaar let l = getbufinfo('%') 1933928837SBram Moolenaar call assert_equal(bufnr('%'), l[0].bufnr) 20386600f0SBram Moolenaar call assert_equal('vim', l[0].variables.editor) 21386600f0SBram Moolenaar call assert_notequal(-1, index(l[0].windows, bufwinid('%'))) 22386600f0SBram Moolenaar 238e6a31dfSBram Moolenaar " Test for getbufinfo() with 'bufmodified' 248e6a31dfSBram Moolenaar call assert_equal(0, len(getbufinfo({'bufmodified' : 1}))) 258e6a31dfSBram Moolenaar call setbufline('Xtestfile1', 1, ["Line1"]) 268e6a31dfSBram Moolenaar let l = getbufinfo({'bufmodified' : 1}) 278e6a31dfSBram Moolenaar call assert_equal(1, len(l)) 288e6a31dfSBram Moolenaar call assert_equal(bufnr('Xtestfile1'), l[0].bufnr) 298e6a31dfSBram Moolenaar 30386600f0SBram Moolenaar if has('signs') 31386600f0SBram Moolenaar call append(0, ['Linux', 'Windows', 'Mac']) 32386600f0SBram Moolenaar sign define Mark text=>> texthl=Search 33386600f0SBram Moolenaar exe "sign place 2 line=3 name=Mark buffer=" . bufnr('%') 34386600f0SBram Moolenaar let l = getbufinfo('%') 35386600f0SBram Moolenaar call assert_equal(2, l[0].signs[0].id) 36386600f0SBram Moolenaar call assert_equal(3, l[0].signs[0].lnum) 37386600f0SBram Moolenaar call assert_equal('Mark', l[0].signs[0].name) 38386600f0SBram Moolenaar sign unplace * 39386600f0SBram Moolenaar sign undefine Mark 40386600f0SBram Moolenaar enew! 41386600f0SBram Moolenaar endif 42386600f0SBram Moolenaar 43b5ae48e9SBram Moolenaar only 44b5ae48e9SBram Moolenaar let w1_id = win_getid() 45b5ae48e9SBram Moolenaar new 46b5ae48e9SBram Moolenaar let w2_id = win_getid() 47b5ae48e9SBram Moolenaar tabnew | let w3_id = win_getid() 48b5ae48e9SBram Moolenaar new | let w4_id = win_getid() 49*b6959a8eSBram Moolenaar vert new | let w5_id = win_getid() 50386600f0SBram Moolenaar call setwinvar(0, 'signal', 'green') 51b5ae48e9SBram Moolenaar tabfirst 52b5ae48e9SBram Moolenaar let winlist = getwininfo() 53b5ae48e9SBram Moolenaar call assert_equal(5, len(winlist)) 54*b6959a8eSBram Moolenaar call assert_equal(winwidth(1), winlist[0].width) 55*b6959a8eSBram Moolenaar call assert_equal(0, winlist[0].wincol) 56*b6959a8eSBram Moolenaar call assert_equal(1, winlist[0].winrow) " tabline adds one 57*b6959a8eSBram Moolenaar 5833928837SBram Moolenaar call assert_equal(winbufnr(2), winlist[1].bufnr) 59386600f0SBram Moolenaar call assert_equal(winheight(2), winlist[1].height) 60*b6959a8eSBram Moolenaar call assert_equal(0, winlist[1].wincol) 61*b6959a8eSBram Moolenaar call assert_equal(winheight(1) + 2, winlist[1].winrow) 62*b6959a8eSBram Moolenaar 6333928837SBram Moolenaar call assert_equal(1, winlist[2].winnr) 64*b6959a8eSBram Moolenaar call assert_equal(1, winlist[2].winrow) 65*b6959a8eSBram Moolenaar call assert_equal(0, winlist[2].wincol) 66*b6959a8eSBram Moolenaar 67*b6959a8eSBram Moolenaar call assert_equal(winlist[2].width + 1, winlist[3].wincol) 68*b6959a8eSBram Moolenaar call assert_equal(0, winlist[4].wincol) 69*b6959a8eSBram Moolenaar 70*b6959a8eSBram Moolenaar call assert_equal(1, winlist[0].tabnr) 71*b6959a8eSBram Moolenaar call assert_equal(1, winlist[1].tabnr) 72*b6959a8eSBram Moolenaar call assert_equal(2, winlist[2].tabnr) 7333928837SBram Moolenaar call assert_equal(2, winlist[3].tabnr) 74*b6959a8eSBram Moolenaar call assert_equal(2, winlist[4].tabnr) 75*b6959a8eSBram Moolenaar 76386600f0SBram Moolenaar call assert_equal('green', winlist[2].variables.signal) 77386600f0SBram Moolenaar call assert_equal(w4_id, winlist[3].winid) 78b5ae48e9SBram Moolenaar let winfo = getwininfo(w5_id)[0] 7933928837SBram Moolenaar call assert_equal(2, winfo.tabnr) 80b5ae48e9SBram Moolenaar call assert_equal([], getwininfo(3)) 81b5ae48e9SBram Moolenaar 82386600f0SBram Moolenaar call settabvar(1, 'space', 'build') 83b5ae48e9SBram Moolenaar let tablist = gettabinfo() 84b5ae48e9SBram Moolenaar call assert_equal(2, len(tablist)) 85b5ae48e9SBram Moolenaar call assert_equal(3, len(tablist[1].windows)) 8633928837SBram Moolenaar call assert_equal(2, tablist[1].tabnr) 87386600f0SBram Moolenaar call assert_equal('build', tablist[0].variables.space) 88386600f0SBram Moolenaar call assert_equal(w2_id, tablist[0].windows[0]) 89b5ae48e9SBram Moolenaar call assert_equal([], gettabinfo(3)) 90b5ae48e9SBram Moolenaar 91b5ae48e9SBram Moolenaar tabonly | only 92386600f0SBram Moolenaar 93386600f0SBram Moolenaar lexpr '' 94386600f0SBram Moolenaar lopen 95386600f0SBram Moolenaar copen 96386600f0SBram Moolenaar let winlist = getwininfo() 97386600f0SBram Moolenaar call assert_false(winlist[0].quickfix) 98386600f0SBram Moolenaar call assert_false(winlist[0].loclist) 99386600f0SBram Moolenaar call assert_true(winlist[1].quickfix) 100386600f0SBram Moolenaar call assert_true(winlist[1].loclist) 101386600f0SBram Moolenaar call assert_true(winlist[2].quickfix) 102386600f0SBram Moolenaar call assert_false(winlist[2].loclist) 103386600f0SBram Moolenaar wincmd t | only 104b5ae48e9SBram Moolenaarendfunction 1053056735aSBram Moolenaar 1063056735aSBram Moolenaarfunction Test_get_buf_options() 1073056735aSBram Moolenaar let opts = getbufvar(bufnr('%'), '&') 1083056735aSBram Moolenaar call assert_equal(v:t_dict, type(opts)) 1093056735aSBram Moolenaar call assert_equal(8, opts.tabstop) 1103056735aSBram Moolenaarendfunc 1113056735aSBram Moolenaar 1123056735aSBram Moolenaarfunction Test_get_win_options() 113789a5c0eSBram Moolenaar if has('folding') 114789a5c0eSBram Moolenaar set foldlevel=999 115789a5c0eSBram Moolenaar endif 116789a5c0eSBram Moolenaar set list 1173056735aSBram Moolenaar let opts = getwinvar(1, '&') 1183056735aSBram Moolenaar call assert_equal(v:t_dict, type(opts)) 1193056735aSBram Moolenaar call assert_equal(0, opts.linebreak) 120789a5c0eSBram Moolenaar call assert_equal(1, opts.list) 121789a5c0eSBram Moolenaar if has('folding') 122789a5c0eSBram Moolenaar call assert_equal(999, opts.foldlevel) 123789a5c0eSBram Moolenaar endif 1243056735aSBram Moolenaar if has('signs') 1253056735aSBram Moolenaar call assert_equal('auto', opts.signcolumn) 1263056735aSBram Moolenaar endif 1273056735aSBram Moolenaar 1283056735aSBram Moolenaar let opts = gettabwinvar(1, 1, '&') 1293056735aSBram Moolenaar call assert_equal(v:t_dict, type(opts)) 1303056735aSBram Moolenaar call assert_equal(0, opts.linebreak) 131789a5c0eSBram Moolenaar call assert_equal(1, opts.list) 1323056735aSBram Moolenaar if has('signs') 1333056735aSBram Moolenaar call assert_equal('auto', opts.signcolumn) 1343056735aSBram Moolenaar endif 135789a5c0eSBram Moolenaar set list& 136789a5c0eSBram Moolenaar if has('folding') 137789a5c0eSBram Moolenaar set foldlevel=0 138789a5c0eSBram Moolenaar endif 1393056735aSBram Moolenaarendfunc 140