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