diff options
Diffstat (limited to 'test/functional')
| -rw-r--r-- | test/functional/ui/multibyte_spec.lua | 63 | ||||
| -rw-r--r-- | test/functional/viml/function_spec.lua | 11 |
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([[ |