blob: 384d2aa94f4fb1092e606d30d71ea5551d022f11 [file] [log] [blame]
Bram Moolenaar451f8492016-04-14 17:16:22 +02001" Tests for :messages
2
3function Test_messages()
4 let oldmore = &more
5 try
6 set nomore
Bram Moolenaarbea1ede2016-04-14 19:44:36 +02007 " Avoid the "message maintainer" line.
8 let $LANG = ''
Bram Moolenaar451f8492016-04-14 17:16:22 +02009
10 let arr = map(range(10), '"hello" . v:val')
11 for s in arr
12 echomsg s | redraw
13 endfor
14 let result = ''
15
Bram Moolenaarbea1ede2016-04-14 19:44:36 +020016 " get last two messages
Bram Moolenaar451f8492016-04-14 17:16:22 +020017 redir => result
18 2messages | redraw
19 redir END
Bram Moolenaarbea1ede2016-04-14 19:44:36 +020020 let msg_list = split(result, "\n")
21 call assert_equal(["hello8", "hello9"], msg_list)
Bram Moolenaar451f8492016-04-14 17:16:22 +020022
23 " clear messages without last one
24 1messages clear
25 redir => result
Bram Moolenaarbea1ede2016-04-14 19:44:36 +020026 redraw | messages
Bram Moolenaar451f8492016-04-14 17:16:22 +020027 redir END
Bram Moolenaarbea1ede2016-04-14 19:44:36 +020028 let msg_list = split(result, "\n")
29 call assert_equal(['hello9'], msg_list)
Bram Moolenaar451f8492016-04-14 17:16:22 +020030
31 " clear all messages
32 messages clear
33 redir => result
Bram Moolenaarbea1ede2016-04-14 19:44:36 +020034 redraw | messages
Bram Moolenaar451f8492016-04-14 17:16:22 +020035 redir END
Bram Moolenaarbea1ede2016-04-14 19:44:36 +020036 call assert_equal('', result)
Bram Moolenaar451f8492016-04-14 17:16:22 +020037 finally
38 let &more = oldmore
39 endtry
40endfunction
Bram Moolenaar2abad542018-05-19 14:43:45 +020041
42" Patch 7.4.1696 defined the "clearmode()" command for clearing the mode
43" indicator (e.g., "-- INSERT --") when ":stopinsert" is invoked. Message
44" output could then be disturbed when 'cmdheight' was greater than one.
45" This test ensures that the bugfix for this issue remains in place.
46function! Test_stopinsert_does_not_break_message_output()
47 set cmdheight=2
48 redraw!
49
50 stopinsert | echo 'test echo'
51 call assert_equal(116, screenchar(&lines - 1, 1))
52 call assert_equal(32, screenchar(&lines, 1))
53 redraw!
54
55 stopinsert | echomsg 'test echomsg'
56 call assert_equal(116, screenchar(&lines - 1, 1))
57 call assert_equal(32, screenchar(&lines, 1))
58 redraw!
59
60 set cmdheight&
61endfunction