1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
" Test using the window ID.
source check.vim
func Test_win_getid()
edit one
let id1 = win_getid()
let w:one = 'one'
split two
let id2 = win_getid()
let bufnr2 = bufnr('%')
let w:two = 'two'
split three
let id3 = win_getid()
let w:three = 'three'
tabnew
edit four
let id4 = win_getid()
let w:four = 'four'
split five
let id5 = win_getid()
let bufnr5 = bufnr('%')
let w:five = 'five'
tabnext
wincmd w
call assert_equal("two", expand("%"))
call assert_equal(id2, win_getid())
let nr2 = winnr()
wincmd w
call assert_equal("one", expand("%"))
call assert_equal(id1, win_getid())
let nr1 = winnr()
wincmd w
call assert_equal("three", expand("%"))
call assert_equal(id3, win_getid())
let nr3 = winnr()
call assert_equal('one', getwinvar(id1, 'one'))
call assert_equal('two', getwinvar(id2, 'two'))
call assert_equal('three', getwinvar(id3, 'three'))
tabnext
call assert_equal("five", expand("%"))
call assert_equal(id5, win_getid())
let nr5 = winnr()
wincmd w
call assert_equal("four", expand("%"))
call assert_equal(id4, win_getid())
let nr4 = winnr()
call assert_equal('four', getwinvar(id4, 'four'))
call assert_equal('five', getwinvar(id5, 'five'))
call settabwinvar(1, id2, 'two', '2')
call setwinvar(id4, 'four', '4')
tabnext
call assert_equal('4', gettabwinvar(2, id4, 'four'))
call assert_equal('five', gettabwinvar(2, id5, 'five'))
call assert_equal('2', getwinvar(id2, 'two'))
exe nr1 . "wincmd w"
call assert_equal(id1, win_getid())
exe nr2 . "wincmd w"
call assert_equal(id2, win_getid())
exe nr3 . "wincmd w"
call assert_equal(id3, win_getid())
tabnext
exe nr4 . "wincmd w"
call assert_equal(id4, win_getid())
exe nr5 . "wincmd w"
call assert_equal(id5, win_getid())
call win_gotoid(id2)
call assert_equal("two", expand("%"))
eval id4->win_gotoid()
call assert_equal("four", expand("%"))
call win_gotoid(id1)
call assert_equal("one", expand("%"))
call win_gotoid(id5)
call assert_equal("five", expand("%"))
call assert_equal(0, win_id2win(9999))
call assert_equal(nr5, id5->win_id2win())
call assert_equal(0, win_id2win(id1))
tabnext
call assert_equal(nr1, win_id2win(id1))
call assert_equal([0, 0], win_id2tabwin(9999))
call assert_equal([1, nr2], id2->win_id2tabwin())
call assert_equal([2, nr4], win_id2tabwin(id4))
call assert_equal([], win_findbuf(9999))
call assert_equal([id2], bufnr2->win_findbuf())
call win_gotoid(id5)
split
call assert_equal(sort([id5, win_getid()]), sort(win_findbuf(bufnr5)))
call assert_fails('let w = win_getid([])', 'E745:')
call assert_equal(0, win_getid(-1))
call assert_equal(-1, win_getid(1, -1))
only!
endfunc
func Test_win_getid_curtab()
CheckFeature quickfix
tabedit X
tabfirst
copen
only
call assert_equal(win_getid(1), 1->win_getid( 1))
tabclose!
endfunc
func Test_winlayout()
let w1 = win_getid()
call assert_equal(['leaf', w1], winlayout())
split
let w2 = win_getid()
call assert_equal(['col', [['leaf', w2], ['leaf', w1]]], winlayout())
split
let w3 = win_getid()
call assert_equal(['col', [['leaf', w3], ['leaf', w2], ['leaf', w1]]], winlayout())
2wincmd w
vsplit
let w4 = win_getid()
call assert_equal(['col', [['leaf', w3], ['row', [['leaf', w4], ['leaf', w2]]], ['leaf', w1]]], winlayout())
only!
let w1 = win_getid()
call assert_equal(['leaf', w1], winlayout(1))
tabnew
let w2 = win_getid()
call assert_equal(['leaf', w2], 2->winlayout())
tabclose
call assert_equal([], winlayout(-1))
endfunc
" vim: shiftwidth=2 sts=2 expandtab
|