diff src/testdir/test_assert.vim @ 21297:3ef53d66f30d v8.2.1199

patch 8.2.1199: not all assert functions are fully tested Commit: https://github.com/vim/vim/commit/7177da9dd4d9a521c6141c6fbf7e9a4d6296ab05 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jul 12 23:09:20 2020 +0200 patch 8.2.1199: not all assert functions are fully tested Problem: Not all assert functions are fully tested. Solution: Test more assert functions.
author Bram Moolenaar <Bram@vim.org>
date Sun, 12 Jul 2020 23:15:05 +0200
parents 7833afe1c66e
children 08940efa6b4e
line wrap: on
line diff
--- a/src/testdir/test_assert.vim
+++ b/src/testdir/test_assert.vim
@@ -48,6 +48,11 @@ func Test_assert_equal()
   call assert_equal('XxxxxxxxxxxxxxxxxxxxxxX', 'XyyyyyyyyyyyyyyyyyyyyyyyyyX')
   call assert_match("Expected 'X\\\\\\[x occurs 21 times]X' but got 'X\\\\\\[y occurs 25 times]X'", v:errors[0])
   call remove(v:errors, 0)
+
+  " special characters are escaped
+  call assert_equal("\b\e\f\n\t\r\\\x01\x7f", 'x')
+  call assert_match('Expected ''\\b\\e\\f\\n\\t\\r\\\\\\x01\\x7f'' but got ''x''', v:errors[0])
+  call remove(v:errors, 0)
 endfunc
 
 func Test_assert_equal_dict()
@@ -146,6 +151,14 @@ func Test_assert_exception()
   try
     nocommand
   catch
+    call assert_equal(1, assert_exception('E12345:'))
+  endtry
+  call assert_match("Expected 'E12345:' but got 'Vim:E492: ", v:errors[0])
+  call remove(v:errors, 0)
+
+  try
+    nocommand
+  catch
     try
       " illegal argument, get NULL for error
       call assert_equal(1, assert_exception([]))
@@ -153,6 +166,10 @@ func Test_assert_exception()
       call assert_equal(0, assert_exception('E730:'))
     endtry
   endtry
+
+  call assert_equal(1, assert_exception('E492:'))
+  call assert_match('v:exception is not set', v:errors[0])
+  call remove(v:errors, 0)
 endfunc
 
 func Test_wrong_error_type()
@@ -216,6 +233,14 @@ func Test_assert_fail_fails()
   call assert_match("stupid: Expected 'E9876' but got 'E492:", v:errors[0])
   call remove(v:errors, 0)
 
+  call assert_equal(1, assert_fails('xxx', ['E9876']))
+  call assert_match("Expected \\['E9876'\\] but got 'E492:", v:errors[0])
+  call remove(v:errors, 0)
+
+  call assert_equal(1, assert_fails('xxx', ['E492:', 'E9876']))
+  call assert_match("Expected \\['E492:', 'E9876'\\] but got 'E492:", v:errors[0])
+  call remove(v:errors, 0)
+
   call assert_equal(1, assert_fails('echo', '', 'echo command'))
   call assert_match("command did not fail: echo command", v:errors[0])
   call remove(v:errors, 0)
@@ -223,6 +248,27 @@ func Test_assert_fail_fails()
   call assert_equal(1, 'echo'->assert_fails('', 'echo command'))
   call assert_match("command did not fail: echo command", v:errors[0])
   call remove(v:errors, 0)
+
+  try
+    call assert_equal(1, assert_fails('xxx', []))
+  catch
+    let exp = v:exception
+  endtry
+  call assert_match("E856: assert_fails() second argument", exp)
+
+  try
+    call assert_equal(1, assert_fails('xxx', ['1', '2', '3']))
+  catch
+    let exp = v:exception
+  endtry
+  call assert_match("E856: assert_fails() second argument", exp)
+
+  try
+    call assert_equal(1, assert_fails('xxx', #{one: 1}))
+  catch
+    let exp = v:exception
+  endtry
+  call assert_match("E856: assert_fails() second argument", exp)
 endfunc
 
 func Test_assert_fails_in_try_block()