1 2" Tests for :[count]close! command 3func Test_close_count() 4 enew! | only 5 6 let wids = [win_getid()] 7 for i in range(5) 8 new 9 call add(wids, win_getid()) 10 endfor 11 12 4wincmd w 13 close! 14 let ids = [] 15 windo call add(ids, win_getid()) 16 call assert_equal([wids[5], wids[4], wids[3], wids[1], wids[0]], ids) 17 18 1close! 19 let ids = [] 20 windo call add(ids, win_getid()) 21 call assert_equal([wids[4], wids[3], wids[1], wids[0]], ids) 22 23 $close! 24 let ids = [] 25 windo call add(ids, win_getid()) 26 call assert_equal([wids[4], wids[3], wids[1]], ids) 27 28 1wincmd w 29 2close! 30 let ids = [] 31 windo call add(ids, win_getid()) 32 call assert_equal([wids[4], wids[1]], ids) 33 34 1wincmd w 35 new 36 call add(wids, win_getid()) 37 new 38 call add(wids, win_getid()) 39 2wincmd w 40 -1close! 41 let ids = [] 42 windo call add(ids, win_getid()) 43 call assert_equal([wids[6], wids[4], wids[1]], ids) 44 45 2wincmd w 46 +1close! 47 let ids = [] 48 windo call add(ids, win_getid()) 49 call assert_equal([wids[6], wids[4]], ids) 50 51 only! 52endfunc 53 54" Tests for :[count]hide command 55func Test_hide_count() 56 enew! | only 57 58 let wids = [win_getid()] 59 for i in range(5) 60 new 61 call add(wids, win_getid()) 62 endfor 63 64 4wincmd w 65 .hide 66 let ids = [] 67 windo call add(ids, win_getid()) 68 call assert_equal([wids[5], wids[4], wids[3], wids[1], wids[0]], ids) 69 70 1hide 71 let ids = [] 72 windo call add(ids, win_getid()) 73 call assert_equal([wids[4], wids[3], wids[1], wids[0]], ids) 74 75 $hide 76 let ids = [] 77 windo call add(ids, win_getid()) 78 call assert_equal([wids[4], wids[3], wids[1]], ids) 79 80 1wincmd w 81 2hide 82 let ids = [] 83 windo call add(ids, win_getid()) 84 call assert_equal([wids[4], wids[1]], ids) 85 86 1wincmd w 87 new 88 call add(wids, win_getid()) 89 new 90 call add(wids, win_getid()) 91 3wincmd w 92 -hide 93 let ids = [] 94 windo call add(ids, win_getid()) 95 call assert_equal([wids[7], wids[4], wids[1]], ids) 96 97 2wincmd w 98 +hide 99 let ids = [] 100 windo call add(ids, win_getid()) 101 call assert_equal([wids[7], wids[4]], ids) 102 103 only! 104endfunc 105 106" Tests for :[count]close! command with 'hidden' 107func Test_hidden_close_count() 108 enew! | only 109 110 let wids = [win_getid()] 111 for i in range(5) 112 new 113 call add(wids, win_getid()) 114 endfor 115 116 set hidden 117 118 $ hide 119 let ids = [] 120 windo call add(ids, win_getid()) 121 call assert_equal([wids[5], wids[4], wids[3], wids[2], wids[1]], ids) 122 123 $-1 close! 124 let ids = [] 125 windo call add(ids, win_getid()) 126 call assert_equal([wids[5], wids[4], wids[3], wids[1]], ids) 127 128 1wincmd w 129 .+close! 130 let ids = [] 131 windo call add(ids, win_getid()) 132 call assert_equal([wids[5], wids[3], wids[1]], ids) 133 134 set nohidden 135 only! 136endfunc 137 138" Tests for 'CTRL-W c' command to close windows. 139func Test_winclose_command() 140 enew! | only 141 142 let wids = [win_getid()] 143 for i in range(5) 144 new 145 call add(wids, win_getid()) 146 endfor 147 148 set hidden 149 150 4wincmd w 151 exe "normal \<C-W>c" 152 let ids = [] 153 windo call add(ids, win_getid()) 154 call assert_equal([wids[5], wids[4], wids[3], wids[1], wids[0]], ids) 155 156 exe "normal 1\<C-W>c" 157 let ids = [] 158 windo call add(ids, win_getid()) 159 call assert_equal([wids[4], wids[3], wids[1], wids[0]], ids) 160 161 exe "normal 9\<C-W>c" 162 let ids = [] 163 windo call add(ids, win_getid()) 164 call assert_equal([wids[4], wids[3], wids[1]], ids) 165 166 1wincmd w 167 exe "normal 2\<C-W>c" 168 let ids = [] 169 windo call add(ids, win_getid()) 170 call assert_equal([wids[4], wids[1]], ids) 171 172 set nohidden 173 only! 174endfunc 175