aboutsummaryrefslogtreecommitdiff
path: root/test/functional
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional')
-rw-r--r--test/functional/ui/multibyte_spec.lua63
-rw-r--r--test/functional/viml/function_spec.lua11
2 files changed, 66 insertions, 8 deletions
diff --git a/test/functional/ui/multibyte_spec.lua b/test/functional/ui/multibyte_spec.lua
index 278480ec4f..3e63353ad2 100644
--- a/test/functional/ui/multibyte_spec.lua
+++ b/test/functional/ui/multibyte_spec.lua
@@ -1,6 +1,7 @@
local helpers = require('test.functional.helpers')(after_each)
local Screen = require('test.functional.ui.screen')
local clear = helpers.clear
+local command = helpers.command
local feed = helpers.feed
local feed_command = helpers.feed_command
local insert = helpers.insert
@@ -120,3 +121,65 @@ describe("multibyte rendering", function()
end)
end)
+describe('multibyte rendering: statusline', function()
+ local screen
+
+ before_each(function()
+ clear()
+ screen = Screen.new(40, 4)
+ screen:attach()
+ command('set laststatus=2')
+ end)
+
+ after_each(function()
+ screen:detach()
+ end)
+
+ it('last char shows (multibyte)', function()
+ command('set statusline=你好')
+ screen:expect([[
+ ^ |
+ ~ |
+ 你好 |
+ |
+ ]])
+ end)
+ it('last char shows (single byte)', function()
+ command('set statusline=abc')
+ screen:expect([[
+ ^ |
+ ~ |
+ abc |
+ |
+ ]])
+ end)
+ it('unicode control points', function()
+ command('set statusline=Ÿ')
+ screen:expect([[
+ ^ |
+ ~ |
+ <9f> |
+ |
+ ]])
+ end)
+ it('MAX_MCO (6) unicode combination points', function()
+ command('set statusline=o̸⃯ᷰ⃐⃧⃝')
+ -- o + U+1DF0 + U+20EF + U+0338 + U+20D0 + U+20E7 + U+20DD
+ screen:expect([[
+ ^ |
+ ~ |
+ o̸⃯ᷰ⃐⃧⃝ |
+ |
+ ]])
+ end)
+ it('non-printable followed by MAX_MCO unicode combination points', function()
+ command('set statusline=Ÿ̸⃯ᷰ⃐⃧⃝')
+ -- U+9F + U+1DF0 + U+20EF + U+0338 + U+20D0 + U+20E7 + U+20DD
+ screen:expect([[
+ ^ |
+ ~ |
+ <9f><1df0><20ef><0338><20d0><20e7><20dd>|
+ |
+ ]])
+ end)
+end)
diff --git a/test/functional/viml/function_spec.lua b/test/functional/viml/function_spec.lua
index 0cf92f7d40..b8137038b1 100644
--- a/test/functional/viml/function_spec.lua
+++ b/test/functional/viml/function_spec.lua
@@ -2,16 +2,11 @@ local helpers = require('test.functional.helpers')(after_each)
local eq = helpers.eq
local clear = helpers.clear
-local funcs = helpers.funcs
local dedent = helpers.dedent
local redir_exec = helpers.redir_exec
before_each(clear)
-local function check_nofunc(fname)
- eq(0, funcs.exists('*' .. fname))
-end
-
local function check_func(fname, body, indent)
if type(body) == 'number' then
body = ('return %i'):format(body)
@@ -141,12 +136,12 @@ describe(':endfunction', function()
]]))
check_func('F1', 42)
end)
- it('errors out on an uncommented bar', function()
- eq('\nE488: Trailing characters: | echo 42', redir_exec([[
+ it('accepts uncommented bar', function()
+ eq('\n42', redir_exec([[
function F1()
endfunction | echo 42
]]))
- check_nofunc('F1')
+ check_func('F1')
end)
it('allows running multiple commands', function()
eq('\n2', redir_exec([[