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 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
|
-- Tests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().
local helpers = require('test.functional.helpers')(after_each)
local insert, source = helpers.insert, helpers.source
local clear, expect = helpers.clear, helpers.expect
describe('context variables', function()
setup(clear)
it('is working', function()
insert("start:")
-- Test for getbufvar().
-- Use strings to test for memory leaks.
source([[
let t:testvar='abcd'
$put =string(gettabvar(1, 'testvar'))
$put =string(gettabvar(1, 'testvar'))
let b:var_num = '1234'
let def_num = '5678'
$put =string(getbufvar(1, 'var_num'))
$put =string(getbufvar(1, 'var_num', def_num))
$put =string(getbufvar(1, ''))
$put =string(getbufvar(1, '', def_num))
unlet b:var_num
$put =string(getbufvar(1, 'var_num', def_num))
$put =string(getbufvar(1, ''))
$put =string(getbufvar(1, '', def_num))
$put =string(getbufvar(9, ''))
$put =string(getbufvar(9, '', def_num))
unlet def_num
$put =string(getbufvar(1, '&autoindent'))
$put =string(getbufvar(1, '&autoindent', 1))
]])
-- Open new window with forced option values.
source([[
set fileformats=unix,dos
new ++ff=dos ++bin ++enc=iso-8859-2
let otherff = getbufvar(bufnr('%'), '&fileformat')
let otherbin = getbufvar(bufnr('%'), '&bin')
let otherfenc = getbufvar(bufnr('%'), '&fenc')
close
$put =otherff
$put =string(otherbin)
$put =otherfenc
unlet otherff otherbin otherfenc
]])
-- Test for getwinvar().
source([[
let w:var_str = "Dance"
let def_str = "Chance"
$put =string(getwinvar(1, 'var_str'))
$put =string(getwinvar(1, 'var_str', def_str))
$put =string(getwinvar(1, ''))
$put =string(getwinvar(1, '', def_str))
unlet w:var_str
$put =string(getwinvar(1, 'var_str', def_str))
$put =string(getwinvar(1, ''))
$put =string(getwinvar(1, '', def_str))
$put =string(getwinvar(9, ''))
$put =string(getwinvar(9, '', def_str))
$put =string(getwinvar(1, '&nu'))
$put =string(getwinvar(1, '&nu', 1))
unlet def_str
]])
-- Test for gettabvar().
source([[
tabnew
tabnew
let t:var_list = [1, 2, 3]
let t:other = 777
let def_list = [4, 5, 6, 7]
tabrewind
$put =string(gettabvar(3, 'var_list'))
$put =string(gettabvar(3, 'var_list', def_list))
$put =string(gettabvar(3, ''))
$put =string(gettabvar(3, '', def_list))
tablast
unlet t:var_list
tabrewind
$put =string(gettabvar(3, 'var_list', def_list))
$put =string(gettabvar(9, ''))
$put =string(gettabvar(9, '', def_list))
$put =string(gettabvar(3, '&nu'))
$put =string(gettabvar(3, '&nu', def_list))
unlet def_list
tabonly
]])
-- Test for gettabwinvar().
source([[
tabnew
tabnew
tabprev
split
split
wincmd w
vert split
wincmd w
let w:var_dict = {'dict': 'tabwin'}
let def_dict = {'dict2': 'newval'}
wincmd b
tabrewind
$put =string(gettabwinvar(2, 3, 'var_dict'))
$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
$put =string(gettabwinvar(2, 3, ''))
$put =string(gettabwinvar(2, 3, '', def_dict))
tabnext
3wincmd w
unlet w:var_dict
tabrewind
$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
$put =string(gettabwinvar(2, 3, ''))
$put =string(gettabwinvar(2, 3, '', def_dict))
$put =string(gettabwinvar(2, 9, ''))
$put =string(gettabwinvar(2, 9, '', def_dict))
$put =string(gettabwinvar(9, 3, ''))
$put =string(gettabwinvar(9, 3, '', def_dict))
unlet def_dict
$put =string(gettabwinvar(2, 3, '&nux'))
$put =string(gettabwinvar(2, 3, '&nux', 1))
tabonly
]])
-- Assert buffer contents.
expect([[
start:
'abcd'
'abcd'
'1234'
'1234'
{'var_num': '1234'}
{'var_num': '1234'}
'5678'
{}
{}
''
'5678'
0
0
dos
1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0
[1, 2, 3]
[1, 2, 3]
{'var_list': [1, 2, 3], 'other': 777}
{'var_list': [1, 2, 3], 'other': 777}
[4, 5, 6, 7]
''
[4, 5, 6, 7]
''
[4, 5, 6, 7]
{'dict': 'tabwin'}
{'dict': 'tabwin'}
{'var_dict': {'dict': 'tabwin'}}
{'var_dict': {'dict': 'tabwin'}}
{'dict2': 'newval'}
{}
{}
''
{'dict2': 'newval'}
''
{'dict2': 'newval'}
''
1]])
end)
end)
|