xref: /vim-8.2.3635/src/testdir/test_assert.vim (revision e2e4075f)
143345546SBram Moolenaar" Test that the methods used for testing work.
243345546SBram Moolenaar
3683fa185SBram Moolenaarfunc Test_assert_false()
465a54649SBram Moolenaar  call assert_equal(0, assert_false(0))
565a54649SBram Moolenaar  call assert_equal(0, assert_false(v:false))
624278d24SBram Moolenaar  call assert_equal(0, v:false->assert_false())
765a54649SBram Moolenaar
865a54649SBram Moolenaar  call assert_equal(1, assert_false(123))
965a54649SBram Moolenaar  call assert_match("Expected False but got 123", v:errors[0])
1065a54649SBram Moolenaar  call remove(v:errors, 0)
1124278d24SBram Moolenaar
1224278d24SBram Moolenaar  call assert_equal(1, 123->assert_false())
1324278d24SBram Moolenaar  call assert_match("Expected False but got 123", v:errors[0])
1424278d24SBram Moolenaar  call remove(v:errors, 0)
1543345546SBram Moolenaarendfunc
1643345546SBram Moolenaar
17683fa185SBram Moolenaarfunc Test_assert_true()
1865a54649SBram Moolenaar  call assert_equal(0, assert_true(1))
1965a54649SBram Moolenaar  call assert_equal(0, assert_true(123))
2065a54649SBram Moolenaar  call assert_equal(0, assert_true(v:true))
2124278d24SBram Moolenaar  call assert_equal(0, v:true->assert_true())
2265a54649SBram Moolenaar
2365a54649SBram Moolenaar  call assert_equal(1, assert_true(0))
2465a54649SBram Moolenaar  call assert_match("Expected True but got 0", v:errors[0])
2565a54649SBram Moolenaar  call remove(v:errors, 0)
2624278d24SBram Moolenaar
2724278d24SBram Moolenaar  call assert_equal(1, 0->assert_true())
2824278d24SBram Moolenaar  call assert_match("Expected True but got 0", v:errors[0])
2924278d24SBram Moolenaar  call remove(v:errors, 0)
3043345546SBram Moolenaarendfunc
3143345546SBram Moolenaar
32683fa185SBram Moolenaarfunc Test_assert_equal()
3343345546SBram Moolenaar  let s = 'foo'
3465a54649SBram Moolenaar  call assert_equal(0, assert_equal('foo', s))
3543345546SBram Moolenaar  let n = 4
3665a54649SBram Moolenaar  call assert_equal(0, assert_equal(4, n))
3743345546SBram Moolenaar  let l = [1, 2, 3]
3865a54649SBram Moolenaar  call assert_equal(0, assert_equal([1, 2, 3], l))
397b293c73SBram Moolenaar  call assert_equal(test_null_list(), test_null_list())
407b293c73SBram Moolenaar  call assert_equal(test_null_list(), [])
417b293c73SBram Moolenaar  call assert_equal([], test_null_list())
42b50e5f56SBram Moolenaar
43b50e5f56SBram Moolenaar  let s = 'foo'
4465a54649SBram Moolenaar  call assert_equal(1, assert_equal('bar', s))
45b50e5f56SBram Moolenaar  call assert_match("Expected 'bar' but got 'foo'", v:errors[0])
46b50e5f56SBram Moolenaar  call remove(v:errors, 0)
4786576712SBram Moolenaar
4886576712SBram Moolenaar  call assert_equal('XxxxxxxxxxxxxxxxxxxxxxX', 'XyyyyyyyyyyyyyyyyyyyyyyyyyX')
4986576712SBram Moolenaar  call assert_match("Expected 'X\\\\\\[x occurs 21 times]X' but got 'X\\\\\\[y occurs 25 times]X'", v:errors[0])
5086576712SBram Moolenaar  call remove(v:errors, 0)
517177da9dSBram Moolenaar
527177da9dSBram Moolenaar  " special characters are escaped
537177da9dSBram Moolenaar  call assert_equal("\b\e\f\n\t\r\\\x01\x7f", 'x')
547177da9dSBram Moolenaar  call assert_match('Expected ''\\b\\e\\f\\n\\t\\r\\\\\\x01\\x7f'' but got ''x''', v:errors[0])
557177da9dSBram Moolenaar  call remove(v:errors, 0)
56b50e5f56SBram Moolenaarendfunc
57b50e5f56SBram Moolenaar
584a021dfbSBram Moolenaarfunc Test_assert_equal_dict()
594a021dfbSBram Moolenaar  call assert_equal(0, assert_equal(#{one: 1, two: 2}, #{two: 2, one: 1}))
604a021dfbSBram Moolenaar
614a021dfbSBram Moolenaar  call assert_equal(1, assert_equal(#{one: 1, two: 2}, #{two: 2, one: 3}))
624a021dfbSBram Moolenaar  call assert_match("Expected {'one': 1} but got {'one': 3} - 1 equal item omitted", v:errors[0])
634a021dfbSBram Moolenaar  call remove(v:errors, 0)
644a021dfbSBram Moolenaar
654a021dfbSBram Moolenaar  call assert_equal(1, assert_equal(#{one: 1, two: 2}, #{two: 22, one: 11}))
664a021dfbSBram Moolenaar  call assert_match("Expected {'one': 1, 'two': 2} but got {'one': 11, 'two': 22}", v:errors[0])
674a021dfbSBram Moolenaar  call remove(v:errors, 0)
684a021dfbSBram Moolenaar
694a021dfbSBram Moolenaar  call assert_equal(1, assert_equal(#{}, #{two: 2, one: 1}))
704a021dfbSBram Moolenaar  call assert_match("Expected {} but got {'one': 1, 'two': 2}", v:errors[0])
714a021dfbSBram Moolenaar  call remove(v:errors, 0)
724a021dfbSBram Moolenaar
734a021dfbSBram Moolenaar  call assert_equal(1, assert_equal(#{two: 2, one: 1}, #{}))
744a021dfbSBram Moolenaar  call assert_match("Expected {'one': 1, 'two': 2} but got {}", v:errors[0])
754a021dfbSBram Moolenaar  call remove(v:errors, 0)
764a021dfbSBram Moolenaarendfunc
774a021dfbSBram Moolenaar
78d96ff165SBram Moolenaarfunc Test_assert_equalfile()
7965a54649SBram Moolenaar  call assert_equal(1, assert_equalfile('abcabc', 'xyzxyz'))
80d96ff165SBram Moolenaar  call assert_match("E485: Can't read file abcabc", v:errors[0])
81d96ff165SBram Moolenaar  call remove(v:errors, 0)
82d96ff165SBram Moolenaar
83d96ff165SBram Moolenaar  let goodtext = ["one", "two", "three"]
84d96ff165SBram Moolenaar  call writefile(goodtext, 'Xone')
85e49fbff3SBram Moolenaar  call assert_equal(1, 'Xone'->assert_equalfile('xyzxyz'))
86d96ff165SBram Moolenaar  call assert_match("E485: Can't read file xyzxyz", v:errors[0])
87d96ff165SBram Moolenaar  call remove(v:errors, 0)
88d96ff165SBram Moolenaar
89d96ff165SBram Moolenaar  call writefile(goodtext, 'Xtwo')
9065a54649SBram Moolenaar  call assert_equal(0, assert_equalfile('Xone', 'Xtwo'))
91d96ff165SBram Moolenaar
92d96ff165SBram Moolenaar  call writefile([goodtext[0]], 'Xone')
9365a54649SBram Moolenaar  call assert_equal(1, assert_equalfile('Xone', 'Xtwo'))
94d96ff165SBram Moolenaar  call assert_match("first file is shorter", v:errors[0])
95d96ff165SBram Moolenaar  call remove(v:errors, 0)
96d96ff165SBram Moolenaar
97d96ff165SBram Moolenaar  call writefile(goodtext, 'Xone')
98d96ff165SBram Moolenaar  call writefile([goodtext[0]], 'Xtwo')
9965a54649SBram Moolenaar  call assert_equal(1, assert_equalfile('Xone', 'Xtwo'))
100d96ff165SBram Moolenaar  call assert_match("second file is shorter", v:errors[0])
101d96ff165SBram Moolenaar  call remove(v:errors, 0)
102d96ff165SBram Moolenaar
103d96ff165SBram Moolenaar  call writefile(['1234X89'], 'Xone')
104d96ff165SBram Moolenaar  call writefile(['1234Y89'], 'Xtwo')
10565a54649SBram Moolenaar  call assert_equal(1, assert_equalfile('Xone', 'Xtwo'))
10630cc44a9SBram Moolenaar  call assert_match('difference at byte 4, line 1 after "1234X" vs "1234Y"', v:errors[0])
10730cc44a9SBram Moolenaar  call remove(v:errors, 0)
10830cc44a9SBram Moolenaar
10930cc44a9SBram Moolenaar  call writefile([repeat('x', 234) .. 'X'], 'Xone')
11030cc44a9SBram Moolenaar  call writefile([repeat('x', 234) .. 'Y'], 'Xtwo')
11130cc44a9SBram Moolenaar  call assert_equal(1, assert_equalfile('Xone', 'Xtwo'))
11230cc44a9SBram Moolenaar  let xes = repeat('x', 134)
11330cc44a9SBram Moolenaar  call assert_match('difference at byte 234, line 1 after "' .. xes .. 'X" vs "' .. xes .. 'Y"', v:errors[0])
114d96ff165SBram Moolenaar  call remove(v:errors, 0)
115d96ff165SBram Moolenaar
116fb517bacSBram Moolenaar  call assert_equal(1, assert_equalfile('Xone', 'Xtwo', 'a message'))
11730cc44a9SBram Moolenaar  call assert_match("a message: difference at byte 234, line 1 after", v:errors[0])
118fb517bacSBram Moolenaar  call remove(v:errors, 0)
119fb517bacSBram Moolenaar
120d96ff165SBram Moolenaar  call delete('Xone')
121d96ff165SBram Moolenaar  call delete('Xtwo')
122d96ff165SBram Moolenaarendfunc
123d96ff165SBram Moolenaar
124b50e5f56SBram Moolenaarfunc Test_assert_notequal()
125b50e5f56SBram Moolenaar  let n = 4
12665a54649SBram Moolenaar  call assert_equal(0, assert_notequal('foo', n))
127b50e5f56SBram Moolenaar  let s = 'foo'
12865a54649SBram Moolenaar  call assert_equal(0, assert_notequal([1, 2, 3], s))
129b50e5f56SBram Moolenaar
13065a54649SBram Moolenaar  call assert_equal(1, assert_notequal('foo', s))
1315869cf06SBram Moolenaar  call assert_match("Expected not equal to 'foo'", v:errors[0])
132b50e5f56SBram Moolenaar  call remove(v:errors, 0)
13343345546SBram Moolenaarendfunc
1342d820808SBram Moolenaar
13537175409SBram Moolenaarfunc Test_assert_report()
13665a54649SBram Moolenaar  call assert_equal(1, assert_report('something is wrong'))
13737175409SBram Moolenaar  call assert_match('something is wrong', v:errors[0])
13837175409SBram Moolenaar  call remove(v:errors, 0)
139e49fbff3SBram Moolenaar  call assert_equal(1, 'also wrong'->assert_report())
140e49fbff3SBram Moolenaar  call assert_match('also wrong', v:errors[0])
141e49fbff3SBram Moolenaar  call remove(v:errors, 0)
14237175409SBram Moolenaarendfunc
14337175409SBram Moolenaar
144da5dcd93SBram Moolenaarfunc Test_assert_exception()
145da5dcd93SBram Moolenaar  try
146da5dcd93SBram Moolenaar    nocommand
147da5dcd93SBram Moolenaar  catch
14865a54649SBram Moolenaar    call assert_equal(0, assert_exception('E492:'))
149da5dcd93SBram Moolenaar  endtry
150da5dcd93SBram Moolenaar
151da5dcd93SBram Moolenaar  try
152da5dcd93SBram Moolenaar    nocommand
153da5dcd93SBram Moolenaar  catch
1547177da9dSBram Moolenaar    call assert_equal(1, assert_exception('E12345:'))
1557177da9dSBram Moolenaar  endtry
1567177da9dSBram Moolenaar  call assert_match("Expected 'E12345:' but got 'Vim:E492: ", v:errors[0])
1577177da9dSBram Moolenaar  call remove(v:errors, 0)
1587177da9dSBram Moolenaar
1597177da9dSBram Moolenaar  try
1607177da9dSBram Moolenaar    nocommand
1617177da9dSBram Moolenaar  catch
162da5dcd93SBram Moolenaar    try
163da5dcd93SBram Moolenaar      " illegal argument, get NULL for error
16465a54649SBram Moolenaar      call assert_equal(1, assert_exception([]))
165da5dcd93SBram Moolenaar    catch
16665a54649SBram Moolenaar      call assert_equal(0, assert_exception('E730:'))
167da5dcd93SBram Moolenaar    endtry
168da5dcd93SBram Moolenaar  endtry
1697177da9dSBram Moolenaar
1707177da9dSBram Moolenaar  call assert_equal(1, assert_exception('E492:'))
1717177da9dSBram Moolenaar  call assert_match('v:exception is not set', v:errors[0])
1727177da9dSBram Moolenaar  call remove(v:errors, 0)
173da5dcd93SBram Moolenaarendfunc
174da5dcd93SBram Moolenaar
175a542c680SBram Moolenaarfunc Test_wrong_error_type()
176a542c680SBram Moolenaar  let save_verrors = v:errors
177a542c680SBram Moolenaar  let v:['errors'] = {'foo': 3}
178a542c680SBram Moolenaar  call assert_equal('yes', 'no')
179a542c680SBram Moolenaar  let verrors = v:errors
180a542c680SBram Moolenaar  let v:errors = save_verrors
181a542c680SBram Moolenaar  call assert_equal(type([]), type(verrors))
182a542c680SBram Moolenaarendfunc
183a542c680SBram Moolenaar
184f1551964SBram Moolenaarfunc Test_compare_fail()
185f1551964SBram Moolenaar  let s:v = {}
186f1551964SBram Moolenaar  let s:x = {"a": s:v}
187f1551964SBram Moolenaar  let s:v["b"] = s:x
188f1551964SBram Moolenaar  let s:w = {"c": s:x, "d": ''}
189f1551964SBram Moolenaar  try
190f1551964SBram Moolenaar    call assert_equal(s:w, '')
191f1551964SBram Moolenaar  catch
19265a54649SBram Moolenaar    call assert_equal(0, assert_exception('E724:'))
193ea6553beSBram Moolenaar    call assert_match("Expected NULL but got ''", v:errors[0])
194f1551964SBram Moolenaar    call remove(v:errors, 0)
195f1551964SBram Moolenaar  endtry
196f1551964SBram Moolenaarendfunc
197f1551964SBram Moolenaar
198ea6553beSBram Moolenaarfunc Test_match()
19965a54649SBram Moolenaar  call assert_equal(0, assert_match('^f.*b.*r$', 'foobar'))
200ea6553beSBram Moolenaar
20165a54649SBram Moolenaar  call assert_equal(1, assert_match('bar.*foo', 'foobar'))
202ea6553beSBram Moolenaar  call assert_match("Pattern 'bar.*foo' does not match 'foobar'", v:errors[0])
203ea6553beSBram Moolenaar  call remove(v:errors, 0)
204ea6553beSBram Moolenaar
20565a54649SBram Moolenaar  call assert_equal(1, assert_match('bar.*foo', 'foobar', 'wrong'))
206ea6553beSBram Moolenaar  call assert_match('wrong', v:errors[0])
207ea6553beSBram Moolenaar  call remove(v:errors, 0)
20824278d24SBram Moolenaar
20924278d24SBram Moolenaar  call assert_equal(1, 'foobar'->assert_match('bar.*foo', 'wrong'))
21024278d24SBram Moolenaar  call assert_match('wrong', v:errors[0])
21124278d24SBram Moolenaar  call remove(v:errors, 0)
212ea6553beSBram Moolenaarendfunc
213ea6553beSBram Moolenaar
214b50e5f56SBram Moolenaarfunc Test_notmatch()
21565a54649SBram Moolenaar  call assert_equal(0, assert_notmatch('foo', 'bar'))
21665a54649SBram Moolenaar  call assert_equal(0, assert_notmatch('^foobar$', 'foobars'))
217b50e5f56SBram Moolenaar
21865a54649SBram Moolenaar  call assert_equal(1, assert_notmatch('foo', 'foobar'))
219b50e5f56SBram Moolenaar  call assert_match("Pattern 'foo' does match 'foobar'", v:errors[0])
220b50e5f56SBram Moolenaar  call remove(v:errors, 0)
22124278d24SBram Moolenaar
22224278d24SBram Moolenaar  call assert_equal(1, 'foobar'->assert_notmatch('foo'))
22324278d24SBram Moolenaar  call assert_match("Pattern 'foo' does match 'foobar'", v:errors[0])
22424278d24SBram Moolenaar  call remove(v:errors, 0)
225b50e5f56SBram Moolenaarendfunc
226b50e5f56SBram Moolenaar
2271abb5026SBram Moolenaarfunc Test_assert_fail_fails()
2282b6ef856SBram Moolenaar  call assert_equal(1, assert_fails('xxx', 'E12345'))
2292b6ef856SBram Moolenaar  call assert_match("Expected 'E12345' but got 'E492:", v:errors[0])
2301abb5026SBram Moolenaar  call remove(v:errors, 0)
2311307d1c0SBram Moolenaar
2322b6ef856SBram Moolenaar  call assert_equal(1, assert_fails('xxx', 'E9876', 'stupid'))
2332b6ef856SBram Moolenaar  call assert_match("stupid: Expected 'E9876' but got 'E492:", v:errors[0])
2341307d1c0SBram Moolenaar  call remove(v:errors, 0)
2351307d1c0SBram Moolenaar
2367177da9dSBram Moolenaar  call assert_equal(1, assert_fails('xxx', ['E9876']))
2377177da9dSBram Moolenaar  call assert_match("Expected \\['E9876'\\] but got 'E492:", v:errors[0])
2387177da9dSBram Moolenaar  call remove(v:errors, 0)
2397177da9dSBram Moolenaar
2407177da9dSBram Moolenaar  call assert_equal(1, assert_fails('xxx', ['E492:', 'E9876']))
2417177da9dSBram Moolenaar  call assert_match("Expected \\['E492:', 'E9876'\\] but got 'E492:", v:errors[0])
2427177da9dSBram Moolenaar  call remove(v:errors, 0)
2437177da9dSBram Moolenaar
2441307d1c0SBram Moolenaar  call assert_equal(1, assert_fails('echo', '', 'echo command'))
2451307d1c0SBram Moolenaar  call assert_match("command did not fail: echo command", v:errors[0])
2461307d1c0SBram Moolenaar  call remove(v:errors, 0)
24724278d24SBram Moolenaar
24824278d24SBram Moolenaar  call assert_equal(1, 'echo'->assert_fails('', 'echo command'))
24924278d24SBram Moolenaar  call assert_match("command did not fail: echo command", v:errors[0])
25024278d24SBram Moolenaar  call remove(v:errors, 0)
2517177da9dSBram Moolenaar
2527177da9dSBram Moolenaar  try
2537177da9dSBram Moolenaar    call assert_equal(1, assert_fails('xxx', []))
2547177da9dSBram Moolenaar  catch
2557177da9dSBram Moolenaar    let exp = v:exception
2567177da9dSBram Moolenaar  endtry
2577177da9dSBram Moolenaar  call assert_match("E856: assert_fails() second argument", exp)
2587177da9dSBram Moolenaar
2597177da9dSBram Moolenaar  try
2607177da9dSBram Moolenaar    call assert_equal(1, assert_fails('xxx', ['1', '2', '3']))
2617177da9dSBram Moolenaar  catch
2627177da9dSBram Moolenaar    let exp = v:exception
2637177da9dSBram Moolenaar  endtry
2647177da9dSBram Moolenaar  call assert_match("E856: assert_fails() second argument", exp)
2657177da9dSBram Moolenaar
2667177da9dSBram Moolenaar  try
2677177da9dSBram Moolenaar    call assert_equal(1, assert_fails('xxx', #{one: 1}))
2687177da9dSBram Moolenaar  catch
2697177da9dSBram Moolenaar    let exp = v:exception
2707177da9dSBram Moolenaar  endtry
2717177da9dSBram Moolenaar  call assert_match("E856: assert_fails() second argument", exp)
2721abb5026SBram Moolenaarendfunc
2731abb5026SBram Moolenaar
2747780e5c1SBram Moolenaarfunc Test_assert_fails_in_try_block()
2757780e5c1SBram Moolenaar  try
2767780e5c1SBram Moolenaar    call assert_equal(0, assert_fails('throw "error"'))
2777780e5c1SBram Moolenaar  endtry
2787780e5c1SBram Moolenaarendfunc
2797780e5c1SBram Moolenaar
280b48e96f6SBram Moolenaarfunc Test_assert_beeps()
281b48e96f6SBram Moolenaar  new
28265a54649SBram Moolenaar  call assert_equal(0, assert_beeps('normal h'))
283b48e96f6SBram Moolenaar
28465a54649SBram Moolenaar  call assert_equal(1, assert_beeps('normal 0'))
285b48e96f6SBram Moolenaar  call assert_match("command did not beep: normal 0", v:errors[0])
286b48e96f6SBram Moolenaar  call remove(v:errors, 0)
28724278d24SBram Moolenaar
28824278d24SBram Moolenaar  call assert_equal(0, 'normal h'->assert_beeps())
28924278d24SBram Moolenaar  call assert_equal(1, 'normal 0'->assert_beeps())
29024278d24SBram Moolenaar  call assert_match("command did not beep: normal 0", v:errors[0])
29124278d24SBram Moolenaar  call remove(v:errors, 0)
29224278d24SBram Moolenaar
293b48e96f6SBram Moolenaar  bwipe
294b48e96f6SBram Moolenaarendfunc
295b48e96f6SBram Moolenaar
29661c04493SBram Moolenaarfunc Test_assert_inrange()
29765a54649SBram Moolenaar  call assert_equal(0, assert_inrange(7, 7, 7))
29865a54649SBram Moolenaar  call assert_equal(0, assert_inrange(5, 7, 5))
29965a54649SBram Moolenaar  call assert_equal(0, assert_inrange(5, 7, 6))
30065a54649SBram Moolenaar  call assert_equal(0, assert_inrange(5, 7, 7))
30161c04493SBram Moolenaar
30265a54649SBram Moolenaar  call assert_equal(1, assert_inrange(5, 7, 4))
30361c04493SBram Moolenaar  call assert_match("Expected range 5 - 7, but got 4", v:errors[0])
30461c04493SBram Moolenaar  call remove(v:errors, 0)
30565a54649SBram Moolenaar  call assert_equal(1, assert_inrange(5, 7, 8))
30661c04493SBram Moolenaar  call assert_match("Expected range 5 - 7, but got 8", v:errors[0])
30761c04493SBram Moolenaar  call remove(v:errors, 0)
30834215663SBram Moolenaar
30924278d24SBram Moolenaar  call assert_equal(0, 5->assert_inrange(5, 7))
31024278d24SBram Moolenaar  call assert_equal(0, 7->assert_inrange(5, 7))
31124278d24SBram Moolenaar  call assert_equal(1, 8->assert_inrange(5, 7))
31224278d24SBram Moolenaar  call assert_match("Expected range 5 - 7, but got 8", v:errors[0])
31324278d24SBram Moolenaar  call remove(v:errors, 0)
31424278d24SBram Moolenaar
31534215663SBram Moolenaar  call assert_fails('call assert_inrange(1, 1)', 'E119:')
31638f08e76SBram Moolenaar
31738f08e76SBram Moolenaar  if has('float')
31838f08e76SBram Moolenaar    call assert_equal(0, assert_inrange(7.0, 7, 7))
31938f08e76SBram Moolenaar    call assert_equal(0, assert_inrange(7, 7.0, 7))
32038f08e76SBram Moolenaar    call assert_equal(0, assert_inrange(7, 7, 7.0))
32138f08e76SBram Moolenaar    call assert_equal(0, assert_inrange(5, 7, 5.0))
32238f08e76SBram Moolenaar    call assert_equal(0, assert_inrange(5, 7, 6.0))
32338f08e76SBram Moolenaar    call assert_equal(0, assert_inrange(5, 7, 7.0))
32438f08e76SBram Moolenaar
32538f08e76SBram Moolenaar    call assert_equal(1, assert_inrange(5, 7, 4.0))
32638f08e76SBram Moolenaar    call assert_match("Expected range 5.0 - 7.0, but got 4.0", v:errors[0])
32738f08e76SBram Moolenaar    call remove(v:errors, 0)
32838f08e76SBram Moolenaar    call assert_equal(1, assert_inrange(5, 7, 8.0))
32938f08e76SBram Moolenaar    call assert_match("Expected range 5.0 - 7.0, but got 8.0", v:errors[0])
33038f08e76SBram Moolenaar    call remove(v:errors, 0)
33138f08e76SBram Moolenaar  endif
33261c04493SBram Moolenaarendfunc
333f1551964SBram Moolenaar
334c7b831caSBram Moolenaarfunc Test_assert_with_msg()
335c7b831caSBram Moolenaar  call assert_equal('foo', 'bar', 'testing')
336c7b831caSBram Moolenaar  call assert_match("testing: Expected 'foo' but got 'bar'", v:errors[0])
337c7b831caSBram Moolenaar  call remove(v:errors, 0)
338c7b831caSBram Moolenaarendfunc
339c7b831caSBram Moolenaar
340eb992cb9SBram Moolenaarfunc Test_override()
341eb992cb9SBram Moolenaar  call test_override('char_avail', 1)
342ce90e36fSBram Moolenaar  eval 1->test_override('redraw')
343eb992cb9SBram Moolenaar  call test_override('ALL', 0)
344*e2e4075fSBram Moolenaar  call assert_fails("call test_override('xxx', 1)", 'E475:')
345*e2e4075fSBram Moolenaar  call assert_fails("call test_override('redraw', 'yes')", 'E474:')
346eb992cb9SBram Moolenaarendfunc
347eb992cb9SBram Moolenaar
348b0f94c1fSBram Moolenaarfunc Test_mouse_position()
349b0f94c1fSBram Moolenaar  let save_mouse = &mouse
350b0f94c1fSBram Moolenaar  set mouse=a
351b0f94c1fSBram Moolenaar  new
352b0f94c1fSBram Moolenaar  call setline(1, ['line one', 'line two'])
353b0f94c1fSBram Moolenaar  call assert_equal([0, 1, 1, 0], getpos('.'))
354b0f94c1fSBram Moolenaar  call test_setmouse(1, 5)
355b0f94c1fSBram Moolenaar  call feedkeys("\<LeftMouse>", "xt")
356b0f94c1fSBram Moolenaar  call assert_equal([0, 1, 5, 0], getpos('.'))
357b0f94c1fSBram Moolenaar  call test_setmouse(2, 20)
358b0f94c1fSBram Moolenaar  call feedkeys("\<LeftMouse>", "xt")
359b0f94c1fSBram Moolenaar  call assert_equal([0, 2, 8, 0], getpos('.'))
360b0f94c1fSBram Moolenaar  call test_setmouse(5, 1)
361b0f94c1fSBram Moolenaar  call feedkeys("\<LeftMouse>", "xt")
362b0f94c1fSBram Moolenaar  call assert_equal([0, 2, 1, 0], getpos('.'))
363b0f94c1fSBram Moolenaar  bwipe!
364b0f94c1fSBram Moolenaar  let &mouse = save_mouse
365b0f94c1fSBram Moolenaarendfunc
366b0f94c1fSBram Moolenaar
3672d820808SBram Moolenaarfunc Test_user_is_happy()
3682d820808SBram Moolenaar  smile
3692d820808SBram Moolenaar  sleep 300m
3702d820808SBram Moolenaarendfunc
3718903676dSBram Moolenaar
3728903676dSBram Moolenaar" Must be last.
3738903676dSBram Moolenaarfunc Test_zz_quit_detected()
3748903676dSBram Moolenaar  " Verify that if a test function ends Vim the test script detects this.
3758903676dSBram Moolenaar  quit
3768903676dSBram Moolenaarendfunc
3776d91bcb4SBram Moolenaar
3786d91bcb4SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
379