xref: /vim-8.2.3635/src/testdir/test_assert.vim (revision eb992cb9)
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