mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
test/old: restore test_backspace_opt.vim
Porting it to test/functional/legacy/backspace_opt_spec.lua was a mistake. Tests pass after commenting out some lines for Vi compatibility. File is copied from Vim as of patch v8.2.0540. Patch v8.2.0540 cannot be fully ported yet. This file is a prequisite for future v8.2.x patches.
This commit is contained in:
parent
4f53ebaceb
commit
5b897acfc1
110
src/nvim/testdir/test_backspace_opt.vim
Normal file
110
src/nvim/testdir/test_backspace_opt.vim
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
" Tests for 'backspace' settings
|
||||||
|
|
||||||
|
func Exec(expr)
|
||||||
|
let str=''
|
||||||
|
try
|
||||||
|
exec a:expr
|
||||||
|
catch /.*/
|
||||||
|
let str=v:exception
|
||||||
|
endtry
|
||||||
|
return str
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Test_backspace_option()
|
||||||
|
set backspace=
|
||||||
|
call assert_equal('', &backspace)
|
||||||
|
set backspace=indent
|
||||||
|
call assert_equal('indent', &backspace)
|
||||||
|
set backspace=eol
|
||||||
|
call assert_equal('eol', &backspace)
|
||||||
|
set backspace=start
|
||||||
|
call assert_equal('start', &backspace)
|
||||||
|
" Add the value
|
||||||
|
set backspace=
|
||||||
|
set backspace=indent
|
||||||
|
call assert_equal('indent', &backspace)
|
||||||
|
set backspace+=eol
|
||||||
|
call assert_equal('indent,eol', &backspace)
|
||||||
|
set backspace+=start
|
||||||
|
call assert_equal('indent,eol,start', &backspace)
|
||||||
|
" Delete the value
|
||||||
|
set backspace-=indent
|
||||||
|
call assert_equal('eol,start', &backspace)
|
||||||
|
set backspace-=start
|
||||||
|
call assert_equal('eol', &backspace)
|
||||||
|
set backspace-=eol
|
||||||
|
call assert_equal('', &backspace)
|
||||||
|
" Check the error
|
||||||
|
call assert_equal(0, match(Exec('set backspace=ABC'), '.*E474'))
|
||||||
|
call assert_equal(0, match(Exec('set backspace+=def'), '.*E474'))
|
||||||
|
" NOTE: Vim doesn't check following error...
|
||||||
|
"call assert_equal(0, match(Exec('set backspace-=ghi'), '.*E474'))
|
||||||
|
|
||||||
|
" Check backwards compatibility with version 5.4 and earlier
|
||||||
|
set backspace=0
|
||||||
|
call assert_equal('0', &backspace)
|
||||||
|
set backspace=1
|
||||||
|
call assert_equal('1', &backspace)
|
||||||
|
set backspace=2
|
||||||
|
call assert_equal('2', &backspace)
|
||||||
|
call assert_false(match(Exec('set backspace=3'), '.*E474'))
|
||||||
|
call assert_false(match(Exec('set backspace=10'), '.*E474'))
|
||||||
|
|
||||||
|
" Cleared when 'compatible' is set
|
||||||
|
" set compatible
|
||||||
|
" call assert_equal('', &backspace)
|
||||||
|
set nocompatible viminfo+=nviminfo
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Test with backspace set to the non-compatible setting
|
||||||
|
func Test_backspace_ctrl_u()
|
||||||
|
new
|
||||||
|
call append(0, [
|
||||||
|
\ "1 this shouldn't be deleted",
|
||||||
|
\ "2 this shouldn't be deleted",
|
||||||
|
\ "3 this shouldn't be deleted",
|
||||||
|
\ "4 this should be deleted",
|
||||||
|
\ "5 this shouldn't be deleted",
|
||||||
|
\ "6 this shouldn't be deleted",
|
||||||
|
\ "7 this shouldn't be deleted",
|
||||||
|
\ "8 this shouldn't be deleted (not touched yet)"])
|
||||||
|
call cursor(2, 1)
|
||||||
|
|
||||||
|
" set compatible
|
||||||
|
set backspace=2
|
||||||
|
|
||||||
|
exe "normal Avim1\<C-U>\<Esc>\<CR>"
|
||||||
|
exe "normal Avim2\<C-G>u\<C-U>\<Esc>\<CR>"
|
||||||
|
|
||||||
|
set cpo-=<
|
||||||
|
inoremap <c-u> <left><c-u>
|
||||||
|
exe "normal Avim3\<C-U>\<Esc>\<CR>"
|
||||||
|
iunmap <c-u>
|
||||||
|
exe "normal Avim4\<C-U>\<C-U>\<Esc>\<CR>"
|
||||||
|
|
||||||
|
" Test with backspace set to the compatible setting
|
||||||
|
set backspace= visualbell
|
||||||
|
exe "normal A vim5\<Esc>A\<C-U>\<C-U>\<Esc>\<CR>"
|
||||||
|
exe "normal A vim6\<Esc>Azwei\<C-G>u\<C-U>\<Esc>\<CR>"
|
||||||
|
|
||||||
|
inoremap <c-u> <left><c-u>
|
||||||
|
exe "normal A vim7\<C-U>\<C-U>\<Esc>\<CR>"
|
||||||
|
|
||||||
|
call assert_equal([
|
||||||
|
\ "1 this shouldn't be deleted",
|
||||||
|
\ "2 this shouldn't be deleted",
|
||||||
|
\ "3 this shouldn't be deleted",
|
||||||
|
\ "4 this should be deleted3",
|
||||||
|
\ "",
|
||||||
|
\ "6 this shouldn't be deleted vim5",
|
||||||
|
\ "7 this shouldn't be deleted vim6",
|
||||||
|
\ "8 this shouldn't be deleted (not touched yet) vim7",
|
||||||
|
\ ""], getline(1, '$'))
|
||||||
|
|
||||||
|
set compatible&vim
|
||||||
|
set visualbell&vim
|
||||||
|
set backspace&vim
|
||||||
|
close!
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" vim: shiftwidth=2 sts=2 expandtab
|
@ -1,67 +0,0 @@
|
|||||||
local helpers = require('test.functional.helpers')(after_each)
|
|
||||||
local call, clear = helpers.call, helpers.clear
|
|
||||||
local source, eq, nvim = helpers.source, helpers.eq, helpers.meths
|
|
||||||
|
|
||||||
describe("test 'backspace' settings", function()
|
|
||||||
before_each(function()
|
|
||||||
clear()
|
|
||||||
|
|
||||||
source([[
|
|
||||||
func Exec(expr)
|
|
||||||
let str=''
|
|
||||||
try
|
|
||||||
exec a:expr
|
|
||||||
catch /.*/
|
|
||||||
let str=v:exception
|
|
||||||
endtry
|
|
||||||
return str
|
|
||||||
endfunc
|
|
||||||
|
|
||||||
func Test_backspace_option()
|
|
||||||
set backspace=
|
|
||||||
call assert_equal('', &backspace)
|
|
||||||
set backspace=indent
|
|
||||||
call assert_equal('indent', &backspace)
|
|
||||||
set backspace=eol
|
|
||||||
call assert_equal('eol', &backspace)
|
|
||||||
set backspace=start
|
|
||||||
call assert_equal('start', &backspace)
|
|
||||||
" Add the value
|
|
||||||
set backspace=
|
|
||||||
set backspace=indent
|
|
||||||
call assert_equal('indent', &backspace)
|
|
||||||
set backspace+=eol
|
|
||||||
call assert_equal('indent,eol', &backspace)
|
|
||||||
set backspace+=start
|
|
||||||
call assert_equal('indent,eol,start', &backspace)
|
|
||||||
" Delete the value
|
|
||||||
set backspace-=indent
|
|
||||||
call assert_equal('eol,start', &backspace)
|
|
||||||
set backspace-=start
|
|
||||||
call assert_equal('eol', &backspace)
|
|
||||||
set backspace-=eol
|
|
||||||
call assert_equal('', &backspace)
|
|
||||||
" Check the error
|
|
||||||
call assert_equal(0, match(Exec('set backspace=ABC'), '.*E474'))
|
|
||||||
call assert_equal(0, match(Exec('set backspace+=def'), '.*E474'))
|
|
||||||
" NOTE: Vim doesn't check following error...
|
|
||||||
"call assert_equal(0, match(Exec('set backspace-=ghi'), '.*E474'))
|
|
||||||
|
|
||||||
" Check backwards compatibility with version 5.4 and earlier
|
|
||||||
set backspace=0
|
|
||||||
call assert_equal('0', &backspace)
|
|
||||||
set backspace=1
|
|
||||||
call assert_equal('1', &backspace)
|
|
||||||
set backspace=2
|
|
||||||
call assert_equal('2', &backspace)
|
|
||||||
call assert_false(match(Exec('set backspace=3'), '.*E474'))
|
|
||||||
call assert_false(match(Exec('set backspace=10'), '.*E474'))
|
|
||||||
endfunc
|
|
||||||
]])
|
|
||||||
end)
|
|
||||||
|
|
||||||
it('works', function()
|
|
||||||
call('Test_backspace_option')
|
|
||||||
eq({}, nvim.get_vvar('errors'))
|
|
||||||
end)
|
|
||||||
end)
|
|
Loading…
Reference in New Issue
Block a user