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 28*d96ff165SBram Moolenaarfunc Test_assert_equalfile() 29*d96ff165SBram Moolenaar call assert_equalfile('abcabc', 'xyzxyz') 30*d96ff165SBram Moolenaar call assert_match("E485: Can't read file abcabc", v:errors[0]) 31*d96ff165SBram Moolenaar call remove(v:errors, 0) 32*d96ff165SBram Moolenaar 33*d96ff165SBram Moolenaar let goodtext = ["one", "two", "three"] 34*d96ff165SBram Moolenaar call writefile(goodtext, 'Xone') 35*d96ff165SBram Moolenaar call assert_equalfile('Xone', 'xyzxyz') 36*d96ff165SBram Moolenaar call assert_match("E485: Can't read file xyzxyz", v:errors[0]) 37*d96ff165SBram Moolenaar call remove(v:errors, 0) 38*d96ff165SBram Moolenaar 39*d96ff165SBram Moolenaar call writefile(goodtext, 'Xtwo') 40*d96ff165SBram Moolenaar call assert_equalfile('Xone', 'Xtwo') 41*d96ff165SBram Moolenaar 42*d96ff165SBram Moolenaar call writefile([goodtext[0]], 'Xone') 43*d96ff165SBram Moolenaar call assert_equalfile('Xone', 'Xtwo') 44*d96ff165SBram Moolenaar call assert_match("first file is shorter", v:errors[0]) 45*d96ff165SBram Moolenaar call remove(v:errors, 0) 46*d96ff165SBram Moolenaar 47*d96ff165SBram Moolenaar call writefile(goodtext, 'Xone') 48*d96ff165SBram Moolenaar call writefile([goodtext[0]], 'Xtwo') 49*d96ff165SBram Moolenaar call assert_equalfile('Xone', 'Xtwo') 50*d96ff165SBram Moolenaar call assert_match("second file is shorter", v:errors[0]) 51*d96ff165SBram Moolenaar call remove(v:errors, 0) 52*d96ff165SBram Moolenaar 53*d96ff165SBram Moolenaar call writefile(['1234X89'], 'Xone') 54*d96ff165SBram Moolenaar call writefile(['1234Y89'], 'Xtwo') 55*d96ff165SBram Moolenaar call assert_equalfile('Xone', 'Xtwo') 56*d96ff165SBram Moolenaar call assert_match("difference at byte 4", v:errors[0]) 57*d96ff165SBram Moolenaar call remove(v:errors, 0) 58*d96ff165SBram Moolenaar 59*d96ff165SBram Moolenaar call delete('Xone') 60*d96ff165SBram Moolenaar call delete('Xtwo') 61*d96ff165SBram Moolenaarendfunc 62*d96ff165SBram Moolenaar 63b50e5f56SBram Moolenaarfunc Test_assert_notequal() 64b50e5f56SBram Moolenaar let n = 4 65b50e5f56SBram Moolenaar call assert_notequal('foo', n) 66b50e5f56SBram Moolenaar let s = 'foo' 67b50e5f56SBram Moolenaar call assert_notequal([1, 2, 3], s) 68b50e5f56SBram Moolenaar 69b50e5f56SBram Moolenaar call assert_notequal('foo', s) 705869cf06SBram Moolenaar call assert_match("Expected not equal to 'foo'", v:errors[0]) 71b50e5f56SBram Moolenaar call remove(v:errors, 0) 7243345546SBram Moolenaarendfunc 732d820808SBram Moolenaar 7437175409SBram Moolenaarfunc Test_assert_report() 7537175409SBram Moolenaar call assert_report('something is wrong') 7637175409SBram Moolenaar call assert_match('something is wrong', v:errors[0]) 7737175409SBram Moolenaar call remove(v:errors, 0) 7837175409SBram Moolenaarendfunc 7937175409SBram Moolenaar 80da5dcd93SBram Moolenaarfunc Test_assert_exception() 81da5dcd93SBram Moolenaar try 82da5dcd93SBram Moolenaar nocommand 83da5dcd93SBram Moolenaar catch 84da5dcd93SBram Moolenaar call assert_exception('E492:') 85da5dcd93SBram Moolenaar endtry 86da5dcd93SBram Moolenaar 87da5dcd93SBram Moolenaar try 88da5dcd93SBram Moolenaar nocommand 89da5dcd93SBram Moolenaar catch 90da5dcd93SBram Moolenaar try 91da5dcd93SBram Moolenaar " illegal argument, get NULL for error 92da5dcd93SBram Moolenaar call assert_exception([]) 93da5dcd93SBram Moolenaar catch 94da5dcd93SBram Moolenaar call assert_exception('E730:') 95da5dcd93SBram Moolenaar endtry 96da5dcd93SBram Moolenaar endtry 97da5dcd93SBram Moolenaarendfunc 98da5dcd93SBram Moolenaar 99a542c680SBram Moolenaarfunc Test_wrong_error_type() 100a542c680SBram Moolenaar let save_verrors = v:errors 101a542c680SBram Moolenaar let v:['errors'] = {'foo': 3} 102a542c680SBram Moolenaar call assert_equal('yes', 'no') 103a542c680SBram Moolenaar let verrors = v:errors 104a542c680SBram Moolenaar let v:errors = save_verrors 105a542c680SBram Moolenaar call assert_equal(type([]), type(verrors)) 106a542c680SBram Moolenaarendfunc 107a542c680SBram Moolenaar 108f1551964SBram Moolenaarfunc Test_compare_fail() 109f1551964SBram Moolenaar let s:v = {} 110f1551964SBram Moolenaar let s:x = {"a": s:v} 111f1551964SBram Moolenaar let s:v["b"] = s:x 112f1551964SBram Moolenaar let s:w = {"c": s:x, "d": ''} 113f1551964SBram Moolenaar try 114f1551964SBram Moolenaar call assert_equal(s:w, '') 115f1551964SBram Moolenaar catch 116f1551964SBram Moolenaar call assert_exception('E724:') 117ea6553beSBram Moolenaar call assert_match("Expected NULL but got ''", v:errors[0]) 118f1551964SBram Moolenaar call remove(v:errors, 0) 119f1551964SBram Moolenaar endtry 120f1551964SBram Moolenaarendfunc 121f1551964SBram Moolenaar 122ea6553beSBram Moolenaarfunc Test_match() 123ea6553beSBram Moolenaar call assert_match('^f.*b.*r$', 'foobar') 124ea6553beSBram Moolenaar 125ea6553beSBram Moolenaar call assert_match('bar.*foo', 'foobar') 126ea6553beSBram Moolenaar call assert_match("Pattern 'bar.*foo' does not match 'foobar'", v:errors[0]) 127ea6553beSBram Moolenaar call remove(v:errors, 0) 128ea6553beSBram Moolenaar 129ea6553beSBram Moolenaar call assert_match('bar.*foo', 'foobar', 'wrong') 130ea6553beSBram Moolenaar call assert_match('wrong', v:errors[0]) 131ea6553beSBram Moolenaar call remove(v:errors, 0) 132ea6553beSBram Moolenaarendfunc 133ea6553beSBram Moolenaar 134b50e5f56SBram Moolenaarfunc Test_notmatch() 135b50e5f56SBram Moolenaar call assert_notmatch('foo', 'bar') 136b50e5f56SBram Moolenaar call assert_notmatch('^foobar$', 'foobars') 137b50e5f56SBram Moolenaar 138b50e5f56SBram Moolenaar call assert_notmatch('foo', 'foobar') 139b50e5f56SBram Moolenaar call assert_match("Pattern 'foo' does match 'foobar'", v:errors[0]) 140b50e5f56SBram Moolenaar call remove(v:errors, 0) 141b50e5f56SBram Moolenaarendfunc 142b50e5f56SBram Moolenaar 1431abb5026SBram Moolenaarfunc Test_assert_fail_fails() 1441abb5026SBram Moolenaar call assert_fails('xxx', {}) 145ea6553beSBram Moolenaar call assert_match("Expected {} but got 'E731:", v:errors[0]) 1461abb5026SBram Moolenaar call remove(v:errors, 0) 1471abb5026SBram Moolenaarendfunc 1481abb5026SBram Moolenaar 149b48e96f6SBram Moolenaarfunc Test_assert_beeps() 150b48e96f6SBram Moolenaar new 151b48e96f6SBram Moolenaar call assert_beeps('normal h') 152b48e96f6SBram Moolenaar 153b48e96f6SBram Moolenaar call assert_beeps('normal 0') 154b48e96f6SBram Moolenaar call assert_match("command did not beep: normal 0", v:errors[0]) 155b48e96f6SBram Moolenaar call remove(v:errors, 0) 156b48e96f6SBram Moolenaar bwipe 157b48e96f6SBram Moolenaarendfunc 158b48e96f6SBram Moolenaar 15961c04493SBram Moolenaarfunc Test_assert_inrange() 16061c04493SBram Moolenaar call assert_inrange(7, 7, 7) 16161c04493SBram Moolenaar call assert_inrange(5, 7, 5) 16261c04493SBram Moolenaar call assert_inrange(5, 7, 6) 16361c04493SBram Moolenaar call assert_inrange(5, 7, 7) 16461c04493SBram Moolenaar 16561c04493SBram Moolenaar call assert_inrange(5, 7, 4) 16661c04493SBram Moolenaar call assert_match("Expected range 5 - 7, but got 4", v:errors[0]) 16761c04493SBram Moolenaar call remove(v:errors, 0) 16861c04493SBram Moolenaar call assert_inrange(5, 7, 8) 16961c04493SBram Moolenaar call assert_match("Expected range 5 - 7, but got 8", v:errors[0]) 17061c04493SBram Moolenaar call remove(v:errors, 0) 17134215663SBram Moolenaar 17234215663SBram Moolenaar call assert_fails('call assert_inrange(1, 1)', 'E119:') 17361c04493SBram Moolenaarendfunc 174f1551964SBram Moolenaar 175c7b831caSBram Moolenaarfunc Test_assert_with_msg() 176c7b831caSBram Moolenaar call assert_equal('foo', 'bar', 'testing') 177c7b831caSBram Moolenaar call assert_match("testing: Expected 'foo' but got 'bar'", v:errors[0]) 178c7b831caSBram Moolenaar call remove(v:errors, 0) 179c7b831caSBram Moolenaarendfunc 180c7b831caSBram Moolenaar 181eb992cb9SBram Moolenaarfunc Test_override() 182eb992cb9SBram Moolenaar call test_override('char_avail', 1) 183eb992cb9SBram Moolenaar call test_override('redraw', 1) 184eb992cb9SBram Moolenaar call test_override('ALL', 0) 185eb992cb9SBram Moolenaar call assert_fails("call test_override('xxx', 1)", 'E475') 186eb992cb9SBram Moolenaar call assert_fails("call test_override('redraw', 'yes')", 'E474') 187eb992cb9SBram Moolenaarendfunc 188eb992cb9SBram Moolenaar 1892d820808SBram Moolenaarfunc Test_user_is_happy() 1902d820808SBram Moolenaar smile 1912d820808SBram Moolenaar sleep 300m 1922d820808SBram Moolenaarendfunc 193