aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/functional/ex_cmds/encoding_spec.lua40
-rw-r--r--test/functional/helpers.lua11
-rw-r--r--test/functional/legacy/044_099_regexp_multibyte_magic_spec.lua1
-rw-r--r--test/functional/legacy/075_maparg_spec.lua1
-rw-r--r--test/functional/legacy/082_string_comparison_spec.lua1
-rw-r--r--test/functional/legacy/095_regexp_multibyte_spec.lua2
-rw-r--r--test/functional/legacy/mapping_spec.lua2
-rw-r--r--test/functional/legacy/utf8_spec.lua1
8 files changed, 49 insertions, 10 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)
diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua
index f228f6290c..6055cc3c59 100644
--- a/test/functional/helpers.lua
+++ b/test/functional/helpers.lua
@@ -7,7 +7,7 @@ local Session = require('nvim.session')
local nvim_prog = os.getenv('NVIM_PROG') or 'build/bin/nvim'
local nvim_argv = {nvim_prog, '-u', 'NONE', '-i', 'NONE', '-N',
- '--cmd', 'set shortmess+=I background=light noswapfile noautoindent laststatus=1',
+ '--cmd', 'set shortmess+=I background=light noswapfile noautoindent laststatus=1 encoding=utf-8',
'--embed'}
-- Formulate a path to the directory containing nvim. We use this to
@@ -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(...)
diff --git a/test/functional/legacy/044_099_regexp_multibyte_magic_spec.lua b/test/functional/legacy/044_099_regexp_multibyte_magic_spec.lua
index 58838e9d6e..efe61aa354 100644
--- a/test/functional/legacy/044_099_regexp_multibyte_magic_spec.lua
+++ b/test/functional/legacy/044_099_regexp_multibyte_magic_spec.lua
@@ -33,7 +33,6 @@ local function run_test_with_regexpengine(regexpengine)
j 0123❤x
k combinations]])
- execute('set encoding=utf-8')
execute('set re=' .. regexpengine)
-- Lines 1-8. Exercise regexp search with various magic settings. On each
diff --git a/test/functional/legacy/075_maparg_spec.lua b/test/functional/legacy/075_maparg_spec.lua
index dac8940314..418abb14d4 100644
--- a/test/functional/legacy/075_maparg_spec.lua
+++ b/test/functional/legacy/075_maparg_spec.lua
@@ -10,7 +10,6 @@ describe('maparg()', function()
it('is working', function()
execute('set cpo-=<')
- execute('set encoding=utf8')
-- Test maparg() with a string result
execute('map foo<C-V> is<F4>foo')
diff --git a/test/functional/legacy/082_string_comparison_spec.lua b/test/functional/legacy/082_string_comparison_spec.lua
index bd4e8a4d79..1615828ca0 100644
--- a/test/functional/legacy/082_string_comparison_spec.lua
+++ b/test/functional/legacy/082_string_comparison_spec.lua
@@ -9,7 +9,6 @@ describe('case-insensitive string comparison in UTF-8', function()
setup(clear)
it('is working', function()
- execute('set enc=utf8')
feed('ggdG<cr>')
source([[
function! Ch(a, op, b, expected)
diff --git a/test/functional/legacy/095_regexp_multibyte_spec.lua b/test/functional/legacy/095_regexp_multibyte_spec.lua
index a72fb669d2..559222e2ff 100644
--- a/test/functional/legacy/095_regexp_multibyte_spec.lua
+++ b/test/functional/legacy/095_regexp_multibyte_spec.lua
@@ -15,7 +15,7 @@ describe('regex with multi-byte', function()
Results of test95:]])
source([=[
- set encoding=utf-8 nomore
+ set nomore
let tl = []
call add(tl, [2, '[[:alpha:][=a=]]\+', '879 aiaãâaiuvna ', 'aiaãâaiuvna'])
diff --git a/test/functional/legacy/mapping_spec.lua b/test/functional/legacy/mapping_spec.lua
index 0843506827..899f7423d0 100644
--- a/test/functional/legacy/mapping_spec.lua
+++ b/test/functional/legacy/mapping_spec.lua
@@ -12,8 +12,6 @@ describe('mapping', function()
test starts here:
]])
- execute('set encoding=utf-8')
-
-- Abbreviations with р (0x80) should work.
execute('inoreab чкпр vim')
feed('GAчкпр <esc>')
diff --git a/test/functional/legacy/utf8_spec.lua b/test/functional/legacy/utf8_spec.lua
index d26f436057..ef717042d0 100644
--- a/test/functional/legacy/utf8_spec.lua
+++ b/test/functional/legacy/utf8_spec.lua
@@ -10,7 +10,6 @@ describe('utf8', function()
it('is working', function()
insert('start:')
- execute('set encoding=utf-8')
execute('new')
execute('call setline(1, ["aaa", "あああ", "bbb"])')