diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/functional/ex_cmds/encoding_spec.lua | 40 | ||||
| -rw-r--r-- | test/functional/helpers.lua | 11 | ||||
| -rw-r--r-- | test/functional/legacy/044_099_regexp_multibyte_magic_spec.lua | 1 | ||||
| -rw-r--r-- | test/functional/legacy/075_maparg_spec.lua | 1 | ||||
| -rw-r--r-- | test/functional/legacy/082_string_comparison_spec.lua | 1 | ||||
| -rw-r--r-- | test/functional/legacy/095_regexp_multibyte_spec.lua | 2 | ||||
| -rw-r--r-- | test/functional/legacy/mapping_spec.lua | 2 | ||||
| -rw-r--r-- | test/functional/legacy/utf8_spec.lua | 1 | 
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"])') | 
