view src/testdir/test_close_count.vim @ 32962:7771cb060685 v9.0.1781

patch 9.0.1781: Problems when setting bin/paste option Commit: https://github.com/vim/vim/commit/757593c07a4f4ac43eb6c6e52fc299abc9bc08bc Author: Christian Brabandt <cb@256bit.org> Date: Tue Aug 22 21:44:10 2023 +0200 patch 9.0.1781: Problems when setting bin/paste option Problem: Problems when setting bin/paste option Solution: When setting binary/paste, remember that this also affects depending options, so that :verbose set returns the right location. Mention if depending options for 'binary' or 'paste' have been reset indirectly. Add a test to verify it works. Also noticed as small bug, that the global option value for expandtab was not reset when paste option is set, so fix that while at it. closes: #12837 closes: #12879 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
author Christian Brabandt <cb@256bit.org>
date Tue, 22 Aug 2023 22:00:03 +0200
parents 08940efa6b4e
children
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

" vim: shiftwidth=2 sts=2 expandtab