view src/testdir/test_hide.vim @ 32108:cbf0ed5c83d0 v9.0.1385

patch 9.0.1385: g'Esc is considered an error Commit: https://github.com/vim/vim/commit/f86dea8119f3141e3d2c680219036d1511101f9b Author: zeertzjq <zeertzjq@outlook.com> Date: Sun Mar 5 21:15:06 2023 +0000 patch 9.0.1385: g'Esc is considered an error Problem: g'Esc is considered an error. Solution: Make g'Esc silently abandon the command. (closes https://github.com/vim/vim/issues/12110)
author Bram Moolenaar <Bram@vim.org>
date Sun, 05 Mar 2023 22:30:03 +0100
parents e373843e2980
children
line wrap: on
line source

" Tests for :hide command/modifier and 'hidden' option

func SetUp()
  let s:save_hidden = &hidden
  let s:save_bufhidden = &bufhidden
  let s:save_autowrite = &autowrite
  set nohidden
  set bufhidden=
  set noautowrite
endfunc

function TearDown()
  let &hidden = s:save_hidden
  let &bufhidden = s:save_bufhidden
  let &autowrite = s:save_autowrite
endfunc

function Test_hide()
  let orig_bname = bufname('')
  let orig_winnr = winnr('$')

  new Xf1
  set modified
  call assert_fails('edit Xf2')
  bwipeout! Xf1

  new Xf1
  set modified
  edit! Xf2
  call assert_equal(['Xf2', 2], [bufname(''), winnr('$')])
  call assert_equal([1, 0], [buflisted('Xf1'), bufloaded('Xf1')])
  bwipeout! Xf1
  bwipeout! Xf2

  new Xf1
  set modified
  " :hide as a command
  hide
  call assert_equal([orig_bname, orig_winnr], [bufname(''), winnr('$')])
  call assert_equal([1, 1], ['Xf1'->buflisted(), 'Xf1'->bufloaded()])
  bwipeout! Xf1

  new Xf1
  set modified
  " :hide as a command with trailing comment
  hide " comment
  call assert_equal([orig_bname, orig_winnr], [bufname(''), winnr('$')])
  call assert_equal([1, 1], [buflisted('Xf1'), bufloaded('Xf1')])
  bwipeout! Xf1

  new Xf1
  set modified
  " :hide as a command with bar
  hide | new Xf2 " comment
  call assert_equal(['Xf2', 2], [bufname(''), winnr('$')])
  call assert_equal([1, 1], [buflisted('Xf1'), bufloaded('Xf1')])
  bwipeout! Xf1
  bwipeout! Xf2

  new Xf1
  set modified
  " :hide as a modifier with trailing comment
  hide edit Xf2 " comment
  call assert_equal(['Xf2', 2], [bufname(''), winnr('$')])
  call assert_equal([1, 1], [buflisted('Xf1'), bufloaded('Xf1')])
  bwipeout! Xf1
  bwipeout! Xf2

  new Xf1
  set modified
  " To check that the bar is not recognized to separate commands
  hide echo "one|two"
  call assert_equal(['Xf1', 2], [bufname(''), winnr('$')])
  call assert_equal([1, 1], [buflisted('Xf1'), bufloaded('Xf1')])
  bwipeout! Xf1

  " set hidden
  new Xf1
  set hidden
  set modified
  edit Xf2 " comment
  call assert_equal(['Xf2', 2], [bufname(''), winnr('$')])
  call assert_equal([1, 1], [buflisted('Xf1'), bufloaded('Xf1')])
  bwipeout! Xf1
  bwipeout! Xf2

  " set hidden bufhidden=wipe
  new Xf1
  set bufhidden=wipe
  set modified
  hide edit! Xf2 " comment
  call assert_equal(['Xf2', 2], [bufname(''), winnr('$')])
  call assert_equal([0, 0], [buflisted('Xf1'), bufloaded('Xf1')])
  bwipeout! Xf2
endfunc

" vim: shiftwidth=2 sts=2 expandtab