Mercurial > vim
view src/testdir/test62.in @ 7281:2a4593702d5c v7.4.946
commit https://github.com/vim/vim/commit/bbfbaf9741deebb9f1ed790885bd571c4cbce17a
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Dec 1 15:32:56 2015 +0100
patch 7.4.946
Problem: Missing changes in source file.
Solution: Include changes to the eval.c file.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 01 Dec 2015 15:45:04 +0100 |
parents | c0bc9b60fb8a |
children |
line wrap: on
line source
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 :$put =tabpagenr() :tabmove 5 :$put =tabpagenr() :.tabmove :$put =tabpagenr() :tabmove - :$put =tabpagenr() :tabmove + :$put =tabpagenr() :tabmove -2 :$put =tabpagenr() :tabmove +4 :$put =tabpagenr() :tabmove :$put =tabpagenr() :tabmove -20 :$put =tabpagenr() :tabmove +20 :$put =tabpagenr() :0tabmove :$put =tabpagenr() :$tabmove :$put =tabpagenr() :tabmove 0 :$put =tabpagenr() :tabmove $ :$put =tabpagenr() :3tabmove :$put =tabpagenr() :7tabmove 5 :$put =tabpagenr() :let a='No error caught.' :try :tabmove foo :catch E474 :let a='E474 caught.' :endtry :$put =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: