view src/testdir/test_close_count.vim @ 19783:546bdeef35f1 v8.2.0448

patch 8.2.0448: various functions not properly tested Commit: https://github.com/vim/vim/commit/0e05de46226eb4e5ea580beefa71831f92d613d3 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Mar 25 22:23:46 2020 +0100 patch 8.2.0448: various functions not properly tested Problem: Various functions not properly tested. Solution: Add more tests, especially for failures. (Yegappan Lakshmanan, closes #5843)
author Bram Moolenaar <Bram@vim.org>
date Wed, 25 Mar 2020 22:30:04 +0100
parents 90aaa974594e
children 08940efa6b4e
line wrap: on
line source


" Tests for :[count]close! command
func Test_close_count()
  enew! | only

  let wids = [win_getid()]
  for i in range(5)
    new
    call add(wids, win_getid())
  endfor

  4wincmd w
  close!
  let ids = []
  windo call add(ids, win_getid())
  call assert_equal([wids[5], wids[4], wids[3], wids[1], wids[0]], ids)

  1close!
  let ids = []
  windo call add(ids, win_getid())
  call assert_equal([wids[4], wids[3], wids[1], wids[0]], ids)

  $close!
  let ids = []
  windo call add(ids, win_getid())
  call assert_equal([wids[4], wids[3], wids[1]], ids)

  1wincmd w
  2close!
  let ids = []
  windo call add(ids, win_getid())
  call assert_equal([wids[4], wids[1]], ids)

  1wincmd w
  new
  call add(wids, win_getid())
  new
  call add(wids, win_getid())
  2wincmd w
  -1close!
  let ids = []
  windo call add(ids, win_getid())
  call assert_equal([wids[6], wids[4], wids[1]], ids)

  2wincmd w
  +1close!
  let ids = []
  windo call add(ids, win_getid())
  call assert_equal([wids[6], wids[4]], ids)

  only!
endfunc

" Tests for :[count]hide command
func Test_hide_count()
  enew! | only

  let wids = [win_getid()]
  for i in range(5)
    new
    call add(wids, win_getid())
  endfor

  4wincmd w
  .hide
  let ids = []
  windo call add(ids, win_getid())
  call assert_equal([wids[5], wids[4], wids[3], wids[1], wids[0]], ids)

  1hide
  let ids = []
  windo call add(ids, win_getid())
  call assert_equal([wids[4], wids[3], wids[1], wids[0]], ids)

  $hide
  let ids = []
  windo call add(ids, win_getid())
  call assert_equal([wids[4], wids[3], wids[1]], ids)

  1wincmd w
  2hide
  let ids = []
  windo call add(ids, win_getid())
  call assert_equal([wids[4], wids[1]], ids)

  1wincmd w
  new
  call add(wids, win_getid())
  new
  call add(wids, win_getid())
  3wincmd w
  -hide
  let ids = []
  windo call add(ids, win_getid())
  call assert_equal([wids[7], wids[4], wids[1]], ids)

  2wincmd w
  +hide
  let ids = []
  windo call add(ids, win_getid())
  call assert_equal([wids[7], wids[4]], ids)

  only!
endfunc

" Tests for :[count]close! command with 'hidden'
func Test_hidden_close_count()
  enew! | only

  let wids = [win_getid()]
  for i in range(5)
    new
    call add(wids, win_getid())
  endfor

  set hidden

  $ hide
  let ids = []
  windo call add(ids, win_getid())
  call assert_equal([wids[5], wids[4], wids[3], wids[2], wids[1]], ids)

  $-1 close!
  let ids = []
  windo call add(ids, win_getid())
  call assert_equal([wids[5], wids[4], wids[3], wids[1]], ids)

  1wincmd w
  .+close!
  let ids = []
  windo call add(ids, win_getid())
  call assert_equal([wids[5], wids[3], wids[1]], ids)

  set nohidden
  only!
endfunc

" Tests for 'CTRL-W c' command to close windows.
func Test_winclose_command()
  enew! | only

  let wids = [win_getid()]
  for i in range(5)
    new
    call add(wids, win_getid())
  endfor

  set hidden

  4wincmd w
  exe "normal \<C-W>c"
  let ids = []
  windo call add(ids, win_getid())
  call assert_equal([wids[5], wids[4], wids[3], wids[1], wids[0]], ids)

  exe "normal 1\<C-W>c"
  let ids = []
  windo call add(ids, win_getid())
  call assert_equal([wids[4], wids[3], wids[1], wids[0]], ids)

  exe "normal 9\<C-W>c"
  let ids = []
  windo call add(ids, win_getid())
  call assert_equal([wids[4], wids[3], wids[1]], ids)

  1wincmd w
  exe "normal 2\<C-W>c"
  let ids = []
  windo call add(ids, win_getid())
  call assert_equal([wids[4], wids[1]], ids)

  set nohidden
  only!
endfunc