aboutsummaryrefslogtreecommitdiff
path: root/test/old/testdir/test_assert.vim
diff options
context:
space:
mode:
Diffstat (limited to 'test/old/testdir/test_assert.vim')
-rw-r--r--test/old/testdir/test_assert.vim128
1 files changed, 111 insertions, 17 deletions
diff --git a/test/old/testdir/test_assert.vim b/test/old/testdir/test_assert.vim
index 62b2e5d7ab..57d11d0e3a 100644
--- a/test/old/testdir/test_assert.vim
+++ b/test/old/testdir/test_assert.vim
@@ -1,5 +1,8 @@
" Test that the methods used for testing work.
+source check.vim
+source term_util.vim
+
func Test_assert_false()
call assert_equal(0, assert_false(0))
call assert_equal(0, assert_false(v:false))
@@ -228,11 +231,11 @@ func Test_assert_fail_fails()
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 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 assert_match("Expected 'E9876' but got 'E492:", v:errors[0])
call remove(v:errors, 0)
call assert_equal(1, assert_fails('echo', '', 'echo command'))
@@ -258,6 +261,20 @@ func Test_assert_fail_fails()
call assert_match("E856: \"assert_fails()\" second argument", exp)
try
+ call assert_equal(1, assert_fails('xxx', v:_null_list))
+ catch
+ let exp = v:exception
+ endtry
+ call assert_match("E856: \"assert_fails()\" second argument", exp)
+
+ 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', #{one: 1}))
catch
let exp = v:exception
@@ -265,6 +282,21 @@ func Test_assert_fail_fails()
call assert_match("E1222: String or List required for argument 2", exp)
try
+ call assert_equal(0, assert_fails('xxx', [#{one: 1}]))
+ catch
+ let exp = v:exception
+ endtry
+ call assert_match("E731: Using a Dictionary as a String", exp)
+
+ let exp = ''
+ try
+ call assert_equal(0, assert_fails('xxx', ['E492', #{one: 1}]))
+ catch
+ let exp = v:exception
+ endtry
+ call assert_match("E731: Using a Dictionary as a String", exp)
+
+ try
call assert_equal(1, assert_fails('xxx', 'E492', '', 'burp'))
catch
let exp = v:exception
@@ -277,6 +309,19 @@ func Test_assert_fail_fails()
let exp = v:exception
endtry
call assert_match("E1174: String required for argument 5", exp)
+
+ call assert_equal(1, assert_fails('c0', ['', '\(.\)\1']))
+ call assert_match("Expected '\\\\\\\\(.\\\\\\\\)\\\\\\\\1' but got 'E939: Positive count required: c0': c0", v:errors[0])
+ call remove(v:errors, 0)
+
+ " Test for matching the line number and the script name in an error message
+ call writefile(['', 'call Xnonexisting()'], 'Xassertfails.vim', 'D')
+ call assert_fails('source Xassertfails.vim', 'E117:', '', 10)
+ call assert_match("Expected 10 but got 2", v:errors[0])
+ call remove(v:errors, 0)
+ call assert_fails('source Xassertfails.vim', 'E117:', '', 2, 'Xabc')
+ call assert_match("Expected 'Xabc' but got .*Xassertfails.vim", v:errors[0])
+ call remove(v:errors, 0)
endfunc
func Test_assert_fails_in_try_block()
@@ -285,6 +330,23 @@ func Test_assert_fails_in_try_block()
endtry
endfunc
+" Test that assert_fails() in a timer does not cause a hit-enter prompt.
+" Requires using a terminal, in regular tests the hit-enter prompt won't be
+" triggered.
+func Test_assert_fails_in_timer()
+ CheckRunVimInTerminal
+
+ let buf = RunVimInTerminal('', {'rows': 6})
+ let cmd = ":call timer_start(0, {-> assert_fails('call', 'E471:')})"
+ call term_sendkeys(buf, cmd)
+ call WaitForAssert({-> assert_equal(cmd, term_getline(buf, 6))})
+ call term_sendkeys(buf, "\<CR>")
+ call TermWait(buf, 100)
+ call assert_match('E471: Argument required', term_getline(buf, 6))
+
+ call StopVimInTerminal(buf)
+endfunc
+
func Test_assert_beeps()
new
call assert_equal(0, assert_beeps('normal h'))
@@ -301,6 +363,12 @@ func Test_assert_beeps()
bwipe
endfunc
+func Test_assert_nobeep()
+ call assert_equal(1, assert_nobeep('normal! cr'))
+ call assert_match("command did beep: normal! cr", v:errors[0])
+ call remove(v:errors, 0)
+endfunc
+
func Test_assert_inrange()
call assert_equal(0, assert_inrange(7, 7, 7))
call assert_equal(0, assert_inrange(5, 7, 5))
@@ -322,21 +390,32 @@ func Test_assert_inrange()
call assert_fails('call assert_inrange(1, 1)', 'E119:')
- if has('float')
- call assert_equal(0, assert_inrange(7.0, 7, 7))
- call assert_equal(0, assert_inrange(7, 7.0, 7))
- call assert_equal(0, assert_inrange(7, 7, 7.0))
- call assert_equal(0, assert_inrange(5, 7, 5.0))
- call assert_equal(0, assert_inrange(5, 7, 6.0))
- call assert_equal(0, assert_inrange(5, 7, 7.0))
-
- call assert_equal(1, assert_inrange(5, 7, 4.0))
- call assert_match("Expected range 5.0 - 7.0, but got 4.0", v:errors[0])
- call remove(v:errors, 0)
- call assert_equal(1, assert_inrange(5, 7, 8.0))
- call assert_match("Expected range 5.0 - 7.0, but got 8.0", v:errors[0])
- call remove(v:errors, 0)
- endif
+ call assert_equal(0, assert_inrange(7.0, 7, 7))
+ call assert_equal(0, assert_inrange(7, 7.0, 7))
+ call assert_equal(0, assert_inrange(7, 7, 7.0))
+ call assert_equal(0, assert_inrange(5, 7, 5.0))
+ call assert_equal(0, assert_inrange(5, 7, 6.0))
+ call assert_equal(0, assert_inrange(5, 7, 7.0))
+
+ call assert_equal(1, assert_inrange(5, 7, 4.0))
+ call assert_match("Expected range 5.0 - 7.0, but got 4.0", v:errors[0])
+ call remove(v:errors, 0)
+ call assert_equal(1, assert_inrange(5, 7, 8.0))
+ call assert_match("Expected range 5.0 - 7.0, but got 8.0", v:errors[0])
+ call remove(v:errors, 0)
+
+ " Use a custom message
+ call assert_equal(1, assert_inrange(5, 7, 8, "Higher"))
+ call assert_match("Higher: Expected range 5 - 7, but got 8", v:errors[0])
+ call remove(v:errors, 0)
+ call assert_equal(1, assert_inrange(5, 7, 8.0, "Higher"))
+ call assert_match("Higher: Expected range 5.0 - 7.0, but got 8.0", v:errors[0])
+ call remove(v:errors, 0)
+
+ " Invalid arguments
+ call assert_fails("call assert_inrange([], 2, 3)", 'E1219:')
+ call assert_fails("call assert_inrange(1, [], 3)", 'E1219:')
+ call assert_fails("call assert_inrange(1, 2, [])", 'E1219:')
endfunc
func Test_assert_with_msg()
@@ -374,6 +453,21 @@ func Test_mouse_position()
let &mouse = save_mouse
endfunc
+" Test for the test_alloc_fail() function
+func Test_test_alloc_fail()
+ throw 'Skipped: Nvim does not support test_alloc_fail()'
+ call assert_fails('call test_alloc_fail([], 1, 1)', 'E474:')
+ call assert_fails('call test_alloc_fail(10, [], 1)', 'E474:')
+ call assert_fails('call test_alloc_fail(10, 1, [])', 'E474:')
+ call assert_fails('call test_alloc_fail(999999, 1, 1)', 'E474:')
+endfunc
+
+" Test for the test_option_not_set() function
+func Test_test_option_not_set()
+ throw 'Skipped: Nvim does not support test_option_not_set()'
+ call assert_fails('call test_option_not_set("Xinvalidopt")', 'E475:')
+endfunc
+
" Must be last.
func Test_zz_quit_detected()
" Verify that if a test function ends Vim the test script detects this.