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
|
||||
end
|
||||
|
||||
local function clear()
|
||||
local function clear(extra_cmd)
|
||||
if session then
|
||||
session:exit(0)
|
||||
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
|
||||
|
||||
local function insert(...)
|
||||
|
Loading…
Reference in New Issue
Block a user