forked from aniani/vim
patch 8.0.0019
Problem: Test_command_count is old style.
Solution: Turn it into a new style test. (Naruhiko Nishino)
Use more assert functions.
This commit is contained in:
191
src/testdir/test_command_count.vim
Normal file
191
src/testdir/test_command_count.vim
Normal file
@@ -0,0 +1,191 @@
|
||||
" Test for user command counts.
|
||||
|
||||
func Test_command_count_0()
|
||||
set hidden
|
||||
set noswapfile
|
||||
|
||||
split DoesNotExistEver
|
||||
let lastbuf = bufnr('$')
|
||||
call setline(1, 'asdf')
|
||||
quit!
|
||||
|
||||
command! -range -addr=loaded_buffers RangeLoadedBuffers :let lines = [<line1>, <line2>]
|
||||
command! -range=% -addr=loaded_buffers RangeLoadedBuffersAll :let lines = [<line1>, <line2>]
|
||||
command! -range -addr=buffers RangeBuffers :let lines = [<line1>, <line2>]
|
||||
command! -range=% -addr=buffers RangeBuffersAll :let lines = [<line1>, <line2>]
|
||||
|
||||
.,$RangeLoadedBuffers
|
||||
call assert_equal([1, 1], lines)
|
||||
%RangeLoadedBuffers
|
||||
call assert_equal([1, 1], lines)
|
||||
RangeLoadedBuffersAll
|
||||
call assert_equal([1, 1], lines)
|
||||
.,$RangeBuffers
|
||||
call assert_equal([1, lastbuf], lines)
|
||||
%RangeBuffers
|
||||
call assert_equal([1, lastbuf], lines)
|
||||
RangeBuffersAll
|
||||
call assert_equal([1, lastbuf], lines)
|
||||
|
||||
delcommand RangeLoadedBuffers
|
||||
delcommand RangeLoadedBuffersAll
|
||||
delcommand RangeBuffers
|
||||
delcommand RangeBuffersAll
|
||||
|
||||
set hidden&
|
||||
set swapfile&
|
||||
endfunc
|
||||
|
||||
func Test_command_count_1()
|
||||
silent! %argd
|
||||
arga a b c d e
|
||||
argdo echo "loading buffers"
|
||||
argu 3
|
||||
command! -range -addr=arguments RangeArguments :let lines = [<line1>, <line2>]
|
||||
command! -range=% -addr=arguments RangeArgumentsAll :let lines = [<line1>, <line2>]
|
||||
.-,$-RangeArguments
|
||||
call assert_equal([2, 4], lines)
|
||||
%RangeArguments
|
||||
call assert_equal([1, 5], lines)
|
||||
RangeArgumentsAll
|
||||
call assert_equal([1, 5], lines)
|
||||
N
|
||||
.RangeArguments
|
||||
call assert_equal([2, 2], lines)
|
||||
delcommand RangeArguments
|
||||
delcommand RangeArgumentsAll
|
||||
|
||||
split|split|split|split
|
||||
3wincmd w
|
||||
command! -range -addr=windows RangeWindows :let lines = [<line1>, <line2>]
|
||||
.,$RangeWindows
|
||||
call assert_equal([3, 5], lines)
|
||||
%RangeWindows
|
||||
call assert_equal([1, 5], lines)
|
||||
delcommand RangeWindows
|
||||
|
||||
command! -range=% -addr=windows RangeWindowsAll :let lines = [<line1>, <line2>]
|
||||
RangeWindowsAll
|
||||
call assert_equal([1, 5], lines)
|
||||
delcommand RangeWindowsAll
|
||||
only
|
||||
blast|bd
|
||||
|
||||
tabe|tabe|tabe|tabe
|
||||
normal 2gt
|
||||
command! -range -addr=tabs RangeTabs :let lines = [<line1>, <line2>]
|
||||
.,$RangeTabs
|
||||
call assert_equal([2, 5], lines)
|
||||
%RangeTabs
|
||||
call assert_equal([1, 5], lines)
|
||||
delcommand RangeTabs
|
||||
|
||||
command! -range=% -addr=tabs RangeTabsAll :let lines = [<line1>, <line2>]
|
||||
RangeTabsAll
|
||||
call assert_equal([1, 5], lines)
|
||||
delcommand RangeTabsAll
|
||||
1tabonly
|
||||
|
||||
s/\n/\r\r\r\r\r/
|
||||
2ma<
|
||||
$-ma>
|
||||
command! -range=% RangeLines :let lines = [<line1>, <line2>]
|
||||
'<,'>RangeLines
|
||||
call assert_equal([2, 5], lines)
|
||||
delcommand RangeLines
|
||||
|
||||
command! -range=% -buffer LocalRangeLines :let lines = [<line1>, <line2>]
|
||||
'<,'>LocalRangeLines
|
||||
call assert_equal([2, 5], lines)
|
||||
delcommand LocalRangeLines
|
||||
endfunc
|
||||
|
||||
func Test_command_count_2()
|
||||
silent! %argd
|
||||
arga a b c d
|
||||
call assert_fails('5argu', 'E16:')
|
||||
|
||||
$argu
|
||||
call assert_equal('d', expand('%:t'))
|
||||
|
||||
1argu
|
||||
call assert_equal('a', expand('%:t'))
|
||||
|
||||
call assert_fails('300b', 'E16:')
|
||||
|
||||
split|split|split|split
|
||||
0close
|
||||
|
||||
$wincmd w
|
||||
$close
|
||||
call assert_equal(3, winnr())
|
||||
|
||||
call assert_fails('$+close', 'E16:')
|
||||
|
||||
$tabe
|
||||
call assert_equal(2, tabpagenr())
|
||||
|
||||
call assert_fails('$+tabe', 'E16:')
|
||||
|
||||
only!
|
||||
e x
|
||||
0tabm
|
||||
normal 1gt
|
||||
call assert_equal('x', expand('%:t'))
|
||||
|
||||
tabonly!
|
||||
only!
|
||||
endfunc
|
||||
|
||||
func Test_command_count_3()
|
||||
se nohidden
|
||||
e aaa
|
||||
let buf_aaa = bufnr('%')
|
||||
e bbb
|
||||
let buf_bbb = bufnr('%')
|
||||
e ccc
|
||||
let buf_ccc = bufnr('%')
|
||||
buf 1
|
||||
call assert_equal([1, 1, 1], [buflisted(buf_aaa), buflisted(buf_bbb), buflisted(buf_ccc)])
|
||||
exe buf_bbb . "," . buf_ccc . "bdelete"
|
||||
call assert_equal([1, 0, 0], [buflisted(buf_aaa), buflisted(buf_bbb), buflisted(buf_ccc)])
|
||||
exe buf_aaa . "bdelete"
|
||||
call assert_equal([0, 0, 0], [buflisted(buf_aaa), buflisted(buf_bbb), buflisted(buf_ccc)])
|
||||
endfunc
|
||||
|
||||
func Test_command_count_4()
|
||||
%argd
|
||||
let bufnr = bufnr('$') + 1
|
||||
arga aa bb cc dd ee ff
|
||||
3argu
|
||||
let args = []
|
||||
.,$-argdo call add(args, expand('%'))
|
||||
call assert_equal(['cc', 'dd', 'ee'], args)
|
||||
|
||||
" create windows to get 5
|
||||
split|split|split|split
|
||||
2wincmd w
|
||||
let windows = []
|
||||
.,$-windo call add(windows, winnr())
|
||||
call assert_equal([2, 3, 4], windows)
|
||||
only!
|
||||
|
||||
exe bufnr . 'buf'
|
||||
let buffers = []
|
||||
.,$-bufdo call add(buffers, bufnr('%'))
|
||||
call assert_equal([bufnr, bufnr + 1, bufnr + 2, bufnr + 3, bufnr + 4], buffers)
|
||||
|
||||
exe (bufnr + 3) . 'bdel'
|
||||
let buffers = []
|
||||
exe (bufnr + 2) . ',' . (bufnr + 5) . "bufdo call add(buffers, bufnr('%'))"
|
||||
call assert_equal([bufnr + 2, bufnr + 4, bufnr + 5], buffers)
|
||||
|
||||
" create tabpages to get 5
|
||||
tabe|tabe|tabe|tabe
|
||||
normal! 2gt
|
||||
let tabpages = []
|
||||
.,$-tabdo call add(tabpages, tabpagenr())
|
||||
call assert_equal([2, 3, 4], tabpages)
|
||||
tabonly!
|
||||
bwipe!
|
||||
endfunc
|
||||
Reference in New Issue
Block a user