diff src/testdir/test_command_count.vim @ 10242:a369d97995ff v8.0.0019

commit https://github.com/vim/vim/commit/b3435b0a3a0967115658d0a8c0224a28969cfa02 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Sep 29 20:54:59 2016 +0200 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.
author Christian Brabandt <cb@256bit.org>
date Thu, 29 Sep 2016 21:00:05 +0200
parents
children 03a6aeea2096
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/src/testdir/test_command_count.vim
@@ -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