@@ -48,6 +48,11 @@ func Test_assert_equal()
4848 call assert_equal (' XxxxxxxxxxxxxxxxxxxxxxX' , ' XyyyyyyyyyyyyyyyyyyyyyyyyyX' )
4949 call assert_match (" Expected 'X\\\\\\ [x occurs 21 times]X' but got 'X\\\\\\ [y occurs 25 times]X'" , v: errors [0 ])
5050 call remove (v: errors , 0 )
51+
52+ " special characters are escaped
53+ call assert_equal (" \b \e \f \n \t \r \\ \x01\x7f " , ' x' )
54+ call assert_match (' Expected '' \\b\\e\\f\\n\\t\\r\\\\\\x01\\x7f'' but got '' x'' ' , v: errors [0 ])
55+ call remove (v: errors , 0 )
5156endfunc
5257
5358func Test_assert_equal_dict ()
@@ -143,6 +148,14 @@ func Test_assert_exception()
143148 call assert_equal (0 , assert_exception (' E492:' ))
144149 endtry
145150
151+ try
152+ nocommand
153+ catch
154+ call assert_equal (1 , assert_exception (' E12345:' ))
155+ endtry
156+ call assert_match (" Expected 'E12345:' but got 'Vim:E492: " , v: errors [0 ])
157+ call remove (v: errors , 0 )
158+
146159 try
147160 nocommand
148161 catch
@@ -153,6 +166,10 @@ func Test_assert_exception()
153166 call assert_equal (0 , assert_exception (' E730:' ))
154167 endtry
155168 endtry
169+
170+ call assert_equal (1 , assert_exception (' E492:' ))
171+ call assert_match (' v:exception is not set' , v: errors [0 ])
172+ call remove (v: errors , 0 )
156173endfunc
157174
158175func Test_wrong_error_type ()
@@ -216,13 +233,42 @@ func Test_assert_fail_fails()
216233 call assert_match (" stupid: Expected 'E9876' but got 'E492:" , v: errors [0 ])
217234 call remove (v: errors , 0 )
218235
236+ call assert_equal (1 , assert_fails (' xxx' , [' E9876' ]))
237+ call assert_match (" Expected \\ ['E9876'\\ ] but got 'E492:" , v: errors [0 ])
238+ call remove (v: errors , 0 )
239+
240+ call assert_equal (1 , assert_fails (' xxx' , [' E492:' , ' E9876' ]))
241+ call assert_match (" Expected \\ ['E492:', 'E9876'\\ ] but got 'E492:" , v: errors [0 ])
242+ call remove (v: errors , 0 )
243+
219244 call assert_equal (1 , assert_fails (' echo' , ' ' , ' echo command' ))
220245 call assert_match (" command did not fail: echo command" , v: errors [0 ])
221246 call remove (v: errors , 0 )
222247
223248 call assert_equal (1 , ' echo' - >assert_fails (' ' , ' echo command' ))
224249 call assert_match (" command did not fail: echo command" , v: errors [0 ])
225250 call remove (v: errors , 0 )
251+
252+ try
253+ call assert_equal (1 , assert_fails (' xxx' , []))
254+ catch
255+ let exp = v: exception
256+ endtry
257+ call assert_match (" E856: assert_fails() second argument" , exp )
258+
259+ try
260+ call assert_equal (1 , assert_fails (' xxx' , [' 1' , ' 2' , ' 3' ]))
261+ catch
262+ let exp = v: exception
263+ endtry
264+ call assert_match (" E856: assert_fails() second argument" , exp )
265+
266+ try
267+ call assert_equal (1 , assert_fails (' xxx' , #{one: 1 }))
268+ catch
269+ let exp = v: exception
270+ endtry
271+ call assert_match (" E856: assert_fails() second argument" , exp )
226272endfunc
227273
228274func Test_assert_fails_in_try_block ()
0 commit comments