186edef66SBram Moolenaar" Test using the window ID.
2*6d91bcb4SBram Moolenaar
35a4c3082SBram Moolenaarsource check.vim
486edef66SBram Moolenaar
586edef66SBram Moolenaarfunc Test_win_getid()
686edef66SBram Moolenaar  edit one
786edef66SBram Moolenaar  let id1 = win_getid()
8888ccac8SBram Moolenaar  let w:one = 'one'
986edef66SBram Moolenaar  split two
1086edef66SBram Moolenaar  let id2 = win_getid()
119cdf86b8SBram Moolenaar  let bufnr2 = bufnr('%')
12888ccac8SBram Moolenaar  let w:two = 'two'
1386edef66SBram Moolenaar  split three
1486edef66SBram Moolenaar  let id3 = win_getid()
15888ccac8SBram Moolenaar  let w:three = 'three'
1686edef66SBram Moolenaar  tabnew
1786edef66SBram Moolenaar  edit four
1886edef66SBram Moolenaar  let id4 = win_getid()
19888ccac8SBram Moolenaar  let w:four = 'four'
2086edef66SBram Moolenaar  split five
2186edef66SBram Moolenaar  let id5 = win_getid()
229cdf86b8SBram Moolenaar  let bufnr5 = bufnr('%')
23888ccac8SBram Moolenaar  let w:five = 'five'
2486edef66SBram Moolenaar  tabnext
2586edef66SBram Moolenaar
2686edef66SBram Moolenaar  wincmd w
2786edef66SBram Moolenaar  call assert_equal("two", expand("%"))
2886edef66SBram Moolenaar  call assert_equal(id2, win_getid())
2986edef66SBram Moolenaar  let nr2 = winnr()
3086edef66SBram Moolenaar  wincmd w
3186edef66SBram Moolenaar  call assert_equal("one", expand("%"))
3286edef66SBram Moolenaar  call assert_equal(id1, win_getid())
3386edef66SBram Moolenaar  let nr1 = winnr()
3486edef66SBram Moolenaar  wincmd w
3586edef66SBram Moolenaar  call assert_equal("three", expand("%"))
3686edef66SBram Moolenaar  call assert_equal(id3, win_getid())
3786edef66SBram Moolenaar  let nr3 = winnr()
38888ccac8SBram Moolenaar  call assert_equal('one', getwinvar(id1, 'one'))
39888ccac8SBram Moolenaar  call assert_equal('two', getwinvar(id2, 'two'))
40888ccac8SBram Moolenaar  call assert_equal('three', getwinvar(id3, 'three'))
4186edef66SBram Moolenaar  tabnext
4286edef66SBram Moolenaar  call assert_equal("five", expand("%"))
4386edef66SBram Moolenaar  call assert_equal(id5, win_getid())
4486edef66SBram Moolenaar  let nr5 = winnr()
4586edef66SBram Moolenaar  wincmd w
4686edef66SBram Moolenaar  call assert_equal("four", expand("%"))
4786edef66SBram Moolenaar  call assert_equal(id4, win_getid())
4886edef66SBram Moolenaar  let nr4 = winnr()
49888ccac8SBram Moolenaar  call assert_equal('four', getwinvar(id4, 'four'))
50888ccac8SBram Moolenaar  call assert_equal('five', getwinvar(id5, 'five'))
51888ccac8SBram Moolenaar  call settabwinvar(1, id2, 'two', '2')
52888ccac8SBram Moolenaar  call setwinvar(id4, 'four', '4')
5386edef66SBram Moolenaar  tabnext
54888ccac8SBram Moolenaar  call assert_equal('4', gettabwinvar(2, id4, 'four'))
55888ccac8SBram Moolenaar  call assert_equal('five', gettabwinvar(2, id5, 'five'))
56888ccac8SBram Moolenaar  call assert_equal('2', getwinvar(id2, 'two'))
5786edef66SBram Moolenaar
5886edef66SBram Moolenaar  exe nr1 . "wincmd w"
5986edef66SBram Moolenaar  call assert_equal(id1, win_getid())
6086edef66SBram Moolenaar  exe nr2 . "wincmd w"
6186edef66SBram Moolenaar  call assert_equal(id2, win_getid())
6286edef66SBram Moolenaar  exe nr3 . "wincmd w"
6386edef66SBram Moolenaar  call assert_equal(id3, win_getid())
6486edef66SBram Moolenaar  tabnext
6586edef66SBram Moolenaar  exe nr4 . "wincmd w"
6686edef66SBram Moolenaar  call assert_equal(id4, win_getid())
6786edef66SBram Moolenaar  exe nr5 . "wincmd w"
6886edef66SBram Moolenaar  call assert_equal(id5, win_getid())
6986edef66SBram Moolenaar
7086edef66SBram Moolenaar  call win_gotoid(id2)
7186edef66SBram Moolenaar  call assert_equal("two", expand("%"))
72f92e58caSBram Moolenaar  eval id4->win_gotoid()
7386edef66SBram Moolenaar  call assert_equal("four", expand("%"))
7486edef66SBram Moolenaar  call win_gotoid(id1)
7586edef66SBram Moolenaar  call assert_equal("one", expand("%"))
7686edef66SBram Moolenaar  call win_gotoid(id5)
7786edef66SBram Moolenaar  call assert_equal("five", expand("%"))
7886edef66SBram Moolenaar
7986edef66SBram Moolenaar  call assert_equal(0, win_id2win(9999))
80f92e58caSBram Moolenaar  call assert_equal(nr5, id5->win_id2win())
8186edef66SBram Moolenaar  call assert_equal(0, win_id2win(id1))
8286edef66SBram Moolenaar  tabnext
8386edef66SBram Moolenaar  call assert_equal(nr1, win_id2win(id1))
8486edef66SBram Moolenaar
8586edef66SBram Moolenaar  call assert_equal([0, 0], win_id2tabwin(9999))
86f92e58caSBram Moolenaar  call assert_equal([1, nr2], id2->win_id2tabwin())
8786edef66SBram Moolenaar  call assert_equal([2, nr4], win_id2tabwin(id4))
8886edef66SBram Moolenaar
899cdf86b8SBram Moolenaar  call assert_equal([], win_findbuf(9999))
90f92e58caSBram Moolenaar  call assert_equal([id2], bufnr2->win_findbuf())
919cdf86b8SBram Moolenaar  call win_gotoid(id5)
929cdf86b8SBram Moolenaar  split
939cdf86b8SBram Moolenaar  call assert_equal(sort([id5, win_getid()]), sort(win_findbuf(bufnr5)))
949cdf86b8SBram Moolenaar
9599fa7219SBram Moolenaar  call assert_fails('let w = win_getid([])', 'E745:')
9699fa7219SBram Moolenaar  call assert_equal(0, win_getid(-1))
9799fa7219SBram Moolenaar  call assert_equal(-1, win_getid(1, -1))
9899fa7219SBram Moolenaar
9986edef66SBram Moolenaar  only!
10086edef66SBram Moolenaarendfunc
1018e639052SBram Moolenaar
1028e639052SBram Moolenaarfunc Test_win_getid_curtab()
1035a4c3082SBram Moolenaar  CheckFeature quickfix
1045a4c3082SBram Moolenaar
1058e639052SBram Moolenaar  tabedit X
1068e639052SBram Moolenaar  tabfirst
1078e639052SBram Moolenaar  copen
1088e639052SBram Moolenaar  only
109f92e58caSBram Moolenaar  call assert_equal(win_getid(1), 1->win_getid( 1))
1108e639052SBram Moolenaar  tabclose!
1118e639052SBram Moolenaarendfunc
1120f6b4f06SBram Moolenaar
1130f6b4f06SBram Moolenaarfunc Test_winlayout()
1140f6b4f06SBram Moolenaar  let w1 = win_getid()
1150f6b4f06SBram Moolenaar  call assert_equal(['leaf', w1], winlayout())
1160f6b4f06SBram Moolenaar
1170f6b4f06SBram Moolenaar  split
1180f6b4f06SBram Moolenaar  let w2 = win_getid()
1190f6b4f06SBram Moolenaar  call assert_equal(['col', [['leaf', w2], ['leaf', w1]]], winlayout())
1200f6b4f06SBram Moolenaar
1210f6b4f06SBram Moolenaar  split
1220f6b4f06SBram Moolenaar  let w3 = win_getid()
1230f6b4f06SBram Moolenaar  call assert_equal(['col', [['leaf', w3], ['leaf', w2], ['leaf', w1]]], winlayout())
1240f6b4f06SBram Moolenaar
1250f6b4f06SBram Moolenaar  2wincmd w
1260f6b4f06SBram Moolenaar  vsplit
1270f6b4f06SBram Moolenaar  let w4 = win_getid()
1280f6b4f06SBram Moolenaar  call assert_equal(['col', [['leaf', w3], ['row', [['leaf', w4], ['leaf', w2]]], ['leaf', w1]]], winlayout())
1290f6b4f06SBram Moolenaar
1300f6b4f06SBram Moolenaar  only!
131f92e58caSBram Moolenaar
132f92e58caSBram Moolenaar  let w1 = win_getid()
133f92e58caSBram Moolenaar  call assert_equal(['leaf', w1], winlayout(1))
134f92e58caSBram Moolenaar  tabnew
135f92e58caSBram Moolenaar  let w2 = win_getid()
136f92e58caSBram Moolenaar  call assert_equal(['leaf', w2], 2->winlayout())
137f92e58caSBram Moolenaar  tabclose
13899fa7219SBram Moolenaar
13999fa7219SBram Moolenaar  call assert_equal([], winlayout(-1))
1400f6b4f06SBram Moolenaarendfunc
14199fa7219SBram Moolenaar
14299fa7219SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
143