aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ex_cmds/encoding_spec.lua
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2015-08-29 17:10:06 +0200
committerBjörn Linse <bjorn.linse@gmail.com>2015-09-08 10:56:15 +0200
commit087f3bacaf2c854f3d07fdece211c4670e140f32 (patch)
treee1dfb775ce8c4bd7df56f9edfad36ea4ed30b8a3 /test/functional/ex_cmds/encoding_spec.lua
parentffff2c9c47e63f1764ca743810a259d607f75104 (diff)
downloadrneovim-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.lua40
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)