1" Test for user command counts. 2 3func Test_command_count_0() 4 let bufnr = bufnr('%') 5 set hidden 6 set noswapfile 7 8 split DoesNotExistEver 9 let lastbuf = bufnr('$') 10 call setline(1, 'asdf') 11 quit! 12 13 command! -range -addr=loaded_buffers RangeLoadedBuffers :let lines = [<line1>, <line2>] 14 command! -range=% -addr=loaded_buffers RangeLoadedBuffersAll :let lines = [<line1>, <line2>] 15 command! -range -addr=buffers RangeBuffers :let lines = [<line1>, <line2>] 16 command! -range=% -addr=buffers RangeBuffersAll :let lines = [<line1>, <line2>] 17 18 .,$RangeLoadedBuffers 19 call assert_equal([bufnr, bufnr], lines) 20 %RangeLoadedBuffers 21 call assert_equal([bufnr, bufnr], lines) 22 RangeLoadedBuffersAll 23 call assert_equal([bufnr, bufnr], lines) 24 .,$RangeBuffers 25 call assert_equal([bufnr, lastbuf], lines) 26 %RangeBuffers 27 call assert_equal([bufnr, lastbuf], lines) 28 RangeBuffersAll 29 call assert_equal([bufnr, lastbuf], lines) 30 31 delcommand RangeLoadedBuffers 32 delcommand RangeLoadedBuffersAll 33 delcommand RangeBuffers 34 delcommand RangeBuffersAll 35 36 set hidden& 37 set swapfile& 38endfunc 39 40func Test_command_count_1() 41 silent! %argd 42 arga a b c d e 43 argdo echo "loading buffers" 44 argu 3 45 command! -range -addr=arguments RangeArguments :let lines = [<line1>, <line2>] 46 command! -range=% -addr=arguments RangeArgumentsAll :let lines = [<line1>, <line2>] 47 .-,$-RangeArguments 48 call assert_equal([2, 4], lines) 49 %RangeArguments 50 call assert_equal([1, 5], lines) 51 RangeArgumentsAll 52 call assert_equal([1, 5], lines) 53 N 54 .RangeArguments 55 call assert_equal([2, 2], lines) 56 delcommand RangeArguments 57 delcommand RangeArgumentsAll 58 59 split|split|split|split 60 3wincmd w 61 command! -range -addr=windows RangeWindows :let lines = [<line1>, <line2>] 62 .,$RangeWindows 63 call assert_equal([3, 5], lines) 64 %RangeWindows 65 call assert_equal([1, 5], lines) 66 delcommand RangeWindows 67 68 command! -range=% -addr=windows RangeWindowsAll :let lines = [<line1>, <line2>] 69 RangeWindowsAll 70 call assert_equal([1, 5], lines) 71 delcommand RangeWindowsAll 72 only 73 blast|bd 74 75 tabe|tabe|tabe|tabe 76 normal 2gt 77 command! -range -addr=tabs RangeTabs :let lines = [<line1>, <line2>] 78 .,$RangeTabs 79 call assert_equal([2, 5], lines) 80 %RangeTabs 81 call assert_equal([1, 5], lines) 82 delcommand RangeTabs 83 84 command! -range=% -addr=tabs RangeTabsAll :let lines = [<line1>, <line2>] 85 RangeTabsAll 86 call assert_equal([1, 5], lines) 87 delcommand RangeTabsAll 88 1tabonly 89 90 s/\n/\r\r\r\r\r/ 91 2ma< 92 $-ma> 93 command! -range=% RangeLines :let lines = [<line1>, <line2>] 94 '<,'>RangeLines 95 call assert_equal([2, 5], lines) 96 delcommand RangeLines 97 98 command! -range=% -buffer LocalRangeLines :let lines = [<line1>, <line2>] 99 '<,'>LocalRangeLines 100 call assert_equal([2, 5], lines) 101 delcommand LocalRangeLines 102endfunc 103 104func Test_command_count_2() 105 silent! %argd 106 arga a b c d 107 call assert_fails('5argu', 'E16:') 108 109 $argu 110 call assert_equal('d', expand('%:t')) 111 112 1argu 113 call assert_equal('a', expand('%:t')) 114 115 call assert_fails('300b', 'E16:') 116 117 split|split|split|split 118 0close 119 120 $wincmd w 121 $close 122 call assert_equal(3, winnr()) 123 124 call assert_fails('$+close', 'E16:') 125 126 $tabe 127 call assert_equal(2, tabpagenr()) 128 129 call assert_fails('$+tabe', 'E16:') 130 131 only! 132 e x 133 0tabm 134 normal 1gt 135 call assert_equal('x', expand('%:t')) 136 137 tabonly! 138 only! 139endfunc 140 141func Test_command_count_3() 142 let bufnr = bufnr('%') 143 se nohidden 144 e aaa 145 let buf_aaa = bufnr('%') 146 e bbb 147 let buf_bbb = bufnr('%') 148 e ccc 149 let buf_ccc = bufnr('%') 150 exe bufnr . 'buf' 151 call assert_equal([1, 1, 1], [buflisted(buf_aaa), buflisted(buf_bbb), buflisted(buf_ccc)]) 152 exe buf_bbb . "," . buf_ccc . "bdelete" 153 call assert_equal([1, 0, 0], [buflisted(buf_aaa), buflisted(buf_bbb), buflisted(buf_ccc)]) 154 exe buf_aaa . "bdelete" 155 call assert_equal([0, 0, 0], [buflisted(buf_aaa), buflisted(buf_bbb), buflisted(buf_ccc)]) 156endfunc 157 158func Test_command_count_4() 159 %argd 160 let bufnr = bufnr('$') 161 next aa bb cc dd ee ff 162 call assert_equal(bufnr, bufnr('%')) 163 164 3argu 165 let args = [] 166 .,$-argdo call add(args, expand('%')) 167 call assert_equal(['cc', 'dd', 'ee'], args) 168 169 " create windows to get 5 170 split|split|split|split 171 2wincmd w 172 let windows = [] 173 .,$-windo call add(windows, winnr()) 174 call assert_equal([2, 3, 4], windows) 175 only! 176 177 exe bufnr . 'buf' 178 let bufnr = bufnr('%') 179 let buffers = [] 180 .,$-bufdo call add(buffers, bufnr('%')) 181 call assert_equal([bufnr, bufnr + 1, bufnr + 2, bufnr + 3, bufnr + 4], buffers) 182 183 exe (bufnr + 3) . 'bdel' 184 let buffers = [] 185 exe (bufnr + 2) . ',' . (bufnr + 5) . "bufdo call add(buffers, bufnr('%'))" 186 call assert_equal([bufnr + 2, bufnr + 4, bufnr + 5], buffers) 187 188 " create tabpages to get 5 189 tabe|tabe|tabe|tabe 190 normal! 2gt 191 let tabpages = [] 192 .,$-tabdo call add(tabpages, tabpagenr()) 193 call assert_equal([2, 3, 4], tabpages) 194 tabonly! 195 bwipe! 196endfunc 197