mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
encoding: test that &encoding
cannot be changed
Helped-By: Justin M. Keyes <justinkz@gmail.com>
This commit is contained in:
parent
ffff2c9c47
commit
087f3bacaf
40
test/functional/ex_cmds/encoding_spec.lua
Normal file
40
test/functional/ex_cmds/encoding_spec.lua
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
local helpers = require('test.functional.helpers')
|
||||||
|
local clear, execute, feed = helpers.clear, helpers.execute, helpers.feed
|
||||||
|
local eq, neq, eval = helpers.eq, helpers.neq, helpers.eval
|
||||||
|
|
||||||
|
describe('&encoding', function()
|
||||||
|
|
||||||
|
before_each(function()
|
||||||
|
clear()
|
||||||
|
-- sanity check: tests should run with encoding=utf-8
|
||||||
|
eq('utf-8', eval('&encoding'))
|
||||||
|
eq(3, eval('strwidth("Bär")'))
|
||||||
|
end)
|
||||||
|
|
||||||
|
it('cannot be changed after setup', function()
|
||||||
|
execute('set encoding=latin1')
|
||||||
|
-- error message expected
|
||||||
|
feed('<cr>')
|
||||||
|
neq(nil, string.find(eval('v:errmsg'), '^E905:'))
|
||||||
|
eq('utf-8', eval('&encoding'))
|
||||||
|
-- check nvim is still in utf-8 mode
|
||||||
|
eq(3, eval('strwidth("Bär")'))
|
||||||
|
end)
|
||||||
|
|
||||||
|
it('is not changed by `set all&`', function()
|
||||||
|
-- we need to set &encoding to something non-default
|
||||||
|
-- use 'latin1' when enc&vi is 'utf-8', 'utf-8' otherwise
|
||||||
|
execute('set fenc=default')
|
||||||
|
local enc_default, enc_other, width = eval('&fenc'), 'utf-8', 3
|
||||||
|
if enc_default == 'utf-8' then
|
||||||
|
enc_other = 'latin1'
|
||||||
|
width = 4 -- utf-8 string 'Bär' will count as 4 latin1 chars
|
||||||
|
end
|
||||||
|
|
||||||
|
clear('set enc=' .. enc_other)
|
||||||
|
execute('set all&')
|
||||||
|
eq(enc_other, eval('&encoding'))
|
||||||
|
eq(width, eval('strwidth("Bär")'))
|
||||||
|
end)
|
||||||
|
|
||||||
|
end)
|
@ -183,11 +183,16 @@ local function spawn(argv)
|
|||||||
return session
|
return session
|
||||||
end
|
end
|
||||||
|
|
||||||
local function clear()
|
local function clear(extra_cmd)
|
||||||
if session then
|
if session then
|
||||||
session:exit(0)
|
session:exit(0)
|
||||||
end
|
end
|
||||||
session = spawn(nvim_argv)
|
local args = {unpack(nvim_argv)}
|
||||||
|
if extra_cmd ~= nil then
|
||||||
|
table.insert(args, '--cmd')
|
||||||
|
table.insert(args, extra_cmd)
|
||||||
|
end
|
||||||
|
session = spawn(args)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function insert(...)
|
local function insert(...)
|
||||||
|
Loading…
Reference in New Issue
Block a user