aboutsummaryrefslogtreecommitdiff
path: root/test/functional/api/ui_spec.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2018-04-08 03:01:15 +0200
committerGitHub <noreply@github.com>2018-04-08 03:01:15 +0200
commitfa6415f13f526220237cff6c6f0055aaad2cdd9e (patch)
treec1d90c7903dd5a4b7ae45b3a3cca852c9ab6b26a /test/functional/api/ui_spec.lua
parent929a732d006ddd2bac49cf5e555e9e83372a511d (diff)
downloadrneovim-fa6415f13f526220237cff6c6f0055aaad2cdd9e.tar.gz
rneovim-fa6415f13f526220237cff6c6f0055aaad2cdd9e.tar.bz2
rneovim-fa6415f13f526220237cff6c6f0055aaad2cdd9e.zip
test/API: validate channel arg (#8245)
Diffstat (limited to 'test/functional/api/ui_spec.lua')
-rw-r--r--test/functional/api/ui_spec.lua39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/functional/api/ui_spec.lua b/test/functional/api/ui_spec.lua
new file mode 100644
index 0000000000..32aae5d8f2
--- /dev/null
+++ b/test/functional/api/ui_spec.lua
@@ -0,0 +1,39 @@
+local helpers = require('test.functional.helpers')(after_each)
+local Screen = require('test.functional.ui.screen')
+local clear = helpers.clear
+local eq = helpers.eq
+local eval = helpers.eval
+local request = helpers.request
+
+describe('nvim_ui_attach()', function()
+ before_each(function()
+ clear()
+ end)
+ it('handles very large width/height #2180', function()
+ local screen = Screen.new(999, 999)
+ screen:attach()
+ eq(999, eval('&lines'))
+ eq(999, eval('&columns'))
+ end)
+ it('invalid option returns error', function()
+ local screen = Screen.new()
+ local status, rv = pcall(function() screen:attach({foo={'foo'}}) end)
+ eq(false, status)
+ eq('No such UI option', rv:match("No such .*"))
+ end)
+ it('validates channel arg', function()
+ assert.has_error(function() request('nvim_ui_try_resize', 40, 10) end,
+ 'UI not attached to channel: 1')
+ assert.has_error(function() request('nvim_ui_set_option', 'rgb', true) end,
+ 'UI not attached to channel: 1')
+ assert.has_error(function() request('nvim_ui_detach') end,
+ 'UI not attached to channel: 1')
+
+ local screen = Screen.new()
+ screen:attach({rgb=false})
+ assert.has_error(function()
+ request('nvim_ui_attach', 40, 10, { rgb=false })
+ end,
+ 'UI already attached to channel: 1')
+ end)
+end)