aboutsummaryrefslogtreecommitdiff
path: root/test/functional/provider
diff options
context:
space:
mode:
authorJames McCoy <jamessan@jamessan.com>2018-03-28 21:52:06 -0400
committerJames McCoy <jamessan@jamessan.com>2018-03-28 21:54:39 -0400
commit79f9c2d9c650ceab27cdc6707fd6d7fa1de29fc1 (patch)
tree4e0589d75801f3ff6a9678f84f5009102766661e /test/functional/provider
parent4403864da3c48412595d439f36458d1e6ccfc49f (diff)
parent3f3de9b1a95d273463a87516365510dbffcaf3d2 (diff)
downloadrneovim-79f9c2d9c650ceab27cdc6707fd6d7fa1de29fc1.tar.gz
rneovim-79f9c2d9c650ceab27cdc6707fd6d7fa1de29fc1.tar.bz2
rneovim-79f9c2d9c650ceab27cdc6707fd6d7fa1de29fc1.zip
Merge branch 'master' into yagebu/option-fixes
Diffstat (limited to 'test/functional/provider')
-rw-r--r--test/functional/provider/nodejs_spec.lua61
-rw-r--r--test/functional/provider/python3_spec.lua26
-rw-r--r--test/functional/provider/python_spec.lua7
-rw-r--r--test/functional/provider/ruby_spec.lua26
4 files changed, 100 insertions, 20 deletions
diff --git a/test/functional/provider/nodejs_spec.lua b/test/functional/provider/nodejs_spec.lua
new file mode 100644
index 0000000000..0a12b1a154
--- /dev/null
+++ b/test/functional/provider/nodejs_spec.lua
@@ -0,0 +1,61 @@
+local helpers = require('test.functional.helpers')(after_each)
+local eq, clear = helpers.eq, helpers.clear
+local missing_provider = helpers.missing_provider
+local command = helpers.command
+local write_file = helpers.write_file
+local eval = helpers.eval
+local retry = helpers.retry
+
+do
+ clear()
+ if missing_provider('node') then
+ pending("Missing nodejs host, or nodejs version is too old.", function()end)
+ return
+ end
+end
+
+before_each(function()
+ clear()
+ command([[let $NODE_PATH = get(split(system('npm root -g'), "\n"), 0, '')]])
+end)
+
+describe('nodejs host', function()
+ teardown(function ()
+ os.remove('Xtest-nodejs-hello.js')
+ os.remove('Xtest-nodejs-hello-plugin.js')
+ end)
+
+ it('works', function()
+ local fname = 'Xtest-nodejs-hello.js'
+ write_file(fname, [[
+ const socket = process.env.NVIM_LISTEN_ADDRESS;
+ const neovim = require('neovim');
+ const nvim = neovim.attach({socket: socket});
+ nvim.command('let g:job_out = "hello"');
+ nvim.command('call jobstop(g:job_id)');
+ ]])
+ command('let g:job_id = jobstart(["node", "'..fname..'"])')
+ retry(nil, 1000, function() eq('hello', eval('g:job_out')) end)
+ end)
+ it('plugin works', function()
+ local fname = 'Xtest-nodejs-hello-plugin.js'
+ write_file(fname, [[
+ const socket = process.env.NVIM_LISTEN_ADDRESS;
+ const neovim = require('neovim');
+ const nvim = neovim.attach({socket: socket});
+
+ class TestPlugin {
+ hello() {
+ this.nvim.command('let g:job_out = "hello-plugin"')
+ }
+ }
+
+ const PluginClass = neovim.Plugin(TestPlugin);
+ const plugin = new PluginClass(nvim);
+ plugin.hello();
+ nvim.command('call jobstop(g:job_id)');
+ ]])
+ command('let g:job_id = jobstart(["node", "'..fname..'"])')
+ retry(nil, 1000, function() eq('hello-plugin', eval('g:job_out')) end)
+ end)
+end)
diff --git a/test/functional/provider/python3_spec.lua b/test/functional/provider/python3_spec.lua
index aa50f53451..93ac3ae017 100644
--- a/test/functional/provider/python3_spec.lua
+++ b/test/functional/provider/python3_spec.lua
@@ -3,20 +3,18 @@ local eval, command, feed = helpers.eval, helpers.command, helpers.feed
local eq, clear, insert = helpers.eq, helpers.clear, helpers.insert
local expect, write_file = helpers.expect, helpers.write_file
local feed_command = helpers.feed_command
+local source = helpers.source
local missing_provider = helpers.missing_provider
do
clear()
- local err = missing_provider('python3')
- if err then
- pending(
- 'Python 3 (or the Python 3 neovim module) is broken or missing:\n' .. err,
- function() end)
+ if missing_provider('python3') then
+ pending('Python 3 (or the neovim module) is broken/missing', function() end)
return
end
end
-describe('python3 commands and functions', function()
+describe('python3 provider', function()
before_each(function()
clear()
command('python3 import vim')
@@ -85,4 +83,20 @@ describe('python3 commands and functions', function()
it('py3eval', function()
eq({1, 2, {['key'] = 'val'}}, eval([[py3eval('[1, 2, {"key": "val"}]')]]))
end)
+
+ it('RPC call to expand("<afile>") during BufDelete #5245 #5617', function()
+ source([=[
+ python3 << EOF
+ import vim
+ def foo():
+ vim.eval('expand("<afile>:p")')
+ vim.eval('bufnr(expand("<afile>:p"))')
+ EOF
+ autocmd BufDelete * python3 foo()
+ autocmd BufUnload * python3 foo()]=])
+ feed_command("exe 'split' tempname()")
+ feed_command("bwipeout!")
+ feed_command('help help')
+ eq(2, eval('1+1')) -- Still alive?
+ end)
end)
diff --git a/test/functional/provider/python_spec.lua b/test/functional/provider/python_spec.lua
index 25f5e0a6d0..2fa74e9644 100644
--- a/test/functional/provider/python_spec.lua
+++ b/test/functional/provider/python_spec.lua
@@ -16,11 +16,8 @@ local missing_provider = helpers.missing_provider
do
clear()
- local err = missing_provider('python')
- if err then
- pending(
- 'Python 2 (or the Python 2 neovim module) is broken or missing:\n' .. err,
- function() end)
+ if missing_provider('python') then
+ pending('Python 2 (or the neovim module) is broken/missing', function() end)
return
end
end
diff --git a/test/functional/provider/ruby_spec.lua b/test/functional/provider/ruby_spec.lua
index 9f5ef3b3fc..e049ac7c41 100644
--- a/test/functional/provider/ruby_spec.lua
+++ b/test/functional/provider/ruby_spec.lua
@@ -1,23 +1,23 @@
local helpers = require('test.functional.helpers')(after_each)
+local clear = helpers.clear
+local command = helpers.command
+local curbufmeths = helpers.curbufmeths
local eq = helpers.eq
+local eval = helpers.eval
+local expect = helpers.expect
local feed = helpers.feed
-local clear = helpers.clear
+local feed_command = helpers.feed_command
local funcs = helpers.funcs
-local meths = helpers.meths
local insert = helpers.insert
-local expect = helpers.expect
-local command = helpers.command
-local write_file = helpers.write_file
-local curbufmeths = helpers.curbufmeths
+local meths = helpers.meths
local missing_provider = helpers.missing_provider
+local write_file = helpers.write_file
do
clear()
if missing_provider('ruby') then
- pending(
- "Cannot find the neovim RubyGem. Try :CheckHealth",
- function() end)
+ pending("Missing neovim RubyGem.", function() end)
return
end
end
@@ -92,3 +92,11 @@ describe(':rubydo command', function()
eq(false, curbufmeths.get_option('modified'))
end)
end)
+
+describe('ruby provider', function()
+ it('RPC call to expand("<afile>") during BufDelete #5245 #5617', function()
+ command([=[autocmd BufDelete * ruby VIM::evaluate('expand("<afile>")')]=])
+ feed_command('help help')
+ eq(2, eval('1+1')) -- Still alive?
+ end)
+end)