1b5ae48e9SBram Moolenaar" Tests for the getbufinfo(), getwininfo() and gettabinfo() functions 2b5ae48e9SBram Moolenaar 3b5ae48e9SBram Moolenaarfunction Test_getbufwintabinfo() 4b5ae48e9SBram Moolenaar 1,$bwipeout 5b5ae48e9SBram Moolenaar edit Xtestfile1 6b5ae48e9SBram Moolenaar edit Xtestfile2 7b5ae48e9SBram Moolenaar let buflist = getbufinfo() 8b5ae48e9SBram Moolenaar call assert_equal(2, len(buflist)) 9b5ae48e9SBram Moolenaar call assert_match('Xtestfile1', buflist[0].name) 10b5ae48e9SBram Moolenaar call assert_match('Xtestfile2', getbufinfo('Xtestfile2')[0].name) 11b5ae48e9SBram Moolenaar call assert_equal([], getbufinfo(2016)) 12b5ae48e9SBram Moolenaar edit Xtestfile1 13b5ae48e9SBram Moolenaar hide edit Xtestfile2 14b5ae48e9SBram Moolenaar hide enew 15b5ae48e9SBram Moolenaar call assert_equal(3, len(getbufinfo({'bufloaded':1}))) 16b5ae48e9SBram Moolenaar 17386600f0SBram Moolenaar set tabstop&vim 18386600f0SBram Moolenaar let b:editor = 'vim' 19386600f0SBram Moolenaar let l = getbufinfo('%') 2033928837SBram Moolenaar call assert_equal(bufnr('%'), l[0].bufnr) 21386600f0SBram Moolenaar call assert_equal('vim', l[0].variables.editor) 22386600f0SBram Moolenaar call assert_notequal(-1, index(l[0].windows, bufwinid('%'))) 23386600f0SBram Moolenaar 24386600f0SBram Moolenaar if has('signs') 25386600f0SBram Moolenaar call append(0, ['Linux', 'Windows', 'Mac']) 26386600f0SBram Moolenaar sign define Mark text=>> texthl=Search 27386600f0SBram Moolenaar exe "sign place 2 line=3 name=Mark buffer=" . bufnr('%') 28386600f0SBram Moolenaar let l = getbufinfo('%') 29386600f0SBram Moolenaar call assert_equal(2, l[0].signs[0].id) 30386600f0SBram Moolenaar call assert_equal(3, l[0].signs[0].lnum) 31386600f0SBram Moolenaar call assert_equal('Mark', l[0].signs[0].name) 32386600f0SBram Moolenaar sign unplace * 33386600f0SBram Moolenaar sign undefine Mark 34386600f0SBram Moolenaar enew! 35386600f0SBram Moolenaar endif 36386600f0SBram Moolenaar 37b5ae48e9SBram Moolenaar only 38b5ae48e9SBram Moolenaar let w1_id = win_getid() 39b5ae48e9SBram Moolenaar new 40b5ae48e9SBram Moolenaar let w2_id = win_getid() 41b5ae48e9SBram Moolenaar tabnew | let w3_id = win_getid() 42b5ae48e9SBram Moolenaar new | let w4_id = win_getid() 43b5ae48e9SBram Moolenaar new | let w5_id = win_getid() 44386600f0SBram Moolenaar call setwinvar(0, 'signal', 'green') 45b5ae48e9SBram Moolenaar tabfirst 46b5ae48e9SBram Moolenaar let winlist = getwininfo() 47b5ae48e9SBram Moolenaar call assert_equal(5, len(winlist)) 4833928837SBram Moolenaar call assert_equal(winbufnr(2), winlist[1].bufnr) 49386600f0SBram Moolenaar call assert_equal(winheight(2), winlist[1].height) 5033928837SBram Moolenaar call assert_equal(1, winlist[2].winnr) 5133928837SBram Moolenaar call assert_equal(2, winlist[3].tabnr) 52386600f0SBram Moolenaar call assert_equal('green', winlist[2].variables.signal) 53386600f0SBram Moolenaar call assert_equal(winwidth(1), winlist[0].width) 54386600f0SBram Moolenaar call assert_equal(w4_id, winlist[3].winid) 55b5ae48e9SBram Moolenaar let winfo = getwininfo(w5_id)[0] 5633928837SBram Moolenaar call assert_equal(2, winfo.tabnr) 57b5ae48e9SBram Moolenaar call assert_equal([], getwininfo(3)) 58b5ae48e9SBram Moolenaar 59386600f0SBram Moolenaar call settabvar(1, 'space', 'build') 60b5ae48e9SBram Moolenaar let tablist = gettabinfo() 61b5ae48e9SBram Moolenaar call assert_equal(2, len(tablist)) 62b5ae48e9SBram Moolenaar call assert_equal(3, len(tablist[1].windows)) 6333928837SBram Moolenaar call assert_equal(2, tablist[1].tabnr) 64386600f0SBram Moolenaar call assert_equal('build', tablist[0].variables.space) 65386600f0SBram Moolenaar call assert_equal(w2_id, tablist[0].windows[0]) 66b5ae48e9SBram Moolenaar call assert_equal([], gettabinfo(3)) 67b5ae48e9SBram Moolenaar 68b5ae48e9SBram Moolenaar tabonly | only 69386600f0SBram Moolenaar 70386600f0SBram Moolenaar lexpr '' 71386600f0SBram Moolenaar lopen 72386600f0SBram Moolenaar copen 73386600f0SBram Moolenaar let winlist = getwininfo() 74386600f0SBram Moolenaar call assert_false(winlist[0].quickfix) 75386600f0SBram Moolenaar call assert_false(winlist[0].loclist) 76386600f0SBram Moolenaar call assert_true(winlist[1].quickfix) 77386600f0SBram Moolenaar call assert_true(winlist[1].loclist) 78386600f0SBram Moolenaar call assert_true(winlist[2].quickfix) 79386600f0SBram Moolenaar call assert_false(winlist[2].loclist) 80386600f0SBram Moolenaar wincmd t | only 81b5ae48e9SBram Moolenaarendfunction 82*3056735aSBram Moolenaar 83*3056735aSBram Moolenaarfunction Test_get_buf_options() 84*3056735aSBram Moolenaar let opts = getbufvar(bufnr('%'), '&') 85*3056735aSBram Moolenaar call assert_equal(v:t_dict, type(opts)) 86*3056735aSBram Moolenaar call assert_equal(8, opts.tabstop) 87*3056735aSBram Moolenaarendfunc 88*3056735aSBram Moolenaar 89*3056735aSBram Moolenaarfunction Test_get_win_options() 90*3056735aSBram Moolenaar let opts = getwinvar(1, '&') 91*3056735aSBram Moolenaar call assert_equal(v:t_dict, type(opts)) 92*3056735aSBram Moolenaar call assert_equal(0, opts.linebreak) 93*3056735aSBram Moolenaar if has('signs') 94*3056735aSBram Moolenaar call assert_equal('auto', opts.signcolumn) 95*3056735aSBram Moolenaar endif 96*3056735aSBram Moolenaar 97*3056735aSBram Moolenaar let opts = gettabwinvar(1, 1, '&') 98*3056735aSBram Moolenaar call assert_equal(v:t_dict, type(opts)) 99*3056735aSBram Moolenaar call assert_equal(0, opts.linebreak) 100*3056735aSBram Moolenaar if has('signs') 101*3056735aSBram Moolenaar call assert_equal('auto', opts.signcolumn) 102*3056735aSBram Moolenaar endif 103*3056735aSBram Moolenaarendfunc 104