diff options
Diffstat (limited to 'test/functional/ui')
-rw-r--r-- | test/functional/ui/float_spec.lua | 63 | ||||
-rw-r--r-- | test/functional/ui/screen_basic_spec.lua | 121 | ||||
-rw-r--r-- | test/functional/ui/title_spec.lua | 138 |
3 files changed, 198 insertions, 124 deletions
diff --git a/test/functional/ui/float_spec.lua b/test/functional/ui/float_spec.lua index 28c16642f1..46a079d9ff 100644 --- a/test/functional/ui/float_spec.lua +++ b/test/functional/ui/float_spec.lua @@ -8079,10 +8079,13 @@ describe('float window', function() [6] = {foreground = tonumber('0x332533'), background = tonumber('0xfff1ff')}, [7] = {background = tonumber('0xffcfff'), bold = true, foreground = tonumber('0x0000d8')}, [8] = {background = Screen.colors.LightMagenta, bold = true, foreground = Screen.colors.Blue1}, - [9] = {background = Screen.colors.LightMagenta, blend=30}, - [10] = {foreground = Screen.colors.Red, background = Screen.colors.LightMagenta, blend=0}, - [11] = {foreground = Screen.colors.Red, background = Screen.colors.LightMagenta, blend=80}, - [12] = {background = Screen.colors.LightMagenta, bold = true, foreground = Screen.colors.Blue1, blend=30}, + [9] = {background = Screen.colors.LightMagenta, blend = 30}, + [10] = {foreground = Screen.colors.Red, background = Screen.colors.LightMagenta, blend = 0}, + [11] = {foreground = Screen.colors.Red, background = Screen.colors.LightMagenta, blend = 80}, + [12] = {background = Screen.colors.LightMagenta, bold = true, foreground = Screen.colors.Blue1, blend = 30}, + [13] = {background = Screen.colors.LightGray, blend = 30}, + [14] = {foreground = Screen.colors.Grey0, background = Screen.colors.Grey88}, + [15] = {foreground = tonumber('0x939393'), background = Screen.colors.Grey88}, }) insert([[ Lorem ipsum dolor sit amet, consectetur @@ -8184,6 +8187,58 @@ describe('float window', function() ]]) end + -- Check that 'winblend' works with NormalNC highlight + meths.set_option_value('winhighlight', 'NormalNC:Visual', {win = win}) + if multigrid then + screen:expect{grid=[[ + ## grid 1 + [2:--------------------------------------------------]| + [2:--------------------------------------------------]| + [2:--------------------------------------------------]| + [2:--------------------------------------------------]| + [2:--------------------------------------------------]| + [2:--------------------------------------------------]| + [2:--------------------------------------------------]| + [2:--------------------------------------------------]| + [3:--------------------------------------------------]| + ## grid 2 + Ut enim ad minim veniam, quis nostrud | + exercitation ullamco laboris nisi ut aliquip ex | + ea commodo consequat. Duis aute irure dolor in | + reprehenderit in voluptate velit esse cillum | + dolore eu fugiat nulla pariatur. Excepteur sint | + occaecat cupidatat non proident, sunt in culpa | + qui officia deserunt mollit anim id est | + laborum^. | + ## grid 3 + | + ## grid 5 + {13:test }| + {13: }| + {13:popup text }| + ]], float_pos={ + [5] = {{id = 1002}, "NW", 1, 2, 5, true, 50}; + }} + else + screen:expect([[ + Ut enim ad minim veniam, quis nostrud | + exercitation ullamco laboris nisi ut aliquip ex | + ea co{14:test}{15:o consequat}. Duis aute irure dolor in | + repre{15:henderit in vol}uptate velit esse cillum | + dolor{14:popup}{15:fugi}{14:text}{15:ul}la pariatur. Excepteur sint | + occaecat cupidatat non proident, sunt in culpa | + qui officia deserunt mollit anim id est | + laborum^. | + | + ]]) + end + + -- Also test with global NormalNC highlight + meths.set_option_value('winhighlight', '', {win = win}) + command('hi link NormalNC Visual') + screen:expect_unchanged(true) + command('hi clear NormalNC') + command('hi SpecialRegion guifg=Red blend=0') meths.buf_add_highlight(buf, -1, "SpecialRegion", 2, 0, -1) if multigrid then diff --git a/test/functional/ui/screen_basic_spec.lua b/test/functional/ui/screen_basic_spec.lua index 6b05bd01c2..e1ae76badf 100644 --- a/test/functional/ui/screen_basic_spec.lua +++ b/test/functional/ui/screen_basic_spec.lua @@ -2,12 +2,10 @@ local helpers = require('test.functional.helpers')(after_each) local Screen = require('test.functional.ui.screen') local spawn, set_session, clear = helpers.spawn, helpers.set_session, helpers.clear local feed, command = helpers.feed, helpers.command -local curwin = helpers.curwin local insert = helpers.insert local eq = helpers.eq local eval = helpers.eval -local funcs, meths, exec_lua = helpers.funcs, helpers.meths, helpers.exec_lua -local is_os = helpers.is_os +local funcs, meths = helpers.funcs, helpers.meths describe('screen', function() local screen @@ -120,123 +118,6 @@ local function screen_tests(linegrid) eq(expected, screen.title) end) 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 <F2> <C-R>=setbufvar(]]..buf2..[[, '&autoindent', 1) ? '' : ''<CR>]]) - feed('i<F2><Esc>') - 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) describe(':set icon', function() 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 <F2> <C-R>=setbufvar(]]..buf2..[[, '&autoindent', 1) ? '' : ''<CR>]]) + feed('i<F2><Esc>') + 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) |