mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
tests: Migrate legacy test 62.
This commit is contained in:
parent
73d9cd85df
commit
98c022c329
@ -19,7 +19,7 @@ SCRIPTS := test_eval.out \
|
|||||||
test46.out test47.out test48.out test49.out \
|
test46.out test47.out test48.out test49.out \
|
||||||
test52.out test53.out test55.out \
|
test52.out test53.out test55.out \
|
||||||
test57.out test58.out test59.out \
|
test57.out test58.out test59.out \
|
||||||
test62.out test63.out test64.out \
|
test63.out test64.out \
|
||||||
test68.out test69.out \
|
test68.out test69.out \
|
||||||
test71.out test73.out \
|
test71.out test73.out \
|
||||||
test79.out test80.out \
|
test79.out test80.out \
|
||||||
|
@ -1,191 +0,0 @@
|
|||||||
Tests for tab pages
|
|
||||||
|
|
||||||
STARTTEST
|
|
||||||
:so small.vim
|
|
||||||
:lang C
|
|
||||||
:" Simple test for opening and closing a tab page
|
|
||||||
:tabnew
|
|
||||||
:let nr = tabpagenr()
|
|
||||||
:q
|
|
||||||
:call append(line('$'), 'tab page ' . nr)
|
|
||||||
:unlet nr
|
|
||||||
:"
|
|
||||||
:" Open three tab pages and use ":tabdo"
|
|
||||||
:0tabnew
|
|
||||||
:1tabnew
|
|
||||||
:$tabnew
|
|
||||||
:tabdo call append(line('$'), 'this is tab page ' . tabpagenr())
|
|
||||||
:tabclose! 2
|
|
||||||
:tabrewind
|
|
||||||
:let line1 = getline('$')
|
|
||||||
:undo
|
|
||||||
:q
|
|
||||||
:tablast
|
|
||||||
:let line2 = getline('$')
|
|
||||||
:q!
|
|
||||||
:call append(line('$'), line1)
|
|
||||||
:call append(line('$'), line2)
|
|
||||||
:unlet line1 line2
|
|
||||||
:"
|
|
||||||
:" Test for settabvar() and gettabvar() functions. Open a new tab page and
|
|
||||||
:" set 3 variables to a number, string and a list. Verify that the variables
|
|
||||||
:" are correctly set.
|
|
||||||
:tabnew
|
|
||||||
:tabfirst
|
|
||||||
:call settabvar(2, 'val_num', 100)
|
|
||||||
:call settabvar(2, 'val_str', 'SetTabVar test')
|
|
||||||
:call settabvar(2, 'val_list', ['red', 'blue', 'green'])
|
|
||||||
:"
|
|
||||||
:let test_status = 'gettabvar: fail'
|
|
||||||
:if gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar test' && gettabvar(2, 'val_list') == ['red', 'blue', 'green']
|
|
||||||
: let test_status = 'gettabvar: pass'
|
|
||||||
:endif
|
|
||||||
:call append(line('$'), test_status)
|
|
||||||
:"
|
|
||||||
:tabnext 2
|
|
||||||
:let test_status = 'settabvar: fail'
|
|
||||||
:if t:val_num == 100 && t:val_str == 'SetTabVar test' && t:val_list == ['red', 'blue', 'green']
|
|
||||||
: let test_status = 'settabvar: pass'
|
|
||||||
:endif
|
|
||||||
:tabclose
|
|
||||||
:call append(line('$'), test_status)
|
|
||||||
:"
|
|
||||||
:if has('gui') || has('clientserver')
|
|
||||||
:" Test for ":tab drop exist-file" to keep current window.
|
|
||||||
:sp test1
|
|
||||||
:tab drop test1
|
|
||||||
:let test_status = 'tab drop 1: fail'
|
|
||||||
:if tabpagenr('$') == 1 && winnr('$') == 2 && winnr() == 1
|
|
||||||
: let test_status = 'tab drop 1: pass'
|
|
||||||
:endif
|
|
||||||
:close
|
|
||||||
:call append(line('$'), test_status)
|
|
||||||
:"
|
|
||||||
:"
|
|
||||||
:" Test for ":tab drop new-file" to keep current window of tabpage 1.
|
|
||||||
:split
|
|
||||||
:tab drop newfile
|
|
||||||
:let test_status = 'tab drop 2: fail'
|
|
||||||
:if tabpagenr('$') == 2 && tabpagewinnr(1, '$') == 2 && tabpagewinnr(1) == 1
|
|
||||||
: let test_status = 'tab drop 2: pass'
|
|
||||||
:endif
|
|
||||||
:tabclose
|
|
||||||
:q
|
|
||||||
:call append(line('$'), test_status)
|
|
||||||
:"
|
|
||||||
:"
|
|
||||||
:" Test for ":tab drop multi-opend-file" to keep current tabpage and window.
|
|
||||||
:new test1
|
|
||||||
:tabnew
|
|
||||||
:new test1
|
|
||||||
:tab drop test1
|
|
||||||
:let test_status = 'tab drop 3: fail'
|
|
||||||
:if tabpagenr() == 2 && tabpagewinnr(2, '$') == 2 && tabpagewinnr(2) == 1
|
|
||||||
: let test_status = 'tab drop 3: pass'
|
|
||||||
:endif
|
|
||||||
:tabclose
|
|
||||||
:q
|
|
||||||
:call append(line('$'), test_status)
|
|
||||||
:else
|
|
||||||
:" :drop not supported
|
|
||||||
:call append(line('$'), 'tab drop 1: pass')
|
|
||||||
:call append(line('$'), 'tab drop 2: pass')
|
|
||||||
:call append(line('$'), 'tab drop 3: pass')
|
|
||||||
:endif
|
|
||||||
:"
|
|
||||||
:"
|
|
||||||
:for i in range(9) | tabnew | endfor
|
|
||||||
1gt
|
|
||||||
Go=tabpagenr()
|
|
||||||
:tabmove 5
|
|
||||||
i=tabpagenr()
|
|
||||||
:tabmove -2
|
|
||||||
i=tabpagenr()
|
|
||||||
:tabmove +4
|
|
||||||
i=tabpagenr()
|
|
||||||
:tabmove
|
|
||||||
i=tabpagenr()
|
|
||||||
:tabmove -20
|
|
||||||
i=tabpagenr()
|
|
||||||
:tabmove +20
|
|
||||||
i=tabpagenr()
|
|
||||||
:3tabmove
|
|
||||||
i=tabpagenr()
|
|
||||||
:7tabmove 5
|
|
||||||
i=tabpagenr()
|
|
||||||
:let a='No error caught.'
|
|
||||||
:try
|
|
||||||
:tabmove foo
|
|
||||||
:catch E474
|
|
||||||
:let a='E474 caught.'
|
|
||||||
:endtry
|
|
||||||
i=a
|
|
||||||
:"
|
|
||||||
:" Test autocommands
|
|
||||||
:tabonly!
|
|
||||||
:let g:r=[]
|
|
||||||
:command -nargs=1 -bar C :call add(g:r, '=== ' . <q-args> . ' ===')|<args>
|
|
||||||
:function Test()
|
|
||||||
let hasau=has('autocmd')
|
|
||||||
if hasau
|
|
||||||
autocmd TabEnter * :call add(g:r, 'TabEnter')
|
|
||||||
autocmd WinEnter * :call add(g:r, 'WinEnter')
|
|
||||||
autocmd BufEnter * :call add(g:r, 'BufEnter')
|
|
||||||
autocmd TabLeave * :call add(g:r, 'TabLeave')
|
|
||||||
autocmd WinLeave * :call add(g:r, 'WinLeave')
|
|
||||||
autocmd BufLeave * :call add(g:r, 'BufLeave')
|
|
||||||
endif
|
|
||||||
let t:a='a'
|
|
||||||
C tab split
|
|
||||||
if !hasau
|
|
||||||
let g:r+=['WinLeave', 'TabLeave', 'WinEnter', 'TabEnter']
|
|
||||||
endif
|
|
||||||
let t:a='b'
|
|
||||||
C tabnew
|
|
||||||
if !hasau
|
|
||||||
let g:r+=['WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufLeave', 'BufEnter']
|
|
||||||
endif
|
|
||||||
let t:a='c'
|
|
||||||
call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
|
|
||||||
C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
|
|
||||||
call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
|
|
||||||
let w:a='a'
|
|
||||||
C vsplit
|
|
||||||
if !hasau
|
|
||||||
let g:r+=['WinLeave', 'WinEnter']
|
|
||||||
endif
|
|
||||||
let w:a='a'
|
|
||||||
let tabn=tabpagenr()
|
|
||||||
let winr=range(1, winnr('$'))
|
|
||||||
C tabnext 1
|
|
||||||
if !hasau
|
|
||||||
let g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter']
|
|
||||||
endif
|
|
||||||
call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
|
|
||||||
C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
|
|
||||||
call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
|
|
||||||
if hasau
|
|
||||||
augroup TabDestructive
|
|
||||||
autocmd TabEnter * :C tabnext 2 | C tabclose 3
|
|
||||||
augroup END
|
|
||||||
C tabnext 3
|
|
||||||
let g:r+=[tabpagenr().'/'.tabpagenr('$')]
|
|
||||||
autocmd! TabDestructive TabEnter
|
|
||||||
C tabnew
|
|
||||||
C tabnext 1
|
|
||||||
autocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3
|
|
||||||
C tabnext 3
|
|
||||||
let g:r+=[tabpagenr().'/'.tabpagenr('$')]
|
|
||||||
else
|
|
||||||
let g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","TabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter","=== tabclose 3 ===","2/2",]
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
:call Test()
|
|
||||||
:$ put =g:r
|
|
||||||
:"
|
|
||||||
:"
|
|
||||||
:/^Results/,$w! test.out
|
|
||||||
:qa!
|
|
||||||
ENDTEST
|
|
||||||
|
|
||||||
Results:
|
|
@ -1,88 +0,0 @@
|
|||||||
Results:
|
|
||||||
tab page 2
|
|
||||||
this is tab page 3
|
|
||||||
this is tab page 1
|
|
||||||
this is tab page 4
|
|
||||||
gettabvar: pass
|
|
||||||
settabvar: pass
|
|
||||||
tab drop 1: pass
|
|
||||||
tab drop 2: pass
|
|
||||||
tab drop 3: pass
|
|
||||||
1
|
|
||||||
6
|
|
||||||
4
|
|
||||||
8
|
|
||||||
10
|
|
||||||
1
|
|
||||||
10
|
|
||||||
4
|
|
||||||
6
|
|
||||||
E474 caught.
|
|
||||||
=== tab split ===
|
|
||||||
WinLeave
|
|
||||||
TabLeave
|
|
||||||
WinEnter
|
|
||||||
TabEnter
|
|
||||||
=== tabnew ===
|
|
||||||
WinLeave
|
|
||||||
TabLeave
|
|
||||||
WinEnter
|
|
||||||
TabEnter
|
|
||||||
BufLeave
|
|
||||||
BufEnter
|
|
||||||
a b c
|
|
||||||
=== call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)') ===
|
|
||||||
2 4 6
|
|
||||||
=== vsplit ===
|
|
||||||
WinLeave
|
|
||||||
WinEnter
|
|
||||||
=== tabnext 1 ===
|
|
||||||
BufLeave
|
|
||||||
WinLeave
|
|
||||||
TabLeave
|
|
||||||
WinEnter
|
|
||||||
TabEnter
|
|
||||||
BufEnter
|
|
||||||
a a
|
|
||||||
=== call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)') ===
|
|
||||||
2 4
|
|
||||||
=== tabnext 3 ===
|
|
||||||
BufLeave
|
|
||||||
WinLeave
|
|
||||||
TabLeave
|
|
||||||
WinEnter
|
|
||||||
TabEnter
|
|
||||||
=== tabnext 2 ===
|
|
||||||
=== tabclose 3 ===
|
|
||||||
2/2
|
|
||||||
=== tabnew ===
|
|
||||||
WinLeave
|
|
||||||
TabLeave
|
|
||||||
WinEnter
|
|
||||||
TabEnter
|
|
||||||
BufLeave
|
|
||||||
BufEnter
|
|
||||||
=== tabnext 1 ===
|
|
||||||
BufLeave
|
|
||||||
WinLeave
|
|
||||||
TabLeave
|
|
||||||
WinEnter
|
|
||||||
TabEnter
|
|
||||||
BufEnter
|
|
||||||
=== tabnext 3 ===
|
|
||||||
BufLeave
|
|
||||||
WinLeave
|
|
||||||
TabLeave
|
|
||||||
WinEnter
|
|
||||||
TabEnter
|
|
||||||
=== tabnext 2 ===
|
|
||||||
BufLeave
|
|
||||||
WinLeave
|
|
||||||
TabLeave
|
|
||||||
WinEnter
|
|
||||||
TabEnter
|
|
||||||
=== tabnext 2 ===
|
|
||||||
=== tabclose 3 ===
|
|
||||||
BufEnter
|
|
||||||
=== tabclose 3 ===
|
|
||||||
2/2
|
|
321
test/functional/legacy/062_tab_pages_spec.lua
Normal file
321
test/functional/legacy/062_tab_pages_spec.lua
Normal file
@ -0,0 +1,321 @@
|
|||||||
|
-- Tests for tab pages
|
||||||
|
|
||||||
|
local helpers = require('test.functional.helpers')
|
||||||
|
local feed, insert, source = helpers.feed, helpers.insert, helpers.source
|
||||||
|
local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
|
||||||
|
|
||||||
|
describe('tab pages', function()
|
||||||
|
setup(clear)
|
||||||
|
|
||||||
|
it('is working', function()
|
||||||
|
insert([=[
|
||||||
|
Results:]=])
|
||||||
|
|
||||||
|
execute('lang C')
|
||||||
|
|
||||||
|
-- Simple test for opening and closing a tab page.
|
||||||
|
source([[
|
||||||
|
tabnew
|
||||||
|
let nr = tabpagenr()
|
||||||
|
q
|
||||||
|
call append(line('$'), 'tab page ' . nr)
|
||||||
|
unlet nr
|
||||||
|
]])
|
||||||
|
|
||||||
|
-- Open three tab pages and use ":tabdo".
|
||||||
|
source([[
|
||||||
|
0tabnew
|
||||||
|
1tabnew
|
||||||
|
$tabnew
|
||||||
|
tabdo call append(line('$'), 'this is tab page ' . tabpagenr())
|
||||||
|
tabclose! 2
|
||||||
|
tabrewind
|
||||||
|
let line1 = getline('$')
|
||||||
|
undo
|
||||||
|
q
|
||||||
|
tablast
|
||||||
|
let line2 = getline('$')
|
||||||
|
q!
|
||||||
|
call append(line('$'), line1)
|
||||||
|
call append(line('$'), line2)
|
||||||
|
unlet line1 line2
|
||||||
|
]])
|
||||||
|
|
||||||
|
-- Test for settabvar() and gettabvar() functions. Open a new tab page and
|
||||||
|
-- set 3 variables to a number, string and a list. Verify that the
|
||||||
|
-- variables are correctly set.
|
||||||
|
source([=[
|
||||||
|
tabnew
|
||||||
|
tabfirst
|
||||||
|
call settabvar(2, 'val_num', 100)
|
||||||
|
call settabvar(2, 'val_str', 'SetTabVar test')
|
||||||
|
call settabvar(2, 'val_list', ['red', 'blue', 'green'])
|
||||||
|
|
||||||
|
let test_status = 'gettabvar: fail'
|
||||||
|
if gettabvar(2, 'val_num') == 100 &&
|
||||||
|
\ gettabvar(2, 'val_str') == 'SetTabVar test' &&
|
||||||
|
\ gettabvar(2, 'val_list') == ['red', 'blue', 'green']
|
||||||
|
let test_status = 'gettabvar: pass'
|
||||||
|
endif
|
||||||
|
call append(line('$'), test_status)
|
||||||
|
|
||||||
|
tabnext 2
|
||||||
|
let test_status = 'settabvar: fail'
|
||||||
|
if t:val_num == 100 &&
|
||||||
|
\ t:val_str == 'SetTabVar test' &&
|
||||||
|
\ t:val_list == ['red', 'blue', 'green']
|
||||||
|
let test_status = 'settabvar: pass'
|
||||||
|
endif
|
||||||
|
tabclose
|
||||||
|
call append(line('$'), test_status)
|
||||||
|
]=])
|
||||||
|
|
||||||
|
-- Test some drop features
|
||||||
|
source([[
|
||||||
|
" Test for ":tab drop exist-file" to keep current window.
|
||||||
|
sp test1
|
||||||
|
tab drop test1
|
||||||
|
let test_status = 'tab drop 1: fail'
|
||||||
|
if tabpagenr('$') == 1 && winnr('$') == 2 && winnr() == 1
|
||||||
|
let test_status = 'tab drop 1: pass'
|
||||||
|
endif
|
||||||
|
close
|
||||||
|
call append(line('$'), test_status)
|
||||||
|
|
||||||
|
" Test for ":tab drop new-file" to keep current window of tabpage 1.
|
||||||
|
split
|
||||||
|
tab drop newfile
|
||||||
|
let test_status = 'tab drop 2: fail'
|
||||||
|
if tabpagenr('$') == 2 &&
|
||||||
|
\ tabpagewinnr(1, '$') == 2 &&
|
||||||
|
\ tabpagewinnr(1) == 1
|
||||||
|
let test_status = 'tab drop 2: pass'
|
||||||
|
endif
|
||||||
|
tabclose
|
||||||
|
q
|
||||||
|
call append(line('$'), test_status)
|
||||||
|
|
||||||
|
" Test for ":tab drop multi-opend-file" to keep current tabpage and
|
||||||
|
" window.
|
||||||
|
new test1
|
||||||
|
tabnew
|
||||||
|
new test1
|
||||||
|
tab drop test1
|
||||||
|
let test_status = 'tab drop 3: fail'
|
||||||
|
if tabpagenr() == 2 &&
|
||||||
|
\ tabpagewinnr(2, '$') == 2 &&
|
||||||
|
\ tabpagewinnr(2) == 1
|
||||||
|
let test_status = 'tab drop 3: pass'
|
||||||
|
endif
|
||||||
|
tabclose
|
||||||
|
q
|
||||||
|
call append(line('$'), test_status)
|
||||||
|
]])
|
||||||
|
-------
|
||||||
|
|
||||||
|
execute('for i in range(9) | tabnew | endfor')
|
||||||
|
feed('1gt')
|
||||||
|
feed('Go<C-R>=tabpagenr()<C-M><C-M><esc>')
|
||||||
|
execute('tabmove 5')
|
||||||
|
feed('i<C-R>=tabpagenr()<C-M><C-M><esc>')
|
||||||
|
execute('tabmove -2')
|
||||||
|
feed('i<C-R>=tabpagenr()<C-M><C-M><esc>')
|
||||||
|
execute('tabmove +4')
|
||||||
|
feed('i<C-R>=tabpagenr()<C-M><C-M><esc>')
|
||||||
|
execute('tabmove')
|
||||||
|
feed('i<C-R>=tabpagenr()<C-M><C-M><esc>')
|
||||||
|
execute('tabmove -20')
|
||||||
|
feed('i<C-R>=tabpagenr()<C-M><C-M><esc>')
|
||||||
|
execute('tabmove +20')
|
||||||
|
feed('i<C-R>=tabpagenr()<C-M><C-M><esc>')
|
||||||
|
execute('3tabmove')
|
||||||
|
feed('i<C-R>=tabpagenr()<C-M><C-M><esc>')
|
||||||
|
execute('7tabmove 5')
|
||||||
|
feed('i<C-R>=tabpagenr()<C-M><C-M><esc>')
|
||||||
|
execute([[let a='No error caught.']])
|
||||||
|
execute('try')
|
||||||
|
execute('tabmove foo')
|
||||||
|
execute('catch E474')
|
||||||
|
execute([[let a='E474 caught.']])
|
||||||
|
execute('endtry')
|
||||||
|
feed('i<C-R>=a<C-M><esc>')
|
||||||
|
|
||||||
|
-- Test autocommands.
|
||||||
|
source([=[
|
||||||
|
tabonly!
|
||||||
|
let g:r=[]
|
||||||
|
command -nargs=1 -bar C :call add(g:r, '=== '.<q-args>.' ===')|<args>
|
||||||
|
function Test()
|
||||||
|
let hasau=has('autocmd')
|
||||||
|
if hasau
|
||||||
|
autocmd TabEnter * :call add(g:r, 'TabEnter')
|
||||||
|
autocmd WinEnter * :call add(g:r, 'WinEnter')
|
||||||
|
autocmd BufEnter * :call add(g:r, 'BufEnter')
|
||||||
|
autocmd TabLeave * :call add(g:r, 'TabLeave')
|
||||||
|
autocmd WinLeave * :call add(g:r, 'WinLeave')
|
||||||
|
autocmd BufLeave * :call add(g:r, 'BufLeave')
|
||||||
|
endif
|
||||||
|
let t:a='a'
|
||||||
|
C tab split
|
||||||
|
if !hasau
|
||||||
|
let g:r+=['WinLeave', 'TabLeave', 'WinEnter', 'TabEnter']
|
||||||
|
endif
|
||||||
|
let t:a='b'
|
||||||
|
C tabnew
|
||||||
|
if !hasau
|
||||||
|
let g:r+=['WinLeave', 'TabLeave', 'WinEnter', 'TabEnter',
|
||||||
|
\ 'BufLeave', 'BufEnter']
|
||||||
|
endif
|
||||||
|
let t:a='c'
|
||||||
|
call add(g:r, join(map(range(1, tabpagenr('$')),
|
||||||
|
\ 'gettabvar(v:val, "a")')))
|
||||||
|
C call map(range(1, tabpagenr('$')),
|
||||||
|
\ 'settabvar(v:val, ''a'', v:val*2)')
|
||||||
|
call add(g:r, join(map(range(1, tabpagenr('$')),
|
||||||
|
\ 'gettabvar(v:val, "a")')))
|
||||||
|
let w:a='a'
|
||||||
|
C vsplit
|
||||||
|
if !hasau
|
||||||
|
let g:r+=['WinLeave', 'WinEnter']
|
||||||
|
endif
|
||||||
|
let w:a='a'
|
||||||
|
let tabn=tabpagenr()
|
||||||
|
let winr=range(1, winnr('$'))
|
||||||
|
C tabnext 1
|
||||||
|
if !hasau
|
||||||
|
let g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter',
|
||||||
|
\ 'TabEnter', 'BufEnter']
|
||||||
|
endif
|
||||||
|
call add(g:r, join(map(copy(winr),
|
||||||
|
\ 'gettabwinvar('.tabn.', v:val, "a")')))
|
||||||
|
C call map(copy(winr),
|
||||||
|
\ 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
|
||||||
|
call add(g:r, join(map(copy(winr),
|
||||||
|
\ 'gettabwinvar('.tabn.', v:val, "a")')))
|
||||||
|
if hasau
|
||||||
|
augroup TabDestructive
|
||||||
|
autocmd TabEnter * :C tabnext 2 | C tabclose 3
|
||||||
|
augroup END
|
||||||
|
C tabnext 3
|
||||||
|
let g:r+=[tabpagenr().'/'.tabpagenr('$')]
|
||||||
|
autocmd! TabDestructive TabEnter
|
||||||
|
C tabnew
|
||||||
|
C tabnext 1
|
||||||
|
autocmd TabDestructive TabEnter * nested
|
||||||
|
\ :C tabnext 2 | C tabclose 3
|
||||||
|
C tabnext 3
|
||||||
|
let g:r+=[tabpagenr().'/'.tabpagenr('$')]
|
||||||
|
else
|
||||||
|
let g:r+=["=== tabnext 3 ===", "BufLeave", "WinLeave",
|
||||||
|
\ "TabLeave", "WinEnter", "TabEnter", "=== tabnext 2 ===",
|
||||||
|
\ "=== tabclose 3 ===", "2/2", "=== tabnew ===", "WinLeave",
|
||||||
|
\ "TabLeave", "WinEnter", "TabEnter", "BufLeave", "BufEnter",
|
||||||
|
\ "=== tabnext 1 ===", "BufLeave", "WinLeave", "TabLeave",
|
||||||
|
\ "WinEnter", "TabEnter", "BufEnter", "=== tabnext 3 ===",
|
||||||
|
\ "BufLeave", "WinLeave", "TabLeave", "WinEnter", "TabEnter",
|
||||||
|
\ "=== tabnext 2 ===", "BufLeave", "WinLeave", "TabLeave",
|
||||||
|
\ "WinEnter", "TabEnter", "=== tabnext 2 ===",
|
||||||
|
\ "=== tabclose 3 ===", "BufEnter", "=== tabclose 3 ===",
|
||||||
|
\ "2/2"]
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
call Test()
|
||||||
|
$ put =g:r
|
||||||
|
]=])
|
||||||
|
|
||||||
|
|
||||||
|
--execute('0,/^Results/-1 d')
|
||||||
|
--execute('qa!')
|
||||||
|
|
||||||
|
-- Assert buffer contents.
|
||||||
|
expect([=[
|
||||||
|
Results:
|
||||||
|
tab page 2
|
||||||
|
this is tab page 3
|
||||||
|
this is tab page 1
|
||||||
|
this is tab page 4
|
||||||
|
gettabvar: pass
|
||||||
|
settabvar: pass
|
||||||
|
tab drop 1: pass
|
||||||
|
tab drop 2: pass
|
||||||
|
tab drop 3: pass
|
||||||
|
1
|
||||||
|
6
|
||||||
|
4
|
||||||
|
8
|
||||||
|
10
|
||||||
|
1
|
||||||
|
10
|
||||||
|
4
|
||||||
|
6
|
||||||
|
E474 caught.
|
||||||
|
=== tab split ===
|
||||||
|
WinLeave
|
||||||
|
TabLeave
|
||||||
|
WinEnter
|
||||||
|
TabEnter
|
||||||
|
=== tabnew ===
|
||||||
|
WinLeave
|
||||||
|
TabLeave
|
||||||
|
WinEnter
|
||||||
|
TabEnter
|
||||||
|
BufLeave
|
||||||
|
BufEnter
|
||||||
|
a b c
|
||||||
|
=== call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)') ===
|
||||||
|
2 4 6
|
||||||
|
=== vsplit ===
|
||||||
|
WinLeave
|
||||||
|
WinEnter
|
||||||
|
=== tabnext 1 ===
|
||||||
|
BufLeave
|
||||||
|
WinLeave
|
||||||
|
TabLeave
|
||||||
|
WinEnter
|
||||||
|
TabEnter
|
||||||
|
BufEnter
|
||||||
|
a a
|
||||||
|
=== call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)') ===
|
||||||
|
2 4
|
||||||
|
=== tabnext 3 ===
|
||||||
|
BufLeave
|
||||||
|
WinLeave
|
||||||
|
TabLeave
|
||||||
|
WinEnter
|
||||||
|
TabEnter
|
||||||
|
=== tabnext 2 ===
|
||||||
|
=== tabclose 3 ===
|
||||||
|
2/2
|
||||||
|
=== tabnew ===
|
||||||
|
WinLeave
|
||||||
|
TabLeave
|
||||||
|
WinEnter
|
||||||
|
TabEnter
|
||||||
|
BufLeave
|
||||||
|
BufEnter
|
||||||
|
=== tabnext 1 ===
|
||||||
|
BufLeave
|
||||||
|
WinLeave
|
||||||
|
TabLeave
|
||||||
|
WinEnter
|
||||||
|
TabEnter
|
||||||
|
BufEnter
|
||||||
|
=== tabnext 3 ===
|
||||||
|
BufLeave
|
||||||
|
WinLeave
|
||||||
|
TabLeave
|
||||||
|
WinEnter
|
||||||
|
TabEnter
|
||||||
|
=== tabnext 2 ===
|
||||||
|
BufLeave
|
||||||
|
WinLeave
|
||||||
|
TabLeave
|
||||||
|
WinEnter
|
||||||
|
TabEnter
|
||||||
|
=== tabnext 2 ===
|
||||||
|
=== tabclose 3 ===
|
||||||
|
BufEnter
|
||||||
|
=== tabclose 3 ===
|
||||||
|
2/2]=])
|
||||||
|
end)
|
||||||
|
end)
|
Loading…
Reference in New Issue
Block a user