diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2015-08-29 17:10:06 +0200 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2015-09-08 10:56:15 +0200 |
commit | 087f3bacaf2c854f3d07fdece211c4670e140f32 (patch) | |
tree | e1dfb775ce8c4bd7df56f9edfad36ea4ed30b8a3 /test/functional/ex_cmds/encoding_spec.lua | |
parent | ffff2c9c47e63f1764ca743810a259d607f75104 (diff) | |
download | rneovim-087f3bacaf2c854f3d07fdece211c4670e140f32.tar.gz rneovim-087f3bacaf2c854f3d07fdece211c4670e140f32.tar.bz2 rneovim-087f3bacaf2c854f3d07fdece211c4670e140f32.zip |
encoding: test that `&encoding` cannot be changed
Helped-By: Justin M. Keyes <justinkz@gmail.com>
Diffstat (limited to 'test/functional/ex_cmds/encoding_spec.lua')
-rw-r--r-- | test/functional/ex_cmds/encoding_spec.lua | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/test/functional/ex_cmds/encoding_spec.lua b/test/functional/ex_cmds/encoding_spec.lua new file mode 100644 index 0000000000..997776ca25 --- /dev/null +++ b/test/functional/ex_cmds/encoding_spec.lua @@ -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) |