neovim/test/functional/legacy/charsearch_spec.lua
dundargoc 052498ed42 test: improve test conventions
Specifically, functions that are run in the context of the test runner
are put in module `test/testutil.lua` while the functions that are run
in the context of the test session are put in
`test/functional/testnvim.lua`.

Closes https://github.com/neovim/neovim/issues/27004.
2024-04-23 18:17:04 +02:00

44 lines
1.1 KiB
Lua

-- Test for character searches
local n = require('test.functional.testnvim')()
local feed, insert = n.feed, n.insert
local clear, feed_command, expect = n.clear, n.feed_command, n.expect
describe('charsearch', function()
setup(clear)
it('is working', function()
insert([[
Xabcdefghijkemnopqretuvwxyz
Yabcdefghijkemnopqretuvwxyz
Zabcdefghijkemnokqretkvwxyz]])
-- Check that "fe" and ";" work.
feed_command('/^X')
feed('ylfep;;p,,p')
-- Check that save/restore works.
feed_command('/^Y')
feed('ylfep')
feed_command('let csave = getcharsearch()')
feed('fip')
feed_command('call setcharsearch(csave)')
feed(';p;p')
-- Check that setcharsearch() changes the settings.
feed_command('/^Z')
feed('ylfep')
feed_command("call setcharsearch({'char': 'k'})")
feed(';p')
feed_command("call setcharsearch({'forward': 0})")
feed('$;p')
feed_command("call setcharsearch({'until': 1})")
feed(';;p')
-- Assert buffer contents.
expect([[
XabcdeXfghijkeXmnopqreXtuvwxyz
YabcdeYfghiYjkeYmnopqreYtuvwxyz
ZabcdeZfghijkZZemnokqretkZvwxyz]])
end)
end)