aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/functional/ex_cmds/oldfiles_spec.lua49
1 files changed, 49 insertions, 0 deletions
diff --git a/test/functional/ex_cmds/oldfiles_spec.lua b/test/functional/ex_cmds/oldfiles_spec.lua
new file mode 100644
index 0000000000..fedf5babe8
--- /dev/null
+++ b/test/functional/ex_cmds/oldfiles_spec.lua
@@ -0,0 +1,49 @@
+local h = require('test.functional.helpers')
+
+local buf = h.curbufmeths
+local command = h.command
+local eq = h.eq
+local execute = h.execute
+local feed = h.feed
+local nvim = h.nvim
+
+local shada_file = 'test.shada'
+
+-- h.clear() uses "-i NONE", which is not useful for this test.
+local function clear()
+ if session then
+ session:exit(0)
+ end
+ h.set_session(h.spawn({h.nvim_prog,
+ '-u', 'NONE',
+ '--cmd', 'set noswapfile undodir=. directory=. viewdir=. backupdir=.',
+ '--embed'}))
+end
+
+describe(':oldfiles', function()
+ before_each(clear)
+
+ it('shows most recently used files', function()
+ command('edit testfile1')
+ command('edit testfile2')
+ command('wshada ' .. shada_file)
+ command('rshada! ' .. shada_file)
+ assert(string.find(nvim('command_output', 'oldfiles'), 'testfile2'))
+ os.remove(shada_file)
+ end)
+end)
+
+describe(':oldfiles!', function()
+ it('provides a file selection prompt and edits the chosen file', function()
+ command('edit testfile1')
+ command('edit testfile2')
+ local filename = buf.get_name()
+ command('wshada ' .. shada_file)
+ clear()
+ command('rshada! ' .. shada_file)
+ execute('oldfiles!')
+ feed('2<cr>')
+ eq(filename, buf.get_name())
+ os.remove(shada_file)
+ end)
+end)