X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/0ee596c5c5e11fc79598407eaf22f83d279f7e9e..5a4872f466ebd76ddd532bdf2798554421c53df4:/.vim/bundle/ale/test/lua/ale_env_spec.lua diff --git a/.vim/bundle/ale/test/lua/ale_env_spec.lua b/.vim/bundle/ale/test/lua/ale_env_spec.lua new file mode 100644 index 00000000..1cceb5be --- /dev/null +++ b/.vim/bundle/ale/test/lua/ale_env_spec.lua @@ -0,0 +1,56 @@ +local eq = assert.are.same +local ale = require("ale") + +describe("ale.env", function() + local is_win32 = false + + setup(function() + _G.vim = { + o = setmetatable({}, { + __index = function(_, key) + if key == "shell" then + if is_win32 then + return "cmd.exe" + end + + return "bash" + end + + return nil + end + }), + fn = { + has = function(feature) + return feature == "win32" and is_win32 + end, + -- Mock a very poor version of shellescape() for Unix + -- This shouldn't be called for Windows + shellescape = function(str) + return "'" .. str .. "'" + end, + fnamemodify = function(shell, _) + return shell + end + } + } + end) + + teardown(function() + _G.vim = nil + end) + + before_each(function() + is_win32 = false + end) + + it("should escape values correctly on Unix", function() + eq("name='xxx' ", ale.env('name', 'xxx')) + eq("name='foo bar' ", ale.env('name', 'foo bar')) + end) + + it("should escape values correctly on Windows", function() + is_win32 = true + eq('set name=xxx && ', ale.env('name', 'xxx')) + eq('set "name=foo bar" && ', ale.env('name', 'foo bar')) + end) +end)