aboutsummaryrefslogtreecommitdiff
path: root/test/functional/legacy/command_count_spec.lua
diff options
context:
space:
mode:
authorLucas Hoffmann <l-m-h@web.de>2015-06-11 12:33:09 +0200
committerLucas Hoffmann <l-m-h@web.de>2016-02-04 19:20:59 +0100
commit153fe65c01a572fdc29937fc8d5d15addeb45ed3 (patch)
tree1e9a6996ac17876b0790ad5819e9af56ef1f3606 /test/functional/legacy/command_count_spec.lua
parentadd02b675d4e974a971d4403e1e2ad20a7f78938 (diff)
downloadrneovim-153fe65c01a572fdc29937fc8d5d15addeb45ed3.tar.gz
rneovim-153fe65c01a572fdc29937fc8d5d15addeb45ed3.tar.bz2
rneovim-153fe65c01a572fdc29937fc8d5d15addeb45ed3.zip
tests: Migrate legacy test command_count.
Diffstat (limited to 'test/functional/legacy/command_count_spec.lua')
-rw-r--r--test/functional/legacy/command_count_spec.lua196
1 files changed, 196 insertions, 0 deletions
diff --git a/test/functional/legacy/command_count_spec.lua b/test/functional/legacy/command_count_spec.lua
new file mode 100644
index 0000000000..49bb3acb61
--- /dev/null
+++ b/test/functional/legacy/command_count_spec.lua
@@ -0,0 +1,196 @@
+-- Test for user command counts
+
+local helpers = require('test.functional.helpers')
+local source = helpers.source
+local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
+
+describe('command_count', function()
+ setup(clear)
+ teardown(function()
+ os.remove('test.out')
+ end)
+
+ it('is working', function()
+ execute('lang C')
+ execute('let g:lines = []')
+ execute([[com -range=% RangeLines :call add(g:lines, 'RangeLines '.<line1>.' '.<line2>)]])
+ execute([[com -range -addr=arguments RangeArguments :call add(g:lines, 'RangeArguments '.<line1>.' '.<line2>)]])
+ execute([[com -range=% -addr=arguments RangeArgumentsAll :call add(g:lines, 'RangeArgumentsAll '.<line1>.' '.<line2>)]])
+ execute([[com -range -addr=loaded_buffers RangeLoadedBuffers :call add(g:lines, 'RangeLoadedBuffers '.<line1>.' '.<line2>)]])
+ execute([[com -range=% -addr=loaded_buffers RangeLoadedBuffersAll :call add(g:lines, 'RangeLoadedBuffersAll '.<line1>.' '.<line2>)]])
+ execute([[com -range -addr=buffers RangeBuffers :call add(g:lines, 'RangeBuffers '.<line1>.' '.<line2>)]])
+ execute([[com -range=% -addr=buffers RangeBuffersAll :call add(g:lines, 'RangeBuffersAll '.<line1>.' '.<line2>)]])
+ execute([[com -range -addr=windows RangeWindows :call add(g:lines, 'RangeWindows '.<line1>.' '.<line2>)]])
+ execute([[com -range=% -addr=windows RangeWindowsAll :call add(g:lines, 'RangeWindowsAll '.<line1>.' '.<line2>)]])
+ execute([[com -range -addr=tabs RangeTabs :call add(g:lines, 'RangeTabs '.<line1>.' '.<line2>)]])
+ execute([[com -range=% -addr=tabs RangeTabsAll :call add(g:lines, 'RangeTabsAll '.<line1>.' '.<line2>)]])
+ execute('set hidden')
+ execute('arga a b c d')
+ execute('argdo echo "loading buffers"')
+ execute('argu 3')
+ execute('.-,$-RangeArguments')
+ execute('%RangeArguments')
+ execute('RangeArgumentsAll')
+ execute('N')
+ execute('.RangeArguments')
+ execute('split|split|split|split')
+ execute('3wincmd w')
+ execute('.,$RangeWindows')
+ execute('%RangeWindows')
+ execute('RangeWindowsAll')
+ execute('only')
+ execute('blast|bd')
+ execute('.,$RangeLoadedBuffers')
+ execute('%RangeLoadedBuffers')
+ execute('RangeLoadedBuffersAll')
+ execute('.,$RangeBuffers')
+ execute('%RangeBuffers')
+ execute('RangeBuffersAll')
+ execute('tabe|tabe|tabe|tabe')
+ execute('normal 2gt')
+ execute('.,$RangeTabs')
+ execute('%RangeTabs')
+ execute('RangeTabsAll')
+ execute('1tabonly')
+ execute([[s/\n/\r\r\r\r\r/]])
+ execute('2ma<')
+ execute('$-ma>')
+ execute([['<,'>RangeLines]])
+ execute([[com -range=% -buffer LocalRangeLines :call add(g:lines, 'LocalRangeLines '.<line1>.' '.<line2>)]])
+ execute([['<,'>LocalRangeLines]])
+ execute('b1')
+ execute([[call add(g:lines, '')]])
+ execute('%argd')
+ execute('arga a b c d')
+ execute([[let v:errmsg = '']])
+ execute('5argu')
+ execute([[call add(g:lines, '5argu ' . v:errmsg)]])
+ execute('$argu')
+ execute([[call add(g:lines, '4argu ' . expand('%:t'))]])
+ execute([[let v:errmsg = '']])
+ execute('1argu')
+ execute([[call add(g:lines, '1argu ' . expand('%:t'))]])
+ execute([[let v:errmsg = '']])
+ execute('100b')
+ execute([[call add(g:lines, '100b ' . v:errmsg)]])
+ execute('split|split|split|split')
+ execute([[let v:errmsg = '']])
+ execute('0close')
+ execute([[call add(g:lines, '0close ' . v:errmsg)]])
+ execute('$wincmd w')
+ execute('$close')
+ execute([[call add(g:lines, '$close ' . winnr())]])
+ execute([[let v:errmsg = '']])
+ execute('$+close')
+ execute([[call add(g:lines, '$+close ' . v:errmsg)]])
+ execute('$tabe')
+ execute([[call add(g:lines, '$tabe ' . tabpagenr())]])
+ execute([[let v:errmsg = '']])
+ execute('$+tabe')
+ execute([[call add(g:lines, '$+tabe ' . v:errmsg)]])
+ execute('only!')
+ execute('e x')
+ execute('0tabm')
+ execute('normal 1gt')
+ execute([[call add(g:lines, '0tabm ' . expand('%:t'))]])
+ execute('tabonly!')
+ execute('only!')
+ execute('e! test.out')
+ execute('call append(0, g:lines)')
+ execute('unlet g:lines')
+ execute('w|bd')
+ execute('b1')
+ execute('let g:lines = []')
+ execute('func BufStatus()')
+ execute([[ call add(g:lines, 'aaa: ' . buflisted(g:buf_aaa) . ' bbb: ' . buflisted(g:buf_bbb) . ' ccc: ' . buflisted(g:buf_ccc))]])
+ execute('endfunc')
+ execute('se nohidden')
+ execute('e aaa')
+ execute([[let buf_aaa = bufnr('%')]])
+ execute('e bbb')
+ execute([[let buf_bbb = bufnr('%')]])
+ execute('e ccc')
+ execute([[let buf_ccc = bufnr('%')]])
+ execute('b1')
+ execute('call BufStatus()')
+ execute('exe buf_bbb . "," . buf_ccc . "bdelete"')
+ execute('call BufStatus()')
+ execute('exe buf_aaa . "bdelete"')
+ execute('call BufStatus()')
+ execute('e! test.out')
+ execute([[call append('$', g:lines)]])
+ execute('unlet g:lines')
+ execute('delfunc BufStatus')
+ execute('w|bd')
+ execute('b1')
+ execute('se hidden')
+ execute('only!')
+ execute('let g:lines = []')
+ execute('%argd')
+ execute('arga a b c d e f')
+ execute('3argu')
+ execute([[let args = '']])
+ execute([[.,$-argdo let args .= ' '.expand('%')]])
+ execute([[call add(g:lines, 'argdo:' . args)]])
+ execute('split|split|split|split')
+ execute('2wincmd w')
+ execute([[let windows = '']])
+ execute([[.,$-windo let windows .= ' '.winnr()]])
+ execute([[call add(g:lines, 'windo:'. windows)]])
+ execute('b2')
+ execute([[let buffers = '']])
+ execute([[.,$-bufdo let buffers .= ' '.bufnr('%')]])
+ execute([[call add(g:lines, 'bufdo:' . buffers)]])
+ execute([[let buffers = '']])
+ execute([[3,7bufdo let buffers .= ' '.bufnr('%')]])
+ execute([[call add(g:lines, 'bufdo:' . buffers)]])
+ execute('tabe|tabe|tabe|tabe')
+ execute('normal! 2gt')
+ execute([[let tabpages = '']])
+ execute([[.,$-tabdo let tabpages .= ' '.tabpagenr()]])
+ execute([[call add(g:lines, 'tabdo:' . tabpages)]])
+ execute('e! test.out')
+ execute([[call append('$', g:lines)]])
+
+ -- Assert buffer contents.
+ expect([=[
+ RangeArguments 2 4
+ RangeArguments 1 5
+ RangeArgumentsAll 1 5
+ RangeArguments 2 2
+ RangeWindows 3 5
+ RangeWindows 1 5
+ RangeWindowsAll 1 5
+ RangeLoadedBuffers 2 4
+ RangeLoadedBuffers 1 4
+ RangeLoadedBuffersAll 1 4
+ RangeBuffers 2 5
+ RangeBuffers 1 5
+ RangeBuffersAll 1 5
+ RangeTabs 2 5
+ RangeTabs 1 5
+ RangeTabsAll 1 5
+ RangeLines 2 5
+ LocalRangeLines 2 5
+
+ 5argu E16: Invalid range
+ 4argu d
+ 1argu a
+ 100b E16: Invalid range
+ 0close
+ $close 3
+ $+close E16: Invalid range
+ $tabe 2
+ $+tabe E16: Invalid range
+ 0tabm x
+
+ aaa: 1 bbb: 1 ccc: 1
+ aaa: 1 bbb: 0 ccc: 0
+ aaa: 0 bbb: 0 ccc: 0
+ argdo: c d e
+ windo: 2 3 4
+ bufdo: 2 3 4 5 6 7 8 9 10 15
+ bufdo: 3 4 5 6 7
+ tabdo: 2 3 4]=])
+ end)
+end)