aboutsummaryrefslogtreecommitdiff
path: root/test/functional/plugin
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/plugin')
-rw-r--r--test/functional/plugin/health_spec.lua86
-rw-r--r--test/functional/plugin/helpers.lua2
-rw-r--r--test/functional/plugin/matchparen_spec.lua26
-rw-r--r--test/functional/plugin/msgpack_spec.lua4
-rw-r--r--test/functional/plugin/shada_spec.lua53
5 files changed, 147 insertions, 24 deletions
diff --git a/test/functional/plugin/health_spec.lua b/test/functional/plugin/health_spec.lua
new file mode 100644
index 0000000000..52dc008707
--- /dev/null
+++ b/test/functional/plugin/health_spec.lua
@@ -0,0 +1,86 @@
+local helpers = require('test.functional.helpers')(after_each)
+local plugin_helpers = require('test.functional.plugin.helpers')
+
+describe('health.vim', function()
+ before_each(function()
+ plugin_helpers.reset()
+ -- Provides functions:
+ -- health#broken#check()
+ -- health#success1#check()
+ -- health#success2#check()
+ helpers.execute("set runtimepath+=test/functional/fixtures")
+ end)
+
+ it("reports", function()
+ helpers.source([[
+ let g:health_report = execute([
+ \ "call health#report_start('Check Bar')",
+ \ "call health#report_ok('Bar status')",
+ \ "call health#report_ok('Other Bar status')",
+ \ "call health#report_warn('Zub')",
+ \ "call health#report_start('Baz')",
+ \ "call health#report_warn('Zim', ['suggestion 1', 'suggestion 2'])"
+ \ ])
+ ]])
+ local result = helpers.eval("g:health_report")
+
+ helpers.eq(helpers.dedent([[
+
+
+ ## Check Bar
+ - SUCCESS: Bar status
+ - SUCCESS: Other Bar status
+ - WARNING: Zub
+
+ ## Baz
+ - WARNING: Zim
+ - SUGGESTIONS:
+ - suggestion 1
+ - suggestion 2]]),
+ result)
+ end)
+
+
+ describe(":CheckHealth", function()
+ it("concatenates multiple reports", function()
+ helpers.execute("CheckHealth success1 success2")
+ helpers.expect([[
+
+ health#success1#check
+ ========================================================================
+ ## report 1
+ - SUCCESS: everything is fine
+
+ ## report 2
+ - SUCCESS: nothing to see here
+
+ health#success2#check
+ ========================================================================
+ ## another 1
+ - SUCCESS: ok
+ ]])
+ end)
+
+ it("gracefully handles broken healthcheck", function()
+ helpers.execute("CheckHealth broken")
+ helpers.expect([[
+
+ health#broken#check
+ ========================================================================
+ - ERROR: Failed to run healthcheck for "broken" plugin. Exception:
+ function health#check[20]..health#broken#check, line 1
+ caused an error
+ ]])
+ end)
+
+ it("gracefully handles invalid healthcheck", function()
+ helpers.execute("CheckHealth non_existent_healthcheck")
+ helpers.expect([[
+
+ health#non_existent_healthcheck#check
+ ========================================================================
+ - ERROR: No healthcheck found for "non_existent_healthcheck" plugin.
+ ]])
+ end)
+ end)
+end)
diff --git a/test/functional/plugin/helpers.lua b/test/functional/plugin/helpers.lua
index 5b6ea88c34..7580670149 100644
--- a/test/functional/plugin/helpers.lua
+++ b/test/functional/plugin/helpers.lua
@@ -1,6 +1,6 @@
local paths = require('test.config.paths')
-local helpers = require('test.functional.helpers')
+local helpers = require('test.functional.helpers')(nil)
local spawn, set_session, nvim_prog, merge_args =
helpers.spawn, helpers.set_session, helpers.nvim_prog, helpers.merge_args
diff --git a/test/functional/plugin/matchparen_spec.lua b/test/functional/plugin/matchparen_spec.lua
index d8c1f2d392..3e1ab70daf 100644
--- a/test/functional/plugin/matchparen_spec.lua
+++ b/test/functional/plugin/matchparen_spec.lua
@@ -1,20 +1,30 @@
-local helpers = require('test.functional.helpers')
+local helpers = require('test.functional.helpers')(after_each)
+local plugin_helpers = require('test.functional.plugin.helpers')
local Screen = require('test.functional.ui.screen')
-local clear, feed, execute = helpers.clear, helpers.feed, helpers.execute
-describe('matchparen', function()
+local execute = helpers.execute
+local meths = helpers.meths
+local feed = helpers.feed
+local eq = helpers.eq
+
+local reset = plugin_helpers.reset
+
+describe('matchparen', function()
local screen
before_each(function()
- clear()
+ reset()
screen = Screen.new(20,5)
screen:attach()
- screen:set_default_attr_ignore( {{bold=true, foreground=Screen.colors.Blue}} )
+ screen:set_default_attr_ids( {
+ [0] = {bold=true, foreground=255},
+ [1] = {bold=true},
+ } )
end)
it('uses correct column after i_<Up>. Vim patch 7.4.1296', function()
- execute('set noai nosi nocin')
- execute('runtime plugin/matchparen.vim')
+ execute('set noautoindent nosmartindent nocindent laststatus=0')
+ eq(1, meths.get_var('loaded_matchparen'))
feed('ivoid f_test()<cr>')
feed('{<cr>')
feed('}')
@@ -30,7 +40,7 @@ describe('matchparen', function()
^ |
} |
{1:-- INSERT --} |
- ]], {[1] = {bold = true}})
+ ]])
end)
end)
diff --git a/test/functional/plugin/msgpack_spec.lua b/test/functional/plugin/msgpack_spec.lua
index 60ba88e55b..5ba19708cf 100644
--- a/test/functional/plugin/msgpack_spec.lua
+++ b/test/functional/plugin/msgpack_spec.lua
@@ -1,4 +1,4 @@
-local helpers = require('test.functional.helpers')
+local helpers = require('test.functional.helpers')(after_each)
local meths = helpers.meths
local eq, nvim_eval, nvim_command, exc_exec =
helpers.eq, helpers.eval, helpers.command, helpers.exc_exec
@@ -652,6 +652,8 @@ describe('In autoload/msgpack.vim', function()
eval_eq('integer', ('a'):byte(), '\'a\'')
eval_eq('integer', 0xAB, '\'«\'')
+ eval_eq('integer', 0, '\'\\0\'')
+ eval_eq('integer', 10246567, '\'\\10246567\'')
end)
it('correctly loads constants', function()
diff --git a/test/functional/plugin/shada_spec.lua b/test/functional/plugin/shada_spec.lua
index aad0e366bf..b543037ae2 100644
--- a/test/functional/plugin/shada_spec.lua
+++ b/test/functional/plugin/shada_spec.lua
@@ -1,4 +1,4 @@
-local helpers = require('test.functional.helpers')
+local helpers = require('test.functional.helpers')(after_each)
local eq, nvim_eval, nvim_command, nvim, exc_exec, funcs, nvim_feed, curbuf =
helpers.eq, helpers.eval, helpers.command, helpers.nvim, helpers.exc_exec,
helpers.funcs, helpers.feed, helpers.curbuf
@@ -43,6 +43,8 @@ local wshada, _, fname = get_shada_rw('Xtest-functional-plugin-shada.shada')
local wshada_tmp, _, fname_tmp =
get_shada_rw('Xtest-functional-plugin-shada.shada.tmp.f')
+if helpers.pending_win32(pending) then return end
+
describe('In autoload/shada.vim', function()
local epoch = os.date('%Y-%m-%dT%H:%M:%S', 0)
before_each(function()
@@ -607,6 +609,18 @@ describe('In autoload/shada.vim', function()
'abc',
-1,
]}] ]]):gsub('\n', ''))
+ -- Regression: NUL separator must be properly supported
+ sd2strings_eq({
+ 'History entry with timestamp ' .. epoch .. ':',
+ ' @ Description_ Value',
+ ' - history type SEARCH',
+ ' - contents ""',
+ ' - separator \'\\0\'',
+ }, ([[ [{'type': 4, 'timestamp': 0, 'data': [
+ 1,
+ '',
+ 0x0
+ ]}] ]]):gsub('\n', ''))
end)
it('works with register items', function()
@@ -835,7 +849,7 @@ describe('In autoload/shada.vim', function()
sd2strings_eq({
'Global mark with timestamp ' .. epoch .. ':',
' % Key Description Value',
- ' + n name 20',
+ ' + n name \'\\20\'',
' + f file name "foo"',
' # Value is negative',
' + l line number -10',
@@ -850,7 +864,18 @@ describe('In autoload/shada.vim', function()
sd2strings_eq({
'Global mark with timestamp ' .. epoch .. ':',
' % Key Description Value',
- ' + n name 20',
+ ' + n name 128',
+ ' + f file name "foo"',
+ ' + l line number 1',
+ ' + c column 0',
+ }, ([[ [{'type': 7, 'timestamp': 0, 'data': {
+ 'n': 128,
+ 'f': 'foo',
+ }}] ]]):gsub('\n', ''))
+ sd2strings_eq({
+ 'Global mark with timestamp ' .. epoch .. ':',
+ ' % Key Description Value',
+ ' + n name \'\\20\'',
' + f file name "foo"',
' # Expected integer',
' + l line number "FOO"',
@@ -1121,7 +1146,7 @@ describe('In autoload/shada.vim', function()
'Local mark with timestamp ' .. epoch .. ':',
' % Key Description Value',
' + f file name "foo"',
- ' + n name 20',
+ ' + n name \'\\20\'',
' # Value is negative',
' + l line number -10',
' # Value is negative',
@@ -1136,7 +1161,7 @@ describe('In autoload/shada.vim', function()
'Local mark with timestamp ' .. epoch .. ':',
' % Key Description Value',
' + f file name "foo"',
- ' + n name 20',
+ ' + n name \'\\20\'',
' # Expected integer',
' + l line number "FOO"',
' # Expected integer',
@@ -1930,13 +1955,13 @@ describe('In autoload/shada.vim', function()
'Buffer list with timestamp ' .. epoch .. ':',
' % Key Description Value',
' # Expected binary string',
- ' + f file name 10',
+ ' + f file name \'\\10\'',
' + l line number 1',
' + c column 0',
'',
' % Key Description Value',
' # Expected binary string',
- ' + f file name 20',
+ ' + f file name \'\\20\'',
' + l line number 1',
' + c column 0',
})
@@ -1946,7 +1971,7 @@ describe('In autoload/shada.vim', function()
'Buffer list with timestamp ' .. epoch .. ':',
' % Key Description Value',
' # Expected binary string',
- ' + f file name 10',
+ ' + f file name \'\\10\'',
' + l line number 1',
' + c column 0',
'',
@@ -2461,17 +2486,17 @@ describe('ftplugin/shada.vim', function()
nvim_command('setlocal filetype=shada')
funcs.setline(1, ' Replacement with timestamp ' .. epoch)
nvim_feed('ggA:\027')
- eq('Replacement with timestamp ' .. epoch .. ':', curbuf('get_line', 0))
+ eq('Replacement with timestamp ' .. epoch .. ':', curbuf('get_lines', 0, 1, true)[1])
nvim_feed('o-\027')
- eq(' -', curbuf('get_line', 1))
+ eq({' -'}, curbuf('get_lines', 1, 2, true))
nvim_feed('ggO+\027')
- eq('+', curbuf('get_line', 0))
+ eq({'+'}, curbuf('get_lines', 0, 1, true))
nvim_feed('GO*\027')
- eq(' *', curbuf('get_line', 2))
+ eq({' *'}, curbuf('get_lines', 2, 3, true))
nvim_feed('ggO /\027')
- eq(' /', curbuf('get_line', 0))
+ eq({' /'}, curbuf('get_lines', 0, 1, true))
nvim_feed('ggOx\027')
- eq('x', curbuf('get_line', 0))
+ eq({'x'}, curbuf('get_lines', 0, 1, true))
end)
end)