view src/testdir/test_exit.vim @ 16326:1679b9f54946 v8.1.1168

patch 8.1.1168: not all screen update code of terminal is executed in tests commit https://github.com/vim/vim/commit/87dcfd75c218107ca966c80a0a56b236be046fc9 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Apr 13 22:35:29 2019 +0200 patch 8.1.1168: not all screen update code of terminal is executed in tests Problem: Not all screen update code of the terminal window is executed in tests. Solution: Redraw before taking a screenshot.
author Bram Moolenaar <Bram@vim.org>
date Sat, 13 Apr 2019 22:45:04 +0200
parents 94e638936d3e
children 9c90cf08cfa8
line wrap: on
line source

" Tests for exiting Vim.

source shared.vim

func Test_exiting()
  let after = [
	\ 'au QuitPre * call writefile(["QuitPre"], "Xtestout")',
	\ 'au ExitPre * call writefile(["ExitPre"], "Xtestout", "a")',
	\ 'quit',
	\ ]
  if RunVim([], after, '')
    call assert_equal(['QuitPre', 'ExitPre'], readfile('Xtestout'))
  endif
  call delete('Xtestout')

  let after = [
	\ 'au QuitPre * call writefile(["QuitPre"], "Xtestout")',
	\ 'au ExitPre * call writefile(["ExitPre"], "Xtestout", "a")',
	\ 'help',
	\ 'wincmd w',
	\ 'quit',
	\ ]
  if RunVim([], after, '')
    call assert_equal(['QuitPre', 'ExitPre'], readfile('Xtestout'))
  endif
  call delete('Xtestout')

  let after = [
	\ 'au QuitPre * call writefile(["QuitPre"], "Xtestout")',
	\ 'au ExitPre * call writefile(["ExitPre"], "Xtestout", "a")',
	\ 'split',
	\ 'new',
	\ 'qall',
	\ ]
  if RunVim([], after, '')
    call assert_equal(['QuitPre', 'ExitPre'], readfile('Xtestout'))
  endif
  call delete('Xtestout')

  let after = [
	\ 'au QuitPre * call writefile(["QuitPre"], "Xtestout", "a")',
	\ 'au ExitPre * call writefile(["ExitPre"], "Xtestout", "a")',
	\ 'augroup nasty',
	\ '  au ExitPre * split',
	\ 'augroup END',
	\ 'quit',
	\ 'augroup nasty',
	\ '  au! ExitPre',
	\ 'augroup END',
	\ 'quit',
	\ ]
  if RunVim([], after, '')
    call assert_equal(['QuitPre', 'ExitPre', 'QuitPre', 'ExitPre'],
	  \ readfile('Xtestout'))
  endif
  call delete('Xtestout')
endfunc