mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Merge pull request #17368 from zeertzjq/test-filechanged-dialog
test: convert Test_file_changed_dialog() to Lua functional test
This commit is contained in:
commit
b981c231e2
@ -91,7 +91,7 @@ func Test_FileChangedShell_reload()
|
|||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_file_changed_dialog()
|
func Test_file_changed_dialog()
|
||||||
throw 'skipped: TODO: '
|
throw 'Skipped: requires a UI to a active'
|
||||||
if !has('unix') || has('gui_running')
|
if !has('unix') || has('gui_running')
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
76
test/functional/legacy/filechanged_spec.lua
Normal file
76
test/functional/legacy/filechanged_spec.lua
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
local helpers = require('test.functional.helpers')(after_each)
|
||||||
|
local clear, source = helpers.clear, helpers.source
|
||||||
|
local call, eq, meths = helpers.call, helpers.eq, helpers.meths
|
||||||
|
|
||||||
|
local function expected_empty()
|
||||||
|
eq({}, meths.get_vvar('errors'))
|
||||||
|
end
|
||||||
|
|
||||||
|
describe('file changed dialog', function()
|
||||||
|
before_each(function()
|
||||||
|
clear()
|
||||||
|
meths.ui_attach(80, 24, {})
|
||||||
|
meths.set_option('autoread', false)
|
||||||
|
source([[
|
||||||
|
func Test_file_changed_dialog()
|
||||||
|
au! FileChangedShell
|
||||||
|
|
||||||
|
new Xchanged_d
|
||||||
|
call setline(1, 'reload this')
|
||||||
|
write
|
||||||
|
" Need to wait until the timestamp would change by at least a second.
|
||||||
|
sleep 2
|
||||||
|
silent !echo 'extra line' >>Xchanged_d
|
||||||
|
call nvim_input('L')
|
||||||
|
checktime
|
||||||
|
call assert_match('W11:', v:warningmsg)
|
||||||
|
call assert_equal(2, line('$'))
|
||||||
|
call assert_equal('reload this', getline(1))
|
||||||
|
call assert_equal('extra line', getline(2))
|
||||||
|
|
||||||
|
" delete buffer, only shows an error, no prompt
|
||||||
|
silent !rm Xchanged_d
|
||||||
|
checktime
|
||||||
|
call assert_match('E211:', v:warningmsg)
|
||||||
|
call assert_equal(2, line('$'))
|
||||||
|
call assert_equal('extra line', getline(2))
|
||||||
|
let v:warningmsg = 'empty'
|
||||||
|
|
||||||
|
" change buffer, recreate the file and reload
|
||||||
|
call setline(1, 'buffer is changed')
|
||||||
|
silent !echo 'new line' >Xchanged_d
|
||||||
|
call nvim_input('L')
|
||||||
|
checktime
|
||||||
|
call assert_match('W12:', v:warningmsg)
|
||||||
|
call assert_equal(1, line('$'))
|
||||||
|
call assert_equal('new line', getline(1))
|
||||||
|
|
||||||
|
" Only mode changed, reload
|
||||||
|
silent !chmod +x Xchanged_d
|
||||||
|
call nvim_input('L')
|
||||||
|
checktime
|
||||||
|
call assert_match('W16:', v:warningmsg)
|
||||||
|
call assert_equal(1, line('$'))
|
||||||
|
call assert_equal('new line', getline(1))
|
||||||
|
|
||||||
|
" Only time changed, no prompt
|
||||||
|
sleep 2
|
||||||
|
silent !touch Xchanged_d
|
||||||
|
let v:warningmsg = ''
|
||||||
|
checktime
|
||||||
|
call assert_equal('', v:warningmsg)
|
||||||
|
call assert_equal(1, line('$'))
|
||||||
|
call assert_equal('new line', getline(1))
|
||||||
|
|
||||||
|
bwipe!
|
||||||
|
call delete('Xchanged_d')
|
||||||
|
endfunc
|
||||||
|
]])
|
||||||
|
end)
|
||||||
|
|
||||||
|
it('works', function()
|
||||||
|
if helpers.pending_win32(pending) then return end
|
||||||
|
call('Test_file_changed_dialog')
|
||||||
|
expected_empty()
|
||||||
|
end)
|
||||||
|
end)
|
Loading…
Reference in New Issue
Block a user