view src/testdir/test_close_count.vim @ 18532:6fe1d322710d v8.1.2260

patch 8.1.2260: terminal test may fail on MS-Windows Commit: https://github.com/vim/vim/commit/36ec6f6953043270630159a61438ce558552fe3a Author: Bram Moolenaar <Bram@vim.org> Date: Tue Nov 5 22:38:47 2019 +0100 patch 8.1.2260: terminal test may fail on MS-Windows Problem: Terminal test may fail on MS-Windows. Solution: Catch the situation that "term dir" fails with a CreateProcess error.
author Bram Moolenaar <Bram@vim.org>
date Tue, 05 Nov 2019 22:45: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