aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ui/multigrid_spec.lua
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2018-11-18 10:00:27 +0100
committerBjörn Linse <bjorn.linse@gmail.com>2018-12-31 16:24:07 +0100
commit44b8e58f33f82ca1a7c5dbb879a688e317026040 (patch)
tree71b3a12d9580dd59f93bf8c815af7b9e46c7552f /test/functional/ui/multigrid_spec.lua
parented3da23cf45f5484e6c62fac9a4d3f2986fc20d5 (diff)
downloadrneovim-44b8e58f33f82ca1a7c5dbb879a688e317026040.tar.gz
rneovim-44b8e58f33f82ca1a7c5dbb879a688e317026040.tar.bz2
rneovim-44b8e58f33f82ca1a7c5dbb879a688e317026040.zip
multigrid: add tests for multiline messages and tabs
Diffstat (limited to 'test/functional/ui/multigrid_spec.lua')
-rw-r--r--test/functional/ui/multigrid_spec.lua533
1 files changed, 529 insertions, 4 deletions
diff --git a/test/functional/ui/multigrid_spec.lua b/test/functional/ui/multigrid_spec.lua
index fcc736651f..336ad5a668 100644
--- a/test/functional/ui/multigrid_spec.lua
+++ b/test/functional/ui/multigrid_spec.lua
@@ -4,9 +4,6 @@ local spawn, set_session = helpers.spawn, helpers.set_session
local feed, command, insert = helpers.feed, helpers.command, helpers.insert
local eq = helpers.eq
--- Note 1:
--- Global grid i.e. "grid 1" shows some unwanted elements because they are
--- not cleared when they are expected to be drawn over by window grids.
describe('multigrid screen', function()
local screen
@@ -33,8 +30,13 @@ describe('multigrid screen', function()
[11] = {bold = true, reverse = true},
[12] = {reverse = true},
[13] = {foreground = Screen.colors.DarkBlue, background = Screen.colors.LightGrey},
+ [14] = {foreground = Screen.colors.Grey100, background = Screen.colors.Red},
+ [15] = {bold = true, foreground = Screen.colors.SeaGreen4},
+ [16] = {background = Screen.colors.LightGrey, underline = true},
+ [17] = {background = Screen.colors.LightGrey, underline = true, bold = true, foreground = Screen.colors.Magenta},
+ [18] = {bold = true, foreground = Screen.colors.Magenta},
+ [19] = {foreground = Screen.colors.Brown},
})
- screen.win_position = {}
end)
after_each(function()
@@ -826,6 +828,7 @@ describe('multigrid screen', function()
end)
end)
+
describe('with resized grid', function()
before_each(function()
screen:try_resize_grid(2, 60, 20)
@@ -1000,4 +1003,526 @@ describe('multigrid screen', function()
]])
end)
end)
+
+ it('multiline messages scroll over windows', function()
+ command('sp')
+ command('vsp')
+ screen:expect([[
+ ## grid 1
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ {11:[No Name] }{12:[No Name] }|
+ [2:-----------------------------------------------------]|
+ [2:-----------------------------------------------------]|
+ [2:-----------------------------------------------------]|
+ [2:-----------------------------------------------------]|
+ [2:-----------------------------------------------------]|
+ {12:[No Name] }|
+ |
+ ## grid 2
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 3
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 4
+ ^ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ]])
+
+ feed(":echoerr 'very' | echoerr 'much' | echoerr 'fail'<cr>")
+ screen:expect([[
+ ## grid 1
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ {11:[No Name] }{12:[No Name] }|
+ [2:-----------------------------------------------------]|
+ [2:-----------------------------------------------------]|
+ {11: }|
+ {14:very} |
+ {14:much} |
+ {14:fail} |
+ {15:Press ENTER or type command to continue}^ |
+ ## grid 2
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 3
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 4
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ]])
+
+ feed('<cr>')
+ screen:expect([[
+ ## grid 1
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ {11:[No Name] }{12:[No Name] }|
+ [2:-----------------------------------------------------]|
+ [2:-----------------------------------------------------]|
+ [2:-----------------------------------------------------]|
+ [2:-----------------------------------------------------]|
+ [2:-----------------------------------------------------]|
+ {12:[No Name] }|
+ |
+ ## grid 2
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 3
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 4
+ ^ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ]])
+
+ command([[
+ func! ErrMsg()
+ for i in range(12)
+ echoerr "error ".i
+ endfor
+ endfunc]])
+ feed(":call ErrMsg()<cr>")
+ screen:expect([[
+ ## grid 1
+ {14:Error detected while processing function ErrMsg:} |
+ {19:line 2:} |
+ {14:error 0} |
+ {14:error 1} |
+ {14:error 2} |
+ {14:error 3} |
+ {14:error 4} |
+ {14:error 5} |
+ {14:error 6} |
+ {14:error 7} |
+ {14:error 8} |
+ {14:error 9} |
+ {14:error 10} |
+ {15:-- More --}^ |
+ ## grid 2
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 3
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 4
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ]])
+
+ feed("<c-c>")
+ screen:expect([[
+ ## grid 1
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ [4:--------------------------]{12:│}[3:--------------------------]|
+ {11:[No Name] }{12:[No Name] }|
+ [2:-----------------------------------------------------]|
+ [2:-----------------------------------------------------]|
+ [2:-----------------------------------------------------]|
+ [2:-----------------------------------------------------]|
+ [2:-----------------------------------------------------]|
+ {12:[No Name] }|
+ |
+ ## grid 2
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 3
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 4
+ ^ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ]])
+ end)
+
+ it('handles switich tabs', function()
+ command('vsp')
+ screen:expect([[
+ ## grid 1
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ {11:[No Name] }{12:[No Name] }|
+ |
+ ## grid 2
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 3
+ ^ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ]])
+
+
+ command('tabnew')
+ -- note the old grids aren't resized yet
+ screen:expect([[
+ ## grid 1
+ {16: }{17:2}{16: [No Name] }{7: [No Name] }{12: }{16:X}|
+ [4:-----------------------------------------------------]|
+ [4:-----------------------------------------------------]|
+ [4:-----------------------------------------------------]|
+ [4:-----------------------------------------------------]|
+ [4:-----------------------------------------------------]|
+ [4:-----------------------------------------------------]|
+ [4:-----------------------------------------------------]|
+ [4:-----------------------------------------------------]|
+ [4:-----------------------------------------------------]|
+ [4:-----------------------------------------------------]|
+ [4:-----------------------------------------------------]|
+ {11:[No Name] }|
+ |
+ ## grid 2
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 3
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 4
+ ^ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ]])
+
+ command('sp')
+ screen:expect([[
+ ## grid 1
+ {16: }{17:2}{16: [No Name] }{7: }{18:2}{7: [No Name] }{12: }{16:X}|
+ [5:-----------------------------------------------------]|
+ [5:-----------------------------------------------------]|
+ [5:-----------------------------------------------------]|
+ [5:-----------------------------------------------------]|
+ [5:-----------------------------------------------------]|
+ {11:[No Name] }|
+ [4:-----------------------------------------------------]|
+ [4:-----------------------------------------------------]|
+ [4:-----------------------------------------------------]|
+ [4:-----------------------------------------------------]|
+ [4:-----------------------------------------------------]|
+ {12:[No Name] }|
+ |
+ ## grid 2
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 3
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 4
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 5
+ ^ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ]])
+
+ command('tabnext')
+ screen:expect([[
+ ## grid 1
+ {7: }{18:2}{7: [No Name] }{16: }{17:2}{16: [No Name] }{12: }{16:X}|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ {11:[No Name] }{12:[No Name] }|
+ |
+ ## grid 2
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 3
+ ^ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 4
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 5
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ]])
+
+ command('tabnext')
+ screen:expect([[
+ ## grid 1
+ {16: }{17:2}{16: [No Name] }{7: }{18:2}{7: [No Name] }{12: }{16:X}|
+ [5:-----------------------------------------------------]|
+ [5:-----------------------------------------------------]|
+ [5:-----------------------------------------------------]|
+ [5:-----------------------------------------------------]|
+ [5:-----------------------------------------------------]|
+ {11:[No Name] }|
+ [4:-----------------------------------------------------]|
+ [4:-----------------------------------------------------]|
+ [4:-----------------------------------------------------]|
+ [4:-----------------------------------------------------]|
+ [4:-----------------------------------------------------]|
+ {12:[No Name] }|
+ |
+ ## grid 2
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 3
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 4
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 5
+ ^ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ]])
+
+ command('tabclose')
+ screen:expect([[
+ ## grid 1
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ [3:--------------------------]{12:│}[2:--------------------------]|
+ {11:[No Name] }{12:[No Name] }|
+ |
+ ## grid 2
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ## grid 3
+ ^ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ]])
+ end)
end)