mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 09:44:31 +00:00 
			
		
		
		
	Specifically, functions that are run in the context of the test runner are put in module `test/testutil.lua` while the functions that are run in the context of the test session are put in `test/functional/testnvim.lua`. Closes https://github.com/neovim/neovim/issues/27004.
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
local t = require('test.testutil')
 | 
						|
local n = require('test.functional.testnvim')()
 | 
						|
 | 
						|
local source, clear = n.source, n.clear
 | 
						|
local eq, api = t.eq, n.api
 | 
						|
 | 
						|
describe('undolevel', function()
 | 
						|
  setup(clear)
 | 
						|
 | 
						|
  it('is working', function()
 | 
						|
    source([[
 | 
						|
      func FillBuffer()
 | 
						|
        for i in range(1,13)
 | 
						|
          put=i
 | 
						|
          " Set 'undolevels' to split undo.
 | 
						|
          exe "setg ul=" . &g:ul
 | 
						|
        endfor
 | 
						|
      endfunc
 | 
						|
 | 
						|
      func Test_global_local_undolevels()
 | 
						|
        new one
 | 
						|
        set undolevels=5
 | 
						|
        call FillBuffer()
 | 
						|
        " will only undo the last 5 changes, end up with 13 - (5 + 1) = 7 lines
 | 
						|
        earlier 10
 | 
						|
        call assert_equal(5, &g:undolevels)
 | 
						|
        call assert_equal(-123456, &l:undolevels)
 | 
						|
        call assert_equal('7', getline('$'))
 | 
						|
 | 
						|
        new two
 | 
						|
        setlocal undolevels=2
 | 
						|
        call FillBuffer()
 | 
						|
        " will only undo the last 2 changes, end up with 13 - (2 + 1) = 10 lines
 | 
						|
        earlier 10
 | 
						|
        call assert_equal(5, &g:undolevels)
 | 
						|
        call assert_equal(2, &l:undolevels)
 | 
						|
        call assert_equal('10', getline('$'))
 | 
						|
 | 
						|
        setlocal ul=10
 | 
						|
        call assert_equal(5, &g:undolevels)
 | 
						|
        call assert_equal(10, &l:undolevels)
 | 
						|
 | 
						|
        " Setting local value in "two" must not change local value in "one"
 | 
						|
        wincmd p
 | 
						|
        call assert_equal(5, &g:undolevels)
 | 
						|
        call assert_equal(-123456, &l:undolevels)
 | 
						|
 | 
						|
        new three
 | 
						|
        setglobal ul=50
 | 
						|
        call assert_equal(50, &g:undolevels)
 | 
						|
        call assert_equal(-123456, &l:undolevels)
 | 
						|
 | 
						|
        " Drop created windows
 | 
						|
        set ul&
 | 
						|
        new
 | 
						|
        only!
 | 
						|
      endfunc
 | 
						|
 | 
						|
      call Test_global_local_undolevels()
 | 
						|
    ]])
 | 
						|
 | 
						|
    eq({}, api.nvim_get_vvar('errors'))
 | 
						|
  end)
 | 
						|
end)
 |