123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- -- Tests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().
- local n = require('test.functional.testnvim')()
- local insert, source = n.insert, n.source
- local clear, expect = n.clear, n.expect
- describe('context variables', function()
- setup(clear)
- it('is working', function()
- insert('start:')
- -- Test for getbufvar().
- -- Use strings to test for memory leaks.
- source([[
- function Getbufscope(buf, ...)
- let ret = call('getbufvar', [a:buf, ''] + a:000)
- if type(ret) == type({})
- return filter(copy(ret), 'v:key isnot# "changedtick"')
- else
- return ret
- endif
- endfunction
- 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(Getbufscope(1))
- $put =string(Getbufscope(1, def_num))
- unlet b:var_num
- $put =string(getbufvar(1, 'var_num', def_num))
- $put =string(Getbufscope(1))
- $put =string(Getbufscope(1, def_num))
- $put =string(Getbufscope(9))
- $put =string(Getbufscope(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)
|