neovim/test/functional/legacy/100_undo_level_spec.lua
2015-03-11 00:56:53 -04:00

143 lines
3.4 KiB
Lua

-- Tests for 'undolevel' setting being global-local
local helpers = require('test.functional.helpers')
local feed, insert, source = helpers.feed, helpers.insert, helpers.source
local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
describe('undolevel', function()
setup(clear)
it('is working', function()
source([[
set ul=5
fu! FillBuffer()
for i in range(1,13)
put=i
exe "setg ul=" . &g:ul
endfor
endfu
fu! UndoLevel()
redir @z
setglobal undolevels?
echon ' global'
setlocal undolevels?
echon ' local'
redir end
$put z
endfu
0put ='ONE: expecting global undolevels: 5, local undolevels: -123456 (default)'
call FillBuffer()
setlocal undolevels<
earlier 10
call UndoLevel()
set ff=unix
%yank A
%delete
0put ='TWO: expecting global undolevels: 5, local undolevels: 2 (first) then 10 (afterwards)'
setlocal ul=2
call FillBuffer()
earlier 10
call UndoLevel()
setlocal ul=10
call UndoLevel()
set ff=unix
%yank A
%delete
setlocal undolevels<
redir @A
echo "global value shouldn't be changed and still be 5!"
echo 'ONE: expecting global undolevels: 5, local undolevels: -123456 (default)'
setglobal undolevels?
echon ' global'
setlocal undolevels?
echon ' local'
echo ""
redir end
setglobal ul=50
1put ='global value should be changed to 50'
2put ='THREE: expecting global undolevels: 50, local undolevels: -123456 (default)'
call UndoLevel()
set ff=unix
%yank A
%delete
setglobal lispwords=foo,bar,baz
setlocal lispwords-=foo
setlocal lispwords+=quux
redir @A
echo "Testing 'lispwords' local value"
setglobal lispwords?
setlocal lispwords?
echo &lispwords
echo ''
redir end
setlocal lispwords<
redir @A
echo "Testing 'lispwords' value reset"
setglobal lispwords?
setlocal lispwords?
echo &lispwords
redir end
0put a
$d
]])
-- Assert buffer contents.
expect([[
ONE: expecting global undolevels: 5, local undolevels: -123456 (default)
1
2
3
4
5
6
7
undolevels=5 global
undolevels=-123456 local
TWO: expecting global undolevels: 5, local undolevels: 2 (first) then 10 (afterwards)
1
2
3
4
5
6
7
8
9
10
undolevels=5 global
undolevels=2 local
undolevels=5 global
undolevels=10 local
global value shouldn't be changed and still be 5!
ONE: expecting global undolevels: 5, local undolevels: -123456 (default)
undolevels=5 global
undolevels=-123456 local
global value should be changed to 50
THREE: expecting global undolevels: 50, local undolevels: -123456 (default)
undolevels=50 global
undolevels=-123456 local
Testing 'lispwords' local value
lispwords=foo,bar,baz
lispwords=bar,baz,quux
bar,baz,quux
Testing 'lispwords' value reset
lispwords=foo,bar,baz
lispwords=foo,bar,baz
foo,bar,baz]])
end)
end)