mirror of
https://github.com/neovim/neovim.git
synced 2025-10-05 17:36:29 +00:00
tests: Migrate legacy test autocmd_option.
This commit is contained in:
@@ -25,7 +25,6 @@ SCRIPTS := test_eval.out \
|
||||
test83.out \
|
||||
test88.out \
|
||||
test_listlbr.out \
|
||||
test_autocmd_option.out \
|
||||
test_breakindent.out \
|
||||
test_charsearch.out \
|
||||
test_close_count.out \
|
||||
|
@@ -1,68 +0,0 @@
|
||||
Test for option autocommand
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:if !has("eval") || !has("autocmd") || !exists("+autochdir") | e! test.ok | w! test.out | qa! | endif
|
||||
:fu! AutoCommand(match)
|
||||
: let c=g:testcase
|
||||
: let item=remove(g:options, 0)
|
||||
: let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Scope: <%s>\n", item[0], item[1], item[2], item[3])
|
||||
: let c.=printf("Autocmd Option: <%s>,", a:match)
|
||||
: let c.=printf(" OldVal: <%s>,", v:option_old)
|
||||
: let c.=printf(" NewVal: <%s>,", v:option_new)
|
||||
: let c.=printf(" Scope: <%s>\n", v:option_type)
|
||||
: call setreg('r', printf("%s\n%s", getreg('r'), c))
|
||||
:endfu
|
||||
:au OptionSet * :call AutoCommand(expand("<amatch>"))
|
||||
:let g:testcase="1: Setting number option\n"
|
||||
:let g:options=[['number', 0, 1, 'global']]
|
||||
:set nu
|
||||
:let g:testcase="2: Setting local number option\n"
|
||||
:let g:options=[['number', 1, 0, 'local']]
|
||||
:setlocal nonu
|
||||
:let g:testcase="3: Setting global number option\n"
|
||||
:let g:options=[['number', 1, 0, 'global']]
|
||||
:setglobal nonu
|
||||
:let g:testcase="4: Setting local autoindent option\n"
|
||||
:let g:options=[['autoindent', 1, 0, 'local']]
|
||||
:setlocal noai
|
||||
:let g:testcase="5: Setting global autoindent option\n"
|
||||
:let g:options=[['autoindent', 1, 0, 'global']]
|
||||
:setglobal noai
|
||||
:let g:testcase="6: Setting global autoindent option\n"
|
||||
:let g:options=[['autoindent', 0, 1, 'global']]
|
||||
:set ai!
|
||||
: Should not print anything, use :noa
|
||||
:noa :set nonu
|
||||
:let g:testcase="7: Setting several global list and number option\n"
|
||||
:let g:options=[['list', 0, 1, 'global'], ['number', 0, 1, 'global']]
|
||||
:set list nu
|
||||
:noa set nolist nonu
|
||||
:let g:testcase="8: Setting global acd\n"
|
||||
:let g:options=[['autochdir', 0, 1, 'global']]
|
||||
:setlocal acd
|
||||
:let g:testcase="9: Setting global autoread\n"
|
||||
:let g:options=[['autoread', 1, 0, 'global']]
|
||||
:set noar
|
||||
:let g:testcase="10: Setting local autoread\n"
|
||||
:let g:options=[['autoread', 1, 0, 'local']]
|
||||
:setlocal noar
|
||||
:let g:testcase="11: Setting global autoread\n"
|
||||
:let g:options=[['autoread', 0, 1, 'global']]
|
||||
:setglobal invar
|
||||
:let g:testcase="12: Setting option backspace through :let\n"
|
||||
:let g:options=[['backspace', 'indent,eol,start', '', 'global']]
|
||||
:let &bs=""
|
||||
:let g:testcase="13: Setting option backspace through setbufvar()\n"
|
||||
:let g:options=[['backup', '', '1', 'local']]
|
||||
: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
|
||||
:call setbufvar(1, '&l:bk', 1)
|
||||
: "should trigger, use correct option name
|
||||
:call setbufvar(1, '&backup', 1)
|
||||
:" Write register now, because next test shouldn't output anything.
|
||||
:$put r
|
||||
:let @r=''
|
||||
:/^dummy text/,$w! test.out
|
||||
:qa!
|
||||
ENDTEST
|
||||
dummy text
|
@@ -1,57 +0,0 @@
|
||||
dummy text
|
||||
|
||||
1: Setting number option
|
||||
Expected: Name: <number>, Oldval: <0>, NewVal: <1>, Scope: <global>
|
||||
Autocmd Option: <number>, OldVal: <0>, NewVal: <1>, Scope: <global>
|
||||
|
||||
2: Setting local number option
|
||||
Expected: Name: <number>, Oldval: <1>, NewVal: <0>, Scope: <local>
|
||||
Autocmd Option: <number>, OldVal: <1>, NewVal: <0>, Scope: <local>
|
||||
|
||||
3: Setting global number option
|
||||
Expected: Name: <number>, Oldval: <1>, NewVal: <0>, Scope: <global>
|
||||
Autocmd Option: <number>, OldVal: <1>, NewVal: <0>, Scope: <global>
|
||||
|
||||
4: Setting local autoindent option
|
||||
Expected: Name: <autoindent>, Oldval: <1>, NewVal: <0>, Scope: <local>
|
||||
Autocmd Option: <autoindent>, OldVal: <1>, NewVal: <0>, Scope: <local>
|
||||
|
||||
5: Setting global autoindent option
|
||||
Expected: Name: <autoindent>, Oldval: <1>, NewVal: <0>, Scope: <global>
|
||||
Autocmd Option: <autoindent>, OldVal: <1>, NewVal: <0>, Scope: <global>
|
||||
|
||||
6: Setting global autoindent option
|
||||
Expected: Name: <autoindent>, Oldval: <0>, NewVal: <1>, Scope: <global>
|
||||
Autocmd Option: <autoindent>, OldVal: <0>, NewVal: <1>, Scope: <global>
|
||||
|
||||
7: Setting several global list and number option
|
||||
Expected: Name: <list>, Oldval: <0>, NewVal: <1>, Scope: <global>
|
||||
Autocmd Option: <list>, OldVal: <0>, NewVal: <1>, Scope: <global>
|
||||
|
||||
7: Setting several global list and number option
|
||||
Expected: Name: <number>, Oldval: <0>, NewVal: <1>, Scope: <global>
|
||||
Autocmd Option: <number>, OldVal: <0>, NewVal: <1>, Scope: <global>
|
||||
|
||||
8: Setting global acd
|
||||
Expected: Name: <autochdir>, Oldval: <0>, NewVal: <1>, Scope: <global>
|
||||
Autocmd Option: <autochdir>, OldVal: <0>, NewVal: <1>, Scope: <local>
|
||||
|
||||
9: Setting global autoread
|
||||
Expected: Name: <autoread>, Oldval: <1>, NewVal: <0>, Scope: <global>
|
||||
Autocmd Option: <autoread>, OldVal: <1>, NewVal: <0>, Scope: <global>
|
||||
|
||||
10: Setting local autoread
|
||||
Expected: Name: <autoread>, Oldval: <1>, NewVal: <0>, Scope: <local>
|
||||
Autocmd Option: <autoread>, OldVal: <1>, NewVal: <0>, Scope: <local>
|
||||
|
||||
11: Setting global autoread
|
||||
Expected: Name: <autoread>, Oldval: <0>, NewVal: <1>, Scope: <global>
|
||||
Autocmd Option: <autoread>, OldVal: <0>, NewVal: <1>, Scope: <global>
|
||||
|
||||
12: Setting option backspace through :let
|
||||
Expected: Name: <backspace>, Oldval: <indent,eol,start>, NewVal: <>, Scope: <global>
|
||||
Autocmd Option: <backspace>, OldVal: <indent,eol,start>, NewVal: <>, Scope: <global>
|
||||
|
||||
13: Setting option backspace through setbufvar()
|
||||
Expected: Name: <backup>, Oldval: <>, NewVal: <1>, Scope: <local>
|
||||
Autocmd Option: <backup>, OldVal: <0>, NewVal: <1>, Scope: <local>
|
144
test/functional/legacy/autocmd_option_spec.lua
Normal file
144
test/functional/legacy/autocmd_option_spec.lua
Normal file
@@ -0,0 +1,144 @@
|
||||
-- Test for option autocommand
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local feed, source = helpers.feed, helpers.source
|
||||
local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
|
||||
|
||||
describe('autocmd_option', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
execute('so small.vim')
|
||||
|
||||
source([[
|
||||
fu! AutoCommand(match)
|
||||
let c=g:testcase
|
||||
let item=remove(g:options, 0)
|
||||
let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Scope: <%s>\n",
|
||||
\item[0], item[1], item[2], item[3])
|
||||
let c.=printf("Autocmd Option: <%s>,", a:match)
|
||||
let c.=printf(" OldVal: <%s>,", v:option_old)
|
||||
let c.=printf(" NewVal: <%s>,", v:option_new)
|
||||
let c.=printf(" Scope: <%s>\n", v:option_type)
|
||||
call setreg('r', printf("%s\n%s", getreg('r'), c))
|
||||
endfu
|
||||
]])
|
||||
|
||||
execute('au OptionSet * :call AutoCommand(expand("<amatch>"))')
|
||||
|
||||
source([=[
|
||||
let g:testcase="1: Setting number option\n"
|
||||
let g:options=[['number', 0, 1, 'global']]
|
||||
set nu
|
||||
let g:testcase="2: Setting local number option\n"
|
||||
let g:options=[['number', 1, 0, 'local']]
|
||||
setlocal nonu
|
||||
let g:testcase="3: Setting global number option\n"
|
||||
let g:options=[['number', 1, 0, 'global']]
|
||||
setglobal nonu
|
||||
let g:testcase="4: Setting local autoindent option\n"
|
||||
let g:options=[['autoindent', 0, 1, 'local']]
|
||||
setlocal ai
|
||||
let g:testcase="5: Setting global autoindent option\n"
|
||||
let g:options=[['autoindent', 0, 1, 'global']]
|
||||
setglobal ai
|
||||
let g:testcase="6: Setting global autoindent option\n"
|
||||
let g:options=[['autoindent', 1, 0, 'global']]
|
||||
set ai!
|
||||
]=])
|
||||
|
||||
-- Should not print anything, use :noa.
|
||||
source([=[
|
||||
noa :set nonu
|
||||
let g:testcase="7: Setting several global list and number option\n"
|
||||
let g:options=[['list', 0, 1, 'global'], ['number', 0, 1, 'global']]
|
||||
set list nu
|
||||
noa set nolist nonu
|
||||
let g:testcase="8: Setting global acd\n"
|
||||
let g:options=[['autochdir', 0, 1, 'global']]
|
||||
setlocal acd
|
||||
let g:testcase="9: Setting global autoread\n"
|
||||
let g:options=[['autoread', 1, 0, 'global']]
|
||||
set noar
|
||||
let g:testcase="10: Setting local autoread\n"
|
||||
let g:options=[['autoread', 0, 1, 'local']]
|
||||
setlocal ar
|
||||
let g:testcase="11: Setting global autoread\n"
|
||||
let g:options=[['autoread', 0, 1, 'global']]
|
||||
setglobal invar
|
||||
let g:testcase="12: Setting option backspace through :let\n"
|
||||
let g:options=[['backspace', 'indent,eol,start', '', 'global']]
|
||||
let &bs=""
|
||||
let g:testcase="13: Setting option backspace through setbufvar()\n"
|
||||
let g:options=[['backup', '', '1', 'local']]
|
||||
]=])
|
||||
|
||||
-- Try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger.
|
||||
execute('call setbufvar(1, "&l:bk", 1)')
|
||||
-- Should trigger, use correct option name.
|
||||
execute('call setbufvar(1, "&backup", 1)')
|
||||
-- Write register now
|
||||
execute('$put! r')
|
||||
|
||||
-- Remove the first and last blank lines.
|
||||
feed('ggddGdd')
|
||||
|
||||
-- Assert buffer contents.
|
||||
expect([=[
|
||||
1: Setting number option
|
||||
Expected: Name: <number>, Oldval: <0>, NewVal: <1>, Scope: <global>
|
||||
Autocmd Option: <number>, OldVal: <0>, NewVal: <1>, Scope: <global>
|
||||
|
||||
2: Setting local number option
|
||||
Expected: Name: <number>, Oldval: <1>, NewVal: <0>, Scope: <local>
|
||||
Autocmd Option: <number>, OldVal: <1>, NewVal: <0>, Scope: <local>
|
||||
|
||||
3: Setting global number option
|
||||
Expected: Name: <number>, Oldval: <1>, NewVal: <0>, Scope: <global>
|
||||
Autocmd Option: <number>, OldVal: <1>, NewVal: <0>, Scope: <global>
|
||||
|
||||
4: Setting local autoindent option
|
||||
Expected: Name: <autoindent>, Oldval: <0>, NewVal: <1>, Scope: <local>
|
||||
Autocmd Option: <autoindent>, OldVal: <0>, NewVal: <1>, Scope: <local>
|
||||
|
||||
5: Setting global autoindent option
|
||||
Expected: Name: <autoindent>, Oldval: <0>, NewVal: <1>, Scope: <global>
|
||||
Autocmd Option: <autoindent>, OldVal: <0>, NewVal: <1>, Scope: <global>
|
||||
|
||||
6: Setting global autoindent option
|
||||
Expected: Name: <autoindent>, Oldval: <1>, NewVal: <0>, Scope: <global>
|
||||
Autocmd Option: <autoindent>, OldVal: <1>, NewVal: <0>, Scope: <global>
|
||||
|
||||
7: Setting several global list and number option
|
||||
Expected: Name: <list>, Oldval: <0>, NewVal: <1>, Scope: <global>
|
||||
Autocmd Option: <list>, OldVal: <0>, NewVal: <1>, Scope: <global>
|
||||
|
||||
7: Setting several global list and number option
|
||||
Expected: Name: <number>, Oldval: <0>, NewVal: <1>, Scope: <global>
|
||||
Autocmd Option: <number>, OldVal: <0>, NewVal: <1>, Scope: <global>
|
||||
|
||||
8: Setting global acd
|
||||
Expected: Name: <autochdir>, Oldval: <0>, NewVal: <1>, Scope: <global>
|
||||
Autocmd Option: <autochdir>, OldVal: <0>, NewVal: <1>, Scope: <local>
|
||||
|
||||
9: Setting global autoread
|
||||
Expected: Name: <autoread>, Oldval: <1>, NewVal: <0>, Scope: <global>
|
||||
Autocmd Option: <autoread>, OldVal: <1>, NewVal: <0>, Scope: <global>
|
||||
|
||||
10: Setting local autoread
|
||||
Expected: Name: <autoread>, Oldval: <0>, NewVal: <1>, Scope: <local>
|
||||
Autocmd Option: <autoread>, OldVal: <0>, NewVal: <1>, Scope: <local>
|
||||
|
||||
11: Setting global autoread
|
||||
Expected: Name: <autoread>, Oldval: <0>, NewVal: <1>, Scope: <global>
|
||||
Autocmd Option: <autoread>, OldVal: <0>, NewVal: <1>, Scope: <global>
|
||||
|
||||
12: Setting option backspace through :let
|
||||
Expected: Name: <backspace>, Oldval: <indent,eol,start>, NewVal: <>, Scope: <global>
|
||||
Autocmd Option: <backspace>, OldVal: <indent,eol,start>, NewVal: <>, Scope: <global>
|
||||
|
||||
13: Setting option backspace through setbufvar()
|
||||
Expected: Name: <backup>, Oldval: <>, NewVal: <1>, Scope: <local>
|
||||
Autocmd Option: <backup>, OldVal: <0>, NewVal: <1>, Scope: <local>]=])
|
||||
end)
|
||||
end)
|
Reference in New Issue
Block a user