xref: /vim-8.2.3635/src/testdir/test_assert.vim (revision ea6553be)
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)
2143345546SBram Moolenaarendfunc
222d820808SBram Moolenaar
23da5dcd93SBram Moolenaarfunc Test_assert_exception()
24da5dcd93SBram Moolenaar  try
25da5dcd93SBram Moolenaar    nocommand
26da5dcd93SBram Moolenaar  catch
27da5dcd93SBram Moolenaar    call assert_exception('E492:')
28da5dcd93SBram Moolenaar  endtry
29da5dcd93SBram Moolenaar
30da5dcd93SBram Moolenaar  try
31da5dcd93SBram Moolenaar    nocommand
32da5dcd93SBram Moolenaar  catch
33da5dcd93SBram Moolenaar    try
34da5dcd93SBram Moolenaar      " illegal argument, get NULL for error
35da5dcd93SBram Moolenaar      call assert_exception([])
36da5dcd93SBram Moolenaar    catch
37da5dcd93SBram Moolenaar      call assert_exception('E730:')
38da5dcd93SBram Moolenaar    endtry
39da5dcd93SBram Moolenaar  endtry
40da5dcd93SBram Moolenaarendfunc
41da5dcd93SBram Moolenaar
42a542c680SBram Moolenaarfunc Test_wrong_error_type()
43a542c680SBram Moolenaar  let save_verrors = v:errors
44a542c680SBram Moolenaar  let v:['errors'] = {'foo': 3}
45a542c680SBram Moolenaar  call assert_equal('yes', 'no')
46a542c680SBram Moolenaar  let verrors = v:errors
47a542c680SBram Moolenaar  let v:errors = save_verrors
48a542c680SBram Moolenaar  call assert_equal(type([]), type(verrors))
49a542c680SBram Moolenaarendfunc
50a542c680SBram Moolenaar
51f1551964SBram Moolenaarfunc Test_compare_fail()
52f1551964SBram Moolenaar  let s:v = {}
53f1551964SBram Moolenaar  let s:x = {"a": s:v}
54f1551964SBram Moolenaar  let s:v["b"] = s:x
55f1551964SBram Moolenaar  let s:w = {"c": s:x, "d": ''}
56f1551964SBram Moolenaar  try
57f1551964SBram Moolenaar    call assert_equal(s:w, '')
58f1551964SBram Moolenaar  catch
59f1551964SBram Moolenaar    call assert_exception('E724:')
60*ea6553beSBram Moolenaar    call assert_match("Expected NULL but got ''", v:errors[0])
61f1551964SBram Moolenaar    call remove(v:errors, 0)
62f1551964SBram Moolenaar  endtry
63f1551964SBram Moolenaarendfunc
64f1551964SBram Moolenaar
65*ea6553beSBram Moolenaarfunc Test_match()
66*ea6553beSBram Moolenaar  call assert_match('^f.*b.*r$', 'foobar')
67*ea6553beSBram Moolenaar
68*ea6553beSBram Moolenaar  call assert_match('bar.*foo', 'foobar')
69*ea6553beSBram Moolenaar  call assert_match("Pattern 'bar.*foo' does not match 'foobar'", v:errors[0])
70*ea6553beSBram Moolenaar  call remove(v:errors, 0)
71*ea6553beSBram Moolenaar
72*ea6553beSBram Moolenaar  call assert_match('bar.*foo', 'foobar', 'wrong')
73*ea6553beSBram Moolenaar  call assert_match('wrong', v:errors[0])
74*ea6553beSBram Moolenaar  call remove(v:errors, 0)
75*ea6553beSBram Moolenaarendfunc
76*ea6553beSBram Moolenaar
771abb5026SBram Moolenaarfunc Test_assert_fail_fails()
781abb5026SBram Moolenaar  call assert_fails('xxx', {})
79*ea6553beSBram Moolenaar  call assert_match("Expected {} but got 'E731:", v:errors[0])
801abb5026SBram Moolenaar  call remove(v:errors, 0)
811abb5026SBram Moolenaarendfunc
821abb5026SBram Moolenaar
83f1551964SBram Moolenaar
842d820808SBram Moolenaarfunc Test_user_is_happy()
852d820808SBram Moolenaar  smile
862d820808SBram Moolenaar  sleep 300m
872d820808SBram Moolenaarendfunc
88