xref: /vim-8.2.3635/src/testdir/test_assert.vim (revision 4490ec4e)
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))
9631e8f93SBram 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())
13631e8f93SBram 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))
24631e8f93SBram 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())
28631e8f93SBram 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']))
237631e8f93SBram 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']))
241631e8f93SBram Moolenaar  call assert_match("Expected '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
2577707228aSBram 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
2647707228aSBram 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
271*4490ec4eSYegappan Lakshmanan  call assert_match("E1222: String or List required for argument 2", exp)
27244d6652dSBram Moolenaar
27344d6652dSBram Moolenaar  try
27444d6652dSBram Moolenaar    call assert_equal(1, assert_fails('xxx', 'E492', '', 'burp'))
27544d6652dSBram Moolenaar  catch
27644d6652dSBram Moolenaar    let exp = v:exception
27744d6652dSBram Moolenaar  endtry
278a764e73dSYegappan Lakshmanan  call assert_match("E1210: Number required for argument 4", exp)
27944d6652dSBram Moolenaar
28044d6652dSBram Moolenaar  try
28144d6652dSBram Moolenaar    call assert_equal(1, assert_fails('xxx', 'E492', '', 54, 123))
28244d6652dSBram Moolenaar  catch
28344d6652dSBram Moolenaar    let exp = v:exception
28444d6652dSBram Moolenaar  endtry
285a764e73dSYegappan Lakshmanan  call assert_match("E1174: String required for argument 5", exp)
2861abb5026SBram Moolenaarendfunc
2871abb5026SBram Moolenaar
2887780e5c1SBram Moolenaarfunc Test_assert_fails_in_try_block()
2897780e5c1SBram Moolenaar  try
2907780e5c1SBram Moolenaar    call assert_equal(0, assert_fails('throw "error"'))
2917780e5c1SBram Moolenaar  endtry
2927780e5c1SBram Moolenaarendfunc
2937780e5c1SBram Moolenaar
294b48e96f6SBram Moolenaarfunc Test_assert_beeps()
295b48e96f6SBram Moolenaar  new
29665a54649SBram Moolenaar  call assert_equal(0, assert_beeps('normal h'))
297b48e96f6SBram Moolenaar
29865a54649SBram Moolenaar  call assert_equal(1, assert_beeps('normal 0'))
299b48e96f6SBram Moolenaar  call assert_match("command did not beep: normal 0", v:errors[0])
300b48e96f6SBram Moolenaar  call remove(v:errors, 0)
30124278d24SBram Moolenaar
30224278d24SBram Moolenaar  call assert_equal(0, 'normal h'->assert_beeps())
30324278d24SBram Moolenaar  call assert_equal(1, 'normal 0'->assert_beeps())
30424278d24SBram Moolenaar  call assert_match("command did not beep: normal 0", v:errors[0])
30524278d24SBram Moolenaar  call remove(v:errors, 0)
30624278d24SBram Moolenaar
307b48e96f6SBram Moolenaar  bwipe
308b48e96f6SBram Moolenaarendfunc
309b48e96f6SBram Moolenaar
31061c04493SBram Moolenaarfunc Test_assert_inrange()
31165a54649SBram Moolenaar  call assert_equal(0, assert_inrange(7, 7, 7))
31265a54649SBram Moolenaar  call assert_equal(0, assert_inrange(5, 7, 5))
31365a54649SBram Moolenaar  call assert_equal(0, assert_inrange(5, 7, 6))
31465a54649SBram Moolenaar  call assert_equal(0, assert_inrange(5, 7, 7))
31561c04493SBram Moolenaar
31665a54649SBram Moolenaar  call assert_equal(1, assert_inrange(5, 7, 4))
31761c04493SBram Moolenaar  call assert_match("Expected range 5 - 7, but got 4", v:errors[0])
31861c04493SBram Moolenaar  call remove(v:errors, 0)
31965a54649SBram Moolenaar  call assert_equal(1, assert_inrange(5, 7, 8))
32061c04493SBram Moolenaar  call assert_match("Expected range 5 - 7, but got 8", v:errors[0])
32161c04493SBram Moolenaar  call remove(v:errors, 0)
32234215663SBram Moolenaar
32324278d24SBram Moolenaar  call assert_equal(0, 5->assert_inrange(5, 7))
32424278d24SBram Moolenaar  call assert_equal(0, 7->assert_inrange(5, 7))
32524278d24SBram Moolenaar  call assert_equal(1, 8->assert_inrange(5, 7))
32624278d24SBram Moolenaar  call assert_match("Expected range 5 - 7, but got 8", v:errors[0])
32724278d24SBram Moolenaar  call remove(v:errors, 0)
32824278d24SBram Moolenaar
32934215663SBram Moolenaar  call assert_fails('call assert_inrange(1, 1)', 'E119:')
33038f08e76SBram Moolenaar
33138f08e76SBram Moolenaar  if has('float')
33238f08e76SBram Moolenaar    call assert_equal(0, assert_inrange(7.0, 7, 7))
33338f08e76SBram Moolenaar    call assert_equal(0, assert_inrange(7, 7.0, 7))
33438f08e76SBram Moolenaar    call assert_equal(0, assert_inrange(7, 7, 7.0))
33538f08e76SBram Moolenaar    call assert_equal(0, assert_inrange(5, 7, 5.0))
33638f08e76SBram Moolenaar    call assert_equal(0, assert_inrange(5, 7, 6.0))
33738f08e76SBram Moolenaar    call assert_equal(0, assert_inrange(5, 7, 7.0))
33838f08e76SBram Moolenaar
33938f08e76SBram Moolenaar    call assert_equal(1, assert_inrange(5, 7, 4.0))
34038f08e76SBram Moolenaar    call assert_match("Expected range 5.0 - 7.0, but got 4.0", v:errors[0])
34138f08e76SBram Moolenaar    call remove(v:errors, 0)
34238f08e76SBram Moolenaar    call assert_equal(1, assert_inrange(5, 7, 8.0))
34338f08e76SBram Moolenaar    call assert_match("Expected range 5.0 - 7.0, but got 8.0", v:errors[0])
34438f08e76SBram Moolenaar    call remove(v:errors, 0)
34538f08e76SBram Moolenaar  endif
34661c04493SBram Moolenaarendfunc
347f1551964SBram Moolenaar
348c7b831caSBram Moolenaarfunc Test_assert_with_msg()
349c7b831caSBram Moolenaar  call assert_equal('foo', 'bar', 'testing')
350c7b831caSBram Moolenaar  call assert_match("testing: Expected 'foo' but got 'bar'", v:errors[0])
351c7b831caSBram Moolenaar  call remove(v:errors, 0)
352c7b831caSBram Moolenaarendfunc
353c7b831caSBram Moolenaar
354eb992cb9SBram Moolenaarfunc Test_override()
355eb992cb9SBram Moolenaar  call test_override('char_avail', 1)
356ce90e36fSBram Moolenaar  eval 1->test_override('redraw')
357eb992cb9SBram Moolenaar  call test_override('ALL', 0)
358e2e4075fSBram Moolenaar  call assert_fails("call test_override('xxx', 1)", 'E475:')
359e2e4075fSBram Moolenaar  call assert_fails("call test_override('redraw', 'yes')", 'E474:')
360eb992cb9SBram Moolenaarendfunc
361eb992cb9SBram Moolenaar
362b0f94c1fSBram Moolenaarfunc Test_mouse_position()
363b0f94c1fSBram Moolenaar  let save_mouse = &mouse
364b0f94c1fSBram Moolenaar  set mouse=a
365b0f94c1fSBram Moolenaar  new
366b0f94c1fSBram Moolenaar  call setline(1, ['line one', 'line two'])
367b0f94c1fSBram Moolenaar  call assert_equal([0, 1, 1, 0], getpos('.'))
368b0f94c1fSBram Moolenaar  call test_setmouse(1, 5)
369b0f94c1fSBram Moolenaar  call feedkeys("\<LeftMouse>", "xt")
370b0f94c1fSBram Moolenaar  call assert_equal([0, 1, 5, 0], getpos('.'))
371b0f94c1fSBram Moolenaar  call test_setmouse(2, 20)
372b0f94c1fSBram Moolenaar  call feedkeys("\<LeftMouse>", "xt")
373b0f94c1fSBram Moolenaar  call assert_equal([0, 2, 8, 0], getpos('.'))
374b0f94c1fSBram Moolenaar  call test_setmouse(5, 1)
375b0f94c1fSBram Moolenaar  call feedkeys("\<LeftMouse>", "xt")
376b0f94c1fSBram Moolenaar  call assert_equal([0, 2, 1, 0], getpos('.'))
3777237cab8SYegappan Lakshmanan  call assert_fails('call test_setmouse("", 2)', 'E474:')
3787237cab8SYegappan Lakshmanan  call assert_fails('call test_setmouse(1, "")', 'E474:')
379b0f94c1fSBram Moolenaar  bwipe!
380b0f94c1fSBram Moolenaar  let &mouse = save_mouse
381b0f94c1fSBram Moolenaarendfunc
382b0f94c1fSBram Moolenaar
3832d820808SBram Moolenaarfunc Test_user_is_happy()
3842d820808SBram Moolenaar  smile
3852d820808SBram Moolenaar  sleep 300m
3862d820808SBram Moolenaarendfunc
3878903676dSBram Moolenaar
3888903676dSBram Moolenaar" Must be last.
3898903676dSBram Moolenaarfunc Test_zz_quit_detected()
3908903676dSBram Moolenaar  " Verify that if a test function ends Vim the test script detects this.
3918903676dSBram Moolenaar  quit
3928903676dSBram Moolenaarendfunc
3936d91bcb4SBram Moolenaar
3946d91bcb4SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
395