aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ui
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2018-09-20 15:20:40 +0200
committerGitHub <noreply@github.com>2018-09-20 15:20:40 +0200
commite55ebae3734068239c7070dd20ddc34b06c20a7c (patch)
tree0c2470360fb196ba27a0aaeeca6fe077fa58f7aa /test/functional/ui
parent47d74bf32f3b95b28a3ef2a7840989eb9bed7480 (diff)
parent5487624730b60426632326dde41383069754916b (diff)
downloadrneovim-e55ebae3734068239c7070dd20ddc34b06c20a7c.tar.gz
rneovim-e55ebae3734068239c7070dd20ddc34b06c20a7c.tar.bz2
rneovim-e55ebae3734068239c7070dd20ddc34b06c20a7c.zip
Merge pull request #9021 from bfredl/embed_fix
startup: don't erase screen on `:hi Normal` during startup (for non-newgrid UIs)
Diffstat (limited to 'test/functional/ui')
-rw-r--r--test/functional/ui/embed_spec.lua28
-rw-r--r--test/functional/ui/screen.lua16
2 files changed, 38 insertions, 6 deletions
diff --git a/test/functional/ui/embed_spec.lua b/test/functional/ui/embed_spec.lua
index 7d41567fda..afe4db66b3 100644
--- a/test/functional/ui/embed_spec.lua
+++ b/test/functional/ui/embed_spec.lua
@@ -2,11 +2,12 @@ local helpers = require('test.functional.helpers')(after_each)
local Screen = require('test.functional.ui.screen')
local feed = helpers.feed
+local eq = helpers.eq
local spawn, set_session = helpers.spawn, helpers.set_session
local nvim_prog, nvim_set = helpers.nvim_prog, helpers.nvim_set
local merge_args, prepend_argv = helpers.merge_args, helpers.prepend_argv
-describe('--embed UI on startup', function()
+local function test_embed(ext_newgrid)
local session, screen
local function startup(...)
local nvim_argv = {nvim_prog, '-u', 'NONE', '-i', 'NONE',
@@ -17,7 +18,7 @@ describe('--embed UI on startup', function()
-- attach immediately after startup, for early UI
screen = Screen.new(60, 8)
- screen:attach()
+ screen:attach{ext_newgrid=ext_newgrid}
screen:set_default_attr_ids({
[1] = {foreground = Screen.colors.Grey100, background = Screen.colors.Red},
[2] = {bold = true, foreground = Screen.colors.SeaGreen4},
@@ -55,7 +56,7 @@ describe('--embed UI on startup', function()
]])
end)
- it("doesn't erase output when setting colors", function()
+ it("doesn't erase output when setting color scheme", function()
startup('--cmd', 'echoerr "foo"', '--cmd', 'color default', '--cmd', 'echoerr "bar"')
screen:expect([[
|
@@ -68,4 +69,23 @@ describe('--embed UI on startup', function()
{2:Press ENTER or type command to continue}^ |
]])
end)
-end)
+
+ it("doesn't erase output when setting Normal colors", function()
+ startup('--cmd', 'echoerr "foo"', '--cmd', 'hi Normal guibg=Green', '--cmd', 'echoerr "bar"')
+ screen:expect{grid=[[
+ |
+ |
+ |
+ |
+ Error detected while processing pre-vimrc command line: |
+ foo |
+ bar |
+ Press ENTER or type command to continue^ |
+ ]], condition=function()
+ eq(Screen.colors.Green, screen.default_colors.rgb_bg)
+ end}
+ end)
+end
+
+describe('--embed UI on startup (ext_newgrid=true)', function() test_embed(true) end)
+describe('--embed UI on startup (ext_newgrid=false)', function() test_embed(false) end)
diff --git a/test/functional/ui/screen.lua b/test/functional/ui/screen.lua
index b242fddb78..364b65c581 100644
--- a/test/functional/ui/screen.lua
+++ b/test/functional/ui/screen.lua
@@ -183,7 +183,7 @@ end
function Screen:attach(options)
if options == nil then
- options = {rgb=true}
+ options = {}
end
if options.ext_newgrid == nil then
options.ext_newgrid = true
@@ -191,6 +191,11 @@ function Screen:attach(options)
self._options = options
self._clear_attrs = (options.ext_newgrid and {{},{}}) or {}
uimeths.attach(self._width, self._height, options)
+ if self._options.rgb == nil then
+ -- nvim defaults to rgb=true internally,
+ -- simplify test code by doing the same.
+ self._options.rgb = true
+ end
end
function Screen:detach()
@@ -641,7 +646,14 @@ function Screen:_handle_visual_bell()
self.visual_bell = true
end
-function Screen:_handle_default_colors_set()
+function Screen:_handle_default_colors_set(rgb_fg, rgb_bg, rgb_sp, cterm_fg, cterm_bg)
+ self.default_colors = {
+ rgb_fg=rgb_fg,
+ rgb_bg=rgb_bg,
+ rgb_sp=rgb_sp,
+ cterm_fg=cterm_fg,
+ cterm_bg=cterm_bg
+ }
end
function Screen:_handle_update_fg(fg)