vim-patch:8.2.0198: no tests for y/n prompt

Problem:    No tests for y/n prompt.
Solution:   Add tests. (Dominique Pelle, closes vim/vim#5564)
43c60eda2a
This commit is contained in:
zeertzjq
2022-07-16 21:14:54 +08:00
parent f7c6676199
commit bc73795a58
2 changed files with 101 additions and 1 deletions

View File

@@ -203,7 +203,37 @@ func Test_message_more()
call term_sendkeys(buf, 'q')
call WaitForAssert({-> assert_equal('100', term_getline(buf, 5))})
call term_sendkeys(buf, ':q!')
call term_sendkeys(buf, ":q!\n")
call StopVimInTerminal(buf)
endfunc
func Test_ask_yesno()
if !CanRunVimInTerminal()
throw 'Skipped: cannot run vim in terminal'
endif
let buf = RunVimInTerminal('', {'rows': 6})
call term_sendkeys(buf, ":call setline(1, range(1, 2))\n")
call term_sendkeys(buf, ":2,1s/^/n/\n")
call WaitForAssert({-> assert_equal('Backwards range given, OK to swap (y/n)?', term_getline(buf, 6))})
call term_sendkeys(buf, "n")
call WaitForAssert({-> assert_match('^Backwards range given, OK to swap (y/n)?n *1,1 *All$', term_getline(buf, 6))})
call WaitForAssert({-> assert_equal('1', term_getline(buf, 1))})
call term_sendkeys(buf, ":2,1s/^/Esc/\n")
call WaitForAssert({-> assert_equal('Backwards range given, OK to swap (y/n)?', term_getline(buf, 6))})
call term_sendkeys(buf, "\<Esc>")
call WaitForAssert({-> assert_match('^Backwards range given, OK to swap (y/n)?n *1,1 *All$', term_getline(buf, 6))})
call WaitForAssert({-> assert_equal('1', term_getline(buf, 1))})
call term_sendkeys(buf, ":2,1s/^/y/\n")
call WaitForAssert({-> assert_equal('Backwards range given, OK to swap (y/n)?', term_getline(buf, 6))})
call term_sendkeys(buf, "y")
call WaitForAssert({-> assert_match('^Backwards range given, OK to swap (y/n)?y *2,1 *All$', term_getline(buf, 6))})
call WaitForAssert({-> assert_equal('y1', term_getline(buf, 1))})
call WaitForAssert({-> assert_equal('y2', term_getline(buf, 2))})
call term_sendkeys(buf, ":q!\n")
call StopVimInTerminal(buf)
endfunc