test: api: exercise out-of-bounds line slicing

This commit is contained in:
Nick Hynes 2015-07-06 20:00:23 -04:00 committed by Justin M. Keyes
parent 7475c1c0f7
commit c2f14bb89c

View File

@ -29,8 +29,14 @@ describe('buffer_* functions', function()
eq('', curbuf('get_line', 0)) eq('', curbuf('get_line', 0))
curbuf('set_line', 0, 'line1') curbuf('set_line', 0, 'line1')
eq('line1', curbuf('get_line', 0)) eq('line1', curbuf('get_line', 0))
eq('', curbuf('get_line', 1))
eq('', curbuf('get_line', -2))
eq(false, pcall(function() curbuf('set_line', 1) end))
eq(false, pcall(function() curbuf('set_line', -2) end))
curbuf('set_line', 0, 'line2') curbuf('set_line', 0, 'line2')
eq('line2', curbuf('get_line', 0)) eq('line2', curbuf('get_line', 0))
eq(false, pcall(function() curbuf('del_line', 2) end))
eq(false, pcall(function() curbuf('del_line', -3) end))
curbuf('del_line', 0) curbuf('del_line', 0)
eq('', curbuf('get_line', 0)) eq('', curbuf('get_line', 0))
end) end)
@ -54,6 +60,15 @@ describe('buffer_* functions', function()
eq({'a', 'b'}, curbuf('get_line_slice', 0, -1, true, false)) eq({'a', 'b'}, curbuf('get_line_slice', 0, -1, true, false))
eq({'b'}, curbuf('get_line_slice', 1, -1, true, false)) eq({'b'}, curbuf('get_line_slice', 1, -1, true, false))
eq({'b', 'c'}, curbuf('get_line_slice', -2, -1, true, true)) eq({'b', 'c'}, curbuf('get_line_slice', -2, -1, true, true))
eq({}, curbuf('get_line_slice', 2, 3, false, true))
eq({}, curbuf('get_line_slice', 3, 9, true, true))
eq({}, curbuf('get_line_slice', 3, -1, true, true))
eq({}, curbuf('get_line_slice', -3, -4, false, true))
eq({}, curbuf('get_line_slice', -4, -5, true, true))
eq({'c'}, curbuf('get_line_slice', -1, 4, true, true))
eq({'a', 'b', 'c'}, curbuf('get_line_slice', 0, 5, true, true))
eq(false, pcall(function() curbuf('set_line_slice', 4, 5, true, true, {'d'}) end))
eq(false, pcall(function() curbuf('set_line_slice', -4, -5, true, true, {'d'}) end))
curbuf('set_line_slice', 1, 2, true, false, {'a', 'b', 'c'}) curbuf('set_line_slice', 1, 2, true, false, {'a', 'b', 'c'})
eq({'a', 'a', 'b', 'c', 'c'}, curbuf('get_line_slice', 0, -1, true, true)) eq({'a', 'a', 'b', 'c', 'c'}, curbuf('get_line_slice', 0, -1, true, true))
curbuf('set_line_slice', -1, -1, true, true, {'a', 'b', 'c'}) curbuf('set_line_slice', -1, -1, true, true, {'a', 'b', 'c'})