diff options
Diffstat (limited to 'test/functional/shada/history_spec.lua')
| -rw-r--r-- | test/functional/shada/history_spec.lua | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/test/functional/shada/history_spec.lua b/test/functional/shada/history_spec.lua index 811afd268f..5a7db2bfa6 100644 --- a/test/functional/shada/history_spec.lua +++ b/test/functional/shada/history_spec.lua @@ -124,4 +124,159 @@ describe('ShaDa support code', function() nvim_command('&') eq('goo', nvim_eval('getline(1)')) end) + + it('dumps and loads history correctly when &encoding is not UTF-8', function() + set_additional_cmd('set encoding=latin1') + reset() + -- \171 is U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK in latin1 + nvim_feed(':echo "\171"\n') + nvim_command('qall') + reset() + eq('echo "\171"', nvim_eval('histget(":", -1)')) + end) + + it('dumps and loads history correctly when &encoding /= UTF-8 when dumping', + function() + set_additional_cmd('set encoding=latin1') + reset() + -- \171 is U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK in latin1 + nvim_feed(':echo "\171"\n') + set_additional_cmd('') + nvim_command('qall') + reset() + eq('echo "«"', nvim_eval('histget(":", -1)')) + end) + + it('dumps and loads history correctly when &encoding /= UTF-8 when loading', + function() + -- \171 is U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK in latin1 + nvim_feed(':echo "«"\n') + set_additional_cmd('set encoding=latin1') + nvim_command('qall') + reset() + eq('echo "\171"', nvim_eval('histget(":", -1)')) + end) + + it('dumps and loads replacement correctly when &encoding is not UTF-8', + function() + set_additional_cmd('set encoding=latin1') + reset() + -- \171 is U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK in latin1 + nvim_command('substitute/./\171/ge') + nvim_command('qall!') + reset() + nvim_eval('setline(".", ["."])') + nvim_command('&') + eq('\171', nvim_eval('getline(".")')) + end) + + it('dumps&loads replacement correctly when &encoding /= UTF-8 when dumping', + function() + set_additional_cmd('set encoding=latin1') + reset() + -- \171 is U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK in latin1 + nvim_command('substitute/./\171/ge') + set_additional_cmd('') + nvim_command('qall') + reset() + nvim_eval('setline(".", ["."])') + nvim_command('&') + eq('«', nvim_eval('getline(".")')) + end) + + it('dumps&loads replacement correctly when &encoding /= UTF-8 when loading', + function() + -- \171 is U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK in latin1 + nvim_command('substitute/./«/ge') + set_additional_cmd('set encoding=latin1') + nvim_command('qall') + reset() + nvim_eval('setline(".", ["."])') + nvim_command('&') + eq('\171', nvim_eval('getline(".")')) + end) + + it('dumps and loads substitute pattern correctly when &encoding is not UTF-8', + function() + set_additional_cmd('set encoding=latin1') + reset() + -- \171 is U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK in latin1 + nvim_command('substitute/\171/./ge') + nvim_command('qall!') + reset() + nvim_eval('setline(".", ["\171«"])') + nvim_command('&') + eq('.«', nvim_eval('getline(".")')) + end) + + it('dumps&loads s/pattern correctly when &encoding /= UTF-8 when dumping', + function() + set_additional_cmd('set encoding=latin1') + reset() + -- \171 is U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK in latin1 + nvim_command('substitute/\171/./ge') + set_additional_cmd('') + nvim_command('qall') + reset() + nvim_eval('setline(".", ["«\171"])') + nvim_command('&') + eq('.\171', nvim_eval('getline(".")')) + end) + + it('dumps&loads s/pattern correctly when &encoding /= UTF-8 when loading', + function() + -- \171 is U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK in latin1 + nvim_command('substitute/«/./ge') + set_additional_cmd('set encoding=latin1') + nvim_command('qall') + reset() + nvim_eval('setline(".", ["\171«"])') + nvim_command('&') + eq('.«', nvim_eval('getline(".")')) + end) + + it('dumps and loads search pattern correctly when &encoding is not UTF-8', + function() + set_additional_cmd('set encoding=latin1') + reset() + -- \171 is U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK in latin1 + nvim_command('silent! /\171/') + nvim_command('set viminfo+=/0') + nvim_command('qall!') + reset() + nvim_eval('setline(".", ["\171«"])') + nvim_command('~&') + eq('«', nvim_eval('getline(".")')) + eq('', nvim_eval('histget("/", -1)')) + end) + + it('dumps&loads /pattern correctly when &encoding /= UTF-8 when dumping', + function() + set_additional_cmd('set encoding=latin1') + reset() + -- \171 is U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK in latin1 + nvim_command('silent! /\171/') + nvim_command('set viminfo+=/0') + set_additional_cmd('') + nvim_command('qall') + reset() + nvim_eval('setline(".", ["«\171"])') + nvim_command('~&') + eq('\171', nvim_eval('getline(".")')) + eq('', nvim_eval('histget("/", -1)')) + end) + + it('dumps&loads /pattern correctly when &encoding /= UTF-8 when loading', + function() + -- \171 is U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK in latin1 + nvim_command('silent! /«/') + nvim_command('set viminfo+=/0') + set_additional_cmd('set encoding=latin1') + nvim_command('qall') + reset() + nvim_eval('setline(".", ["\171«"])') + nvim_command('~&') + eq('«', nvim_eval('getline(".")')) + eq('', nvim_eval('histget("/", -1)')) + end) end) |