From fa6415f13f526220237cff6c6f0055aaad2cdd9e Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Sun, 8 Apr 2018 03:01:15 +0200 Subject: test/API: validate channel arg (#8245) --- test/functional/api/ui_spec.lua | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 test/functional/api/ui_spec.lua (limited to 'test/functional/api/ui_spec.lua') 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) -- cgit From 87f4d2592c2ba164683b1f0f813cf9f029a0abfb Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Wed, 11 Apr 2018 22:07:00 +0200 Subject: test/util: expect_err() (#8257) other cleanup, ref #8245 --- test/functional/api/ui_spec.lua | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'test/functional/api/ui_spec.lua') diff --git a/test/functional/api/ui_spec.lua b/test/functional/api/ui_spec.lua index 32aae5d8f2..b028a50b02 100644 --- a/test/functional/api/ui_spec.lua +++ b/test/functional/api/ui_spec.lua @@ -3,6 +3,8 @@ local Screen = require('test.functional.ui.screen') local clear = helpers.clear local eq = helpers.eq local eval = helpers.eval +local expect_err = helpers.expect_err +local meths = helpers.meths local request = helpers.request describe('nvim_ui_attach()', function() @@ -16,24 +18,20 @@ describe('nvim_ui_attach()', function() 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 .*")) + expect_err('No such UI option: foo', + meths.ui_attach, 80, 24, { foo={'foo'} }) 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') + expect_err('UI not attached to channel: 1', + request, 'nvim_ui_try_resize', 40, 10) + expect_err('UI not attached to channel: 1', + request, 'nvim_ui_set_option', 'rgb', true) + expect_err('UI not attached to channel: 1', + request, 'nvim_ui_detach') 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') + expect_err('UI already attached to channel: 1', + request, 'nvim_ui_attach', 40, 10, { rgb=false }) end) end) -- cgit