mirror of
https://github.com/neovim/neovim.git
synced 2025-10-01 07:28:34 +00:00
vim-patch:7.4.2227 (#5521)
Problem: Tab page tests are old style.
Solution: Change into new style tests. (Hirohito Higashi)
1381d79147
This commit is contained in:

committed by
Justin M. Keyes

parent
31df051ed9
commit
e62f681d2d
@@ -10,5 +10,6 @@ source test_menu.vim
|
|||||||
source test_popup.vim
|
source test_popup.vim
|
||||||
source test_regexp_utf8.vim
|
source test_regexp_utf8.vim
|
||||||
source test_syn_attr.vim
|
source test_syn_attr.vim
|
||||||
|
source test_tabpage.vim
|
||||||
source test_unlet.vim
|
source test_unlet.vim
|
||||||
source test_matchadd_conceal_utf8.vim
|
source test_matchadd_conceal_utf8.vim
|
||||||
|
189
src/nvim/testdir/test_tabpage.vim
Normal file
189
src/nvim/testdir/test_tabpage.vim
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
" Tests for tabpage
|
||||||
|
|
||||||
|
function Test_tabpage()
|
||||||
|
bw!
|
||||||
|
" Simple test for opening and closing a tab page
|
||||||
|
tabnew
|
||||||
|
call assert_equal(2, tabpagenr())
|
||||||
|
quit
|
||||||
|
|
||||||
|
" Open three tab pages and use ":tabdo"
|
||||||
|
0tabnew
|
||||||
|
1tabnew
|
||||||
|
$tabnew
|
||||||
|
tabdo call append(line('$'), 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
|
||||||
|
call assert_equal(['', '3', '1', '4'], getline(1, '$'))
|
||||||
|
"
|
||||||
|
" 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'])
|
||||||
|
"
|
||||||
|
call assert_true(gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar test' && gettabvar(2, 'val_list') == ['red', 'blue', 'green'])
|
||||||
|
|
||||||
|
tabnext 2
|
||||||
|
call assert_true(t:val_num == 100 && t:val_str == 'SetTabVar test' && t:val_list == ['red', 'blue', 'green'])
|
||||||
|
tabclose
|
||||||
|
|
||||||
|
if has('gui') || has('clientserver')
|
||||||
|
" Test for ":tab drop exist-file" to keep current window.
|
||||||
|
sp test1
|
||||||
|
tab drop test1
|
||||||
|
call assert_true(tabpagenr('$') == 1 && winnr('$') == 2 && winnr() == 1)
|
||||||
|
close
|
||||||
|
"
|
||||||
|
"
|
||||||
|
" Test for ":tab drop new-file" to keep current window of tabpage 1.
|
||||||
|
split
|
||||||
|
tab drop newfile
|
||||||
|
call assert_true(tabpagenr('$') == 2 && tabpagewinnr(1, '$') == 2 && tabpagewinnr(1) == 1)
|
||||||
|
tabclose
|
||||||
|
q
|
||||||
|
"
|
||||||
|
"
|
||||||
|
" Test for ":tab drop multi-opend-file" to keep current tabpage and window.
|
||||||
|
new test1
|
||||||
|
tabnew
|
||||||
|
new test1
|
||||||
|
tab drop test1
|
||||||
|
call assert_true(tabpagenr() == 2 && tabpagewinnr(2, '$') == 2 && tabpagewinnr(2) == 1)
|
||||||
|
tabclose
|
||||||
|
q
|
||||||
|
endif
|
||||||
|
"
|
||||||
|
"
|
||||||
|
for i in range(9) | tabnew | endfor
|
||||||
|
normal! 1gt
|
||||||
|
call assert_equal(1, tabpagenr())
|
||||||
|
tabmove 5
|
||||||
|
call assert_equal(5, tabpagenr())
|
||||||
|
.tabmove
|
||||||
|
call assert_equal(5, tabpagenr())
|
||||||
|
tabmove -
|
||||||
|
call assert_equal(4, tabpagenr())
|
||||||
|
tabmove +
|
||||||
|
call assert_equal(5, tabpagenr())
|
||||||
|
tabmove -2
|
||||||
|
call assert_equal(3, tabpagenr())
|
||||||
|
tabmove +4
|
||||||
|
call assert_equal(7, tabpagenr())
|
||||||
|
tabmove
|
||||||
|
call assert_equal(10, tabpagenr())
|
||||||
|
tabmove -20
|
||||||
|
call assert_equal(1, tabpagenr())
|
||||||
|
tabmove +20
|
||||||
|
call assert_equal(10, tabpagenr())
|
||||||
|
0tabmove
|
||||||
|
call assert_equal(1, tabpagenr())
|
||||||
|
$tabmove
|
||||||
|
call assert_equal(10, tabpagenr())
|
||||||
|
tabmove 0
|
||||||
|
call assert_equal(1, tabpagenr())
|
||||||
|
tabmove $
|
||||||
|
call assert_equal(10, tabpagenr())
|
||||||
|
3tabmove
|
||||||
|
call assert_equal(4, tabpagenr())
|
||||||
|
7tabmove 5
|
||||||
|
call assert_equal(5, tabpagenr())
|
||||||
|
call assert_fails("tabmove foo", 'E474:')
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Test autocommands
|
||||||
|
function Test_tabpage_with_autocmd()
|
||||||
|
if !has('autocmd')
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
tabonly!
|
||||||
|
command -nargs=1 -bar C :call add(s:li, '=== ' . <q-args> . ' ===')|<args>
|
||||||
|
augroup TestTabpageGroup
|
||||||
|
au!
|
||||||
|
autocmd TabEnter * call add(s:li, 'TabEnter')
|
||||||
|
autocmd WinEnter * call add(s:li, 'WinEnter')
|
||||||
|
autocmd BufEnter * call add(s:li, 'BufEnter')
|
||||||
|
autocmd TabLeave * call add(s:li, 'TabLeave')
|
||||||
|
autocmd WinLeave * call add(s:li, 'WinLeave')
|
||||||
|
autocmd BufLeave * call add(s:li, 'BufLeave')
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
let s:li = []
|
||||||
|
let t:a='a'
|
||||||
|
C tab split
|
||||||
|
call assert_equal(['=== tab split ===', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter'], s:li)
|
||||||
|
let s:li = []
|
||||||
|
let t:a='b'
|
||||||
|
C tabnew
|
||||||
|
call assert_equal(['=== tabnew ===', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufLeave', 'BufEnter'], s:li)
|
||||||
|
let t:a='c'
|
||||||
|
let s:li = split(join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')) , '\s\+')
|
||||||
|
call assert_equal(['a', 'b', 'c'], s:li)
|
||||||
|
|
||||||
|
let s:li = []
|
||||||
|
C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
|
||||||
|
call assert_equal(["=== call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)') ==="], s:li)
|
||||||
|
let s:li = split(join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')) , '\s\+')
|
||||||
|
call assert_equal(['2', '4', '6'], s:li)
|
||||||
|
|
||||||
|
let s:li = []
|
||||||
|
let w:a='a'
|
||||||
|
C vsplit
|
||||||
|
call assert_equal(['=== vsplit ===', 'WinLeave', 'WinEnter'], s:li)
|
||||||
|
let s:li = []
|
||||||
|
let w:a='a'
|
||||||
|
let tabn=tabpagenr()
|
||||||
|
let winr=range(1, winnr('$'))
|
||||||
|
C tabnext 1
|
||||||
|
call assert_equal(['=== tabnext 1 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter'], s:li)
|
||||||
|
let s:li = split(join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')), '\s\+')
|
||||||
|
call assert_equal(['a', 'a'], s:li)
|
||||||
|
let s:li = []
|
||||||
|
C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
|
||||||
|
let s:li = split(join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')), '\s\+')
|
||||||
|
call assert_equal(['2', '4'], s:li)
|
||||||
|
|
||||||
|
augroup TabDestructive
|
||||||
|
autocmd TabEnter * :C tabnext 2 | C tabclose 3
|
||||||
|
augroup END
|
||||||
|
let s:li = []
|
||||||
|
C tabnext 3
|
||||||
|
call assert_equal(['=== tabnext 3 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', '=== tabnext 2 ===', '=== tabclose 3 ==='], s:li)
|
||||||
|
call assert_equal(['2/2'], [tabpagenr().'/'.tabpagenr('$')])
|
||||||
|
|
||||||
|
autocmd! TabDestructive TabEnter
|
||||||
|
let s:li = []
|
||||||
|
C tabnew
|
||||||
|
call assert_equal(['=== tabnew ===', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufLeave', 'BufEnter'], s:li)
|
||||||
|
let s:li = []
|
||||||
|
C tabnext 1
|
||||||
|
call assert_equal(['=== tabnext 1 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter'], s:li)
|
||||||
|
|
||||||
|
autocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3
|
||||||
|
let s:li = []
|
||||||
|
C tabnext 3
|
||||||
|
call assert_equal(['=== tabnext 3 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', '=== tabnext 2 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', '=== tabnext 2 ===', '=== tabclose 3 ===', 'BufEnter', '=== tabclose 3 ==='], s:li)
|
||||||
|
call assert_equal(['2/2'], [tabpagenr().'/'.tabpagenr('$')])
|
||||||
|
|
||||||
|
delcommand C
|
||||||
|
autocmd! TabDestructive
|
||||||
|
augroup! TabDestructive
|
||||||
|
autocmd! TestTabpageGroup
|
||||||
|
augroup! TestTabpageGroup
|
||||||
|
tabonly!
|
||||||
|
bw!
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" vim: shiftwidth=2 sts=2 expandtab
|
@@ -214,7 +214,7 @@ static int included_patches[] = {
|
|||||||
// 2230,
|
// 2230,
|
||||||
// 2229,
|
// 2229,
|
||||||
// 2228,
|
// 2228,
|
||||||
// 2227,
|
2227,
|
||||||
// 2226,
|
// 2226,
|
||||||
// 2225,
|
// 2225,
|
||||||
// 2224,
|
// 2224,
|
||||||
|
Reference in New Issue
Block a user