diff src/testdir/test_hide.vim @ 10383:b59df2194b01 v8.0.0086

commit https://github.com/vim/vim/commit/2256c9947164229c0960803e2a2992b793c23298 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Nov 15 21:17:07 2016 +0100 patch 8.0.0086 Problem: Cannot add a comment after ":hide". (Norio Takagi) Solution: Make it work, add a test. (Hirohito Higashi)
author Christian Brabandt <cb@256bit.org>
date Tue, 15 Nov 2016 21:30:04 +0100
parents
children 45eca7143d7c
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/src/testdir/test_hide.vim
@@ -0,0 +1,97 @@
+" Tests for :hide command/modifier and 'hidden' option
+
+function 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], [buflisted('Xf1'), bufloaded('Xf1')])
+  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