143345546SBram Moolenaar" Test that the methods used for testing work. 243345546SBram Moolenaar 3683fa185SBram Moolenaarfunc Test_assert_false() 4683fa185SBram Moolenaar call assert_false(0) 537127926SBram Moolenaar call assert_false(v:false) 643345546SBram Moolenaarendfunc 743345546SBram Moolenaar 8683fa185SBram Moolenaarfunc Test_assert_true() 9683fa185SBram Moolenaar call assert_true(1) 10683fa185SBram Moolenaar call assert_true(123) 1137127926SBram Moolenaar call assert_true(v:true) 1243345546SBram Moolenaarendfunc 1343345546SBram Moolenaar 14683fa185SBram Moolenaarfunc Test_assert_equal() 1543345546SBram Moolenaar let s = 'foo' 16683fa185SBram Moolenaar call assert_equal('foo', s) 1743345546SBram Moolenaar let n = 4 18683fa185SBram Moolenaar call assert_equal(4, n) 1943345546SBram Moolenaar let l = [1, 2, 3] 20683fa185SBram Moolenaar call assert_equal([1, 2, 3], l) 21b50e5f56SBram Moolenaar 22b50e5f56SBram Moolenaar let s = 'foo' 23b50e5f56SBram Moolenaar call assert_equal('bar', s) 24b50e5f56SBram Moolenaar call assert_match("Expected 'bar' but got 'foo'", v:errors[0]) 25b50e5f56SBram Moolenaar call remove(v:errors, 0) 26b50e5f56SBram Moolenaarendfunc 27b50e5f56SBram Moolenaar 28b50e5f56SBram Moolenaarfunc Test_assert_notequal() 29b50e5f56SBram Moolenaar let n = 4 30b50e5f56SBram Moolenaar call assert_notequal('foo', n) 31b50e5f56SBram Moolenaar let s = 'foo' 32b50e5f56SBram Moolenaar call assert_notequal([1, 2, 3], s) 33b50e5f56SBram Moolenaar 34b50e5f56SBram Moolenaar call assert_notequal('foo', s) 355869cf06SBram Moolenaar call assert_match("Expected not equal to 'foo'", v:errors[0]) 36b50e5f56SBram Moolenaar call remove(v:errors, 0) 3743345546SBram Moolenaarendfunc 382d820808SBram Moolenaar 39da5dcd93SBram Moolenaarfunc Test_assert_exception() 40da5dcd93SBram Moolenaar try 41da5dcd93SBram Moolenaar nocommand 42da5dcd93SBram Moolenaar catch 43da5dcd93SBram Moolenaar call assert_exception('E492:') 44da5dcd93SBram Moolenaar endtry 45da5dcd93SBram Moolenaar 46da5dcd93SBram Moolenaar try 47da5dcd93SBram Moolenaar nocommand 48da5dcd93SBram Moolenaar catch 49da5dcd93SBram Moolenaar try 50da5dcd93SBram Moolenaar " illegal argument, get NULL for error 51da5dcd93SBram Moolenaar call assert_exception([]) 52da5dcd93SBram Moolenaar catch 53da5dcd93SBram Moolenaar call assert_exception('E730:') 54da5dcd93SBram Moolenaar endtry 55da5dcd93SBram Moolenaar endtry 56da5dcd93SBram Moolenaarendfunc 57da5dcd93SBram Moolenaar 58a542c680SBram Moolenaarfunc Test_wrong_error_type() 59a542c680SBram Moolenaar let save_verrors = v:errors 60a542c680SBram Moolenaar let v:['errors'] = {'foo': 3} 61a542c680SBram Moolenaar call assert_equal('yes', 'no') 62a542c680SBram Moolenaar let verrors = v:errors 63a542c680SBram Moolenaar let v:errors = save_verrors 64a542c680SBram Moolenaar call assert_equal(type([]), type(verrors)) 65a542c680SBram Moolenaarendfunc 66a542c680SBram Moolenaar 67f1551964SBram Moolenaarfunc Test_compare_fail() 68f1551964SBram Moolenaar let s:v = {} 69f1551964SBram Moolenaar let s:x = {"a": s:v} 70f1551964SBram Moolenaar let s:v["b"] = s:x 71f1551964SBram Moolenaar let s:w = {"c": s:x, "d": ''} 72f1551964SBram Moolenaar try 73f1551964SBram Moolenaar call assert_equal(s:w, '') 74f1551964SBram Moolenaar catch 75f1551964SBram Moolenaar call assert_exception('E724:') 76ea6553beSBram Moolenaar call assert_match("Expected NULL but got ''", v:errors[0]) 77f1551964SBram Moolenaar call remove(v:errors, 0) 78f1551964SBram Moolenaar endtry 79f1551964SBram Moolenaarendfunc 80f1551964SBram Moolenaar 81ea6553beSBram Moolenaarfunc Test_match() 82ea6553beSBram Moolenaar call assert_match('^f.*b.*r$', 'foobar') 83ea6553beSBram Moolenaar 84ea6553beSBram Moolenaar call assert_match('bar.*foo', 'foobar') 85ea6553beSBram Moolenaar call assert_match("Pattern 'bar.*foo' does not match 'foobar'", v:errors[0]) 86ea6553beSBram Moolenaar call remove(v:errors, 0) 87ea6553beSBram Moolenaar 88ea6553beSBram Moolenaar call assert_match('bar.*foo', 'foobar', 'wrong') 89ea6553beSBram Moolenaar call assert_match('wrong', v:errors[0]) 90ea6553beSBram Moolenaar call remove(v:errors, 0) 91ea6553beSBram Moolenaarendfunc 92ea6553beSBram Moolenaar 93b50e5f56SBram Moolenaarfunc Test_notmatch() 94b50e5f56SBram Moolenaar call assert_notmatch('foo', 'bar') 95b50e5f56SBram Moolenaar call assert_notmatch('^foobar$', 'foobars') 96b50e5f56SBram Moolenaar 97b50e5f56SBram Moolenaar call assert_notmatch('foo', 'foobar') 98b50e5f56SBram Moolenaar call assert_match("Pattern 'foo' does match 'foobar'", v:errors[0]) 99b50e5f56SBram Moolenaar call remove(v:errors, 0) 100b50e5f56SBram Moolenaarendfunc 101b50e5f56SBram Moolenaar 1021abb5026SBram Moolenaarfunc Test_assert_fail_fails() 1031abb5026SBram Moolenaar call assert_fails('xxx', {}) 104ea6553beSBram Moolenaar call assert_match("Expected {} but got 'E731:", v:errors[0]) 1051abb5026SBram Moolenaar call remove(v:errors, 0) 1061abb5026SBram Moolenaarendfunc 1071abb5026SBram Moolenaar 10861c04493SBram Moolenaarfunc Test_assert_inrange() 10961c04493SBram Moolenaar call assert_inrange(7, 7, 7) 11061c04493SBram Moolenaar call assert_inrange(5, 7, 5) 11161c04493SBram Moolenaar call assert_inrange(5, 7, 6) 11261c04493SBram Moolenaar call assert_inrange(5, 7, 7) 11361c04493SBram Moolenaar 11461c04493SBram Moolenaar call assert_inrange(5, 7, 4) 11561c04493SBram Moolenaar call assert_match("Expected range 5 - 7, but got 4", v:errors[0]) 11661c04493SBram Moolenaar call remove(v:errors, 0) 11761c04493SBram Moolenaar call assert_inrange(5, 7, 8) 11861c04493SBram Moolenaar call assert_match("Expected range 5 - 7, but got 8", v:errors[0]) 11961c04493SBram Moolenaar call remove(v:errors, 0) 12034215663SBram Moolenaar 12134215663SBram Moolenaar call assert_fails('call assert_inrange(1, 1)', 'E119:') 12261c04493SBram Moolenaarendfunc 123f1551964SBram Moolenaar 124c7b831caSBram Moolenaarfunc Test_assert_with_msg() 125c7b831caSBram Moolenaar call assert_equal('foo', 'bar', 'testing') 126c7b831caSBram Moolenaar call assert_match("testing: Expected 'foo' but got 'bar'", v:errors[0]) 127c7b831caSBram Moolenaar call remove(v:errors, 0) 128c7b831caSBram Moolenaarendfunc 129c7b831caSBram Moolenaar 130*eb992cb9SBram Moolenaarfunc Test_override() 131*eb992cb9SBram Moolenaar call test_override('char_avail', 1) 132*eb992cb9SBram Moolenaar call test_override('redraw', 1) 133*eb992cb9SBram Moolenaar call test_override('ALL', 0) 134*eb992cb9SBram Moolenaar call assert_fails("call test_override('xxx', 1)", 'E475') 135*eb992cb9SBram Moolenaar call assert_fails("call test_override('redraw', 'yes')", 'E474') 136*eb992cb9SBram Moolenaarendfunc 137*eb992cb9SBram Moolenaar 1382d820808SBram Moolenaarfunc Test_user_is_happy() 1392d820808SBram Moolenaar smile 1402d820808SBram Moolenaar sleep 300m 1412d820808SBram Moolenaarendfunc 142