From 36baaf7c1aa0bbc9c80f4512bb1384839c8851ff Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Wed, 10 May 2023 00:14:54 +0800 Subject: test: move most title tests to a separate file (#23557) This avoids running title tests twice unnecessarily. --- test/functional/ui/title_spec.lua | 138 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 test/functional/ui/title_spec.lua (limited to 'test/functional/ui/title_spec.lua') diff --git a/test/functional/ui/title_spec.lua b/test/functional/ui/title_spec.lua new file mode 100644 index 0000000000..75ead49f74 --- /dev/null +++ b/test/functional/ui/title_spec.lua @@ -0,0 +1,138 @@ +local helpers = require('test.functional.helpers')(after_each) +local Screen = require('test.functional.ui.screen') +local clear = helpers.clear +local command = helpers.command +local curwin = helpers.curwin +local eq = helpers.eq +local exec_lua = helpers.exec_lua +local feed = helpers.feed +local funcs = helpers.funcs +local meths = helpers.meths +local is_os = helpers.is_os + +describe('title', function() + local screen + + before_each(function() + clear() + screen = Screen.new() + screen:attach() + end) + + it('has correct default title with unnamed file', function() + local expected = '[No Name] - NVIM' + command('set title') + screen:expect(function() + eq(expected, screen.title) + end) + end) + + it('has correct default title with named file', function() + local expected = (is_os('win') and 'myfile (C:\\mydir) - NVIM' or 'myfile (/mydir) - NVIM') + command('set title') + command(is_os('win') and 'file C:\\mydir\\myfile' or 'file /mydir/myfile') + screen:expect(function() + eq(expected, screen.title) + end) + end) + + describe('is not changed by', function() + local file1 = is_os('win') and 'C:\\mydir\\myfile1' or '/mydir/myfile1' + local file2 = is_os('win') and 'C:\\mydir\\myfile2' or '/mydir/myfile2' + local expected = (is_os('win') and 'myfile1 (C:\\mydir) - NVIM' or 'myfile1 (/mydir) - NVIM') + local buf2 + + before_each(function() + command('edit '..file1) + buf2 = funcs.bufadd(file2) + command('set title') + end) + + it('calling setbufvar() to set an option in a hidden buffer from i_CTRL-R', function() + command([[inoremap =setbufvar(]]..buf2..[[, '&autoindent', 1) ? '' : '']]) + feed('i') + command('redraw!') + screen:expect(function() + eq(expected, screen.title) + end) + end) + + it('an RPC call to nvim_buf_set_option in a hidden buffer', function() + meths.buf_set_option(buf2, 'autoindent', true) + command('redraw!') + screen:expect(function() + eq(expected, screen.title) + end) + end) + + it('a Lua callback calling nvim_buf_set_option in a hidden buffer', function() + exec_lua(string.format([[ + vim.schedule(function() + vim.api.nvim_buf_set_option(%d, 'autoindent', true) + end) + ]], buf2)) + command('redraw!') + screen:expect(function() + eq(expected, screen.title) + end) + end) + + it('a Lua callback calling nvim_buf_call in a hidden buffer', function() + exec_lua(string.format([[ + vim.schedule(function() + vim.api.nvim_buf_call(%d, function() end) + end) + ]], buf2)) + command('redraw!') + screen:expect(function() + eq(expected, screen.title) + end) + end) + + it('setting the buffer of another window using RPC', function() + local oldwin = curwin().id + command('split') + meths.win_set_buf(oldwin, buf2) + command('redraw!') + screen:expect(function() + eq(expected, screen.title) + end) + end) + + it('setting the buffer of another window using Lua callback', function() + local oldwin = curwin().id + command('split') + exec_lua(string.format([[ + vim.schedule(function() + vim.api.nvim_win_set_buf(%d, %d) + end) + ]], oldwin, buf2)) + command('redraw!') + screen:expect(function() + eq(expected, screen.title) + end) + end) + + it('creating a floating window using RPC', function() + meths.open_win(buf2, false, { + relative = 'editor', width = 5, height = 5, row = 0, col = 0, + }) + command('redraw!') + screen:expect(function() + eq(expected, screen.title) + end) + end) + + it('creating a floating window using Lua callback', function() + exec_lua(string.format([[ + vim.api.nvim_open_win(%d, false, { + relative = 'editor', width = 5, height = 5, row = 0, col = 0, + }) + ]], buf2)) + command('redraw!') + screen:expect(function() + eq(expected, screen.title) + end) + end) + end) +end) -- cgit From 1fe1bb084d0099fc4f9bfdc11189485d0f74b75a Mon Sep 17 00:00:00 2001 From: Lewis Russell Date: Mon, 19 Dec 2022 16:37:45 +0000 Subject: refactor(options): deprecate nvim[_buf|_win]_[gs]et_option Co-authored-by: zeertzjq Co-authored-by: famiu --- test/functional/ui/title_spec.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'test/functional/ui/title_spec.lua') diff --git a/test/functional/ui/title_spec.lua b/test/functional/ui/title_spec.lua index 75ead49f74..2247d2e80f 100644 --- a/test/functional/ui/title_spec.lua +++ b/test/functional/ui/title_spec.lua @@ -57,18 +57,18 @@ describe('title', function() end) end) - it('an RPC call to nvim_buf_set_option in a hidden buffer', function() - meths.buf_set_option(buf2, 'autoindent', true) + it('an RPC call to nvim_set_option_value in a hidden buffer', function() + meths.set_option_value('autoindent', true, { buf = buf2 }) command('redraw!') screen:expect(function() eq(expected, screen.title) end) end) - it('a Lua callback calling nvim_buf_set_option in a hidden buffer', function() + it('a Lua callback calling nvim_set_option_value in a hidden buffer', function() exec_lua(string.format([[ vim.schedule(function() - vim.api.nvim_buf_set_option(%d, 'autoindent', true) + vim.api.nvim_set_option_value('autoindent', true, { buf = %d }) end) ]], buf2)) command('redraw!') -- cgit From 893437512c51fb31b4f99b90357e2b15e5b0c73b Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Mon, 21 Aug 2023 16:14:54 +0800 Subject: vim-patch:8.2.4208: using setbufvar() may change the window title Problem: Using setbufvar() may change the window title. Solution: Do not redraw when creating the autocommand window. (closes vim/vim#9613) https://github.com/vim/vim/commit/dff97e65eb1bb24c44c2b7430a480888d8afb3f4 Co-authored-by: Bram Moolenaar --- test/functional/ui/title_spec.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/functional/ui/title_spec.lua') diff --git a/test/functional/ui/title_spec.lua b/test/functional/ui/title_spec.lua index 2247d2e80f..66c0ff5c9c 100644 --- a/test/functional/ui/title_spec.lua +++ b/test/functional/ui/title_spec.lua @@ -49,7 +49,7 @@ describe('title', function() end) it('calling setbufvar() to set an option in a hidden buffer from i_CTRL-R', function() - command([[inoremap =setbufvar(]]..buf2..[[, '&autoindent', 1) ? '' : '']]) + command([[inoremap =setbufvar(]]..buf2..[[, '&autoindent', 1) ?? '']]) feed('i') command('redraw!') screen:expect(function() -- cgit