blob: c838bb95730ca9f3dfb753b7bfe752678e4a6c6a [file] [log] [blame]
Bram Moolenaar4f505882018-02-10 21:06:32 +01001" Tests for the jumplist functionality
2
3" Tests for the getjumplist() function
4func Test_getjumplist()
Bram Moolenaar4f505882018-02-10 21:06:32 +01005 %bwipe
6 clearjumps
7 call assert_equal([[], 0], getjumplist())
8 call assert_equal([[], 0], getjumplist(1))
9 call assert_equal([[], 0], getjumplist(1, 1))
10
11 call assert_equal([], getjumplist(100))
12 call assert_equal([], getjumplist(1, 100))
13
14 let lines = []
15 for i in range(1, 100)
16 call add(lines, "Line " . i)
17 endfor
18 call writefile(lines, "Xtest")
19
20 " Jump around and create a jump list
21 edit Xtest
22 let bnr = bufnr('%')
23 normal 50%
24 normal G
25 normal gg
26
Bram Moolenaar57ee2b62019-02-12 22:15:06 +010027 let expected = [[
Bram Moolenaar4f505882018-02-10 21:06:32 +010028 \ {'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0},
Bram Moolenaar4f505882018-02-10 21:06:32 +010029 \ {'lnum': 50, 'bufnr': bnr, 'col': 0, 'coladd': 0},
Bram Moolenaar57ee2b62019-02-12 22:15:06 +010030 \ {'lnum': 100, 'bufnr': bnr, 'col': 0, 'coladd': 0}], 3]
31 call assert_equal(expected, getjumplist())
32 " jumplist doesn't change in between calls
33 call assert_equal(expected, getjumplist())
Bram Moolenaar4f505882018-02-10 21:06:32 +010034
35 " Traverse the jump list and verify the results
36 5
37 exe "normal \<C-O>"
Bram Moolenaar4c313b12019-08-24 22:58:31 +020038 call assert_equal(2, 1->getjumplist()[1])
Bram Moolenaar4f505882018-02-10 21:06:32 +010039 exe "normal 2\<C-O>"
40 call assert_equal(0, getjumplist(1, 1)[1])
41 exe "normal 3\<C-I>"
42 call assert_equal(3, getjumplist()[1])
43 exe "normal \<C-O>"
44 normal 20%
Bram Moolenaar57ee2b62019-02-12 22:15:06 +010045 let expected = [[
Bram Moolenaar4f505882018-02-10 21:06:32 +010046 \ {'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0},
47 \ {'lnum': 50, 'bufnr': bnr, 'col': 0, 'coladd': 0},
Bram Moolenaar4f505882018-02-10 21:06:32 +010048 \ {'lnum': 5, 'bufnr': bnr, 'col': 0, 'coladd': 0},
Bram Moolenaar57ee2b62019-02-12 22:15:06 +010049 \ {'lnum': 100, 'bufnr': bnr, 'col': 0, 'coladd': 0}], 4]
50 call assert_equal(expected, getjumplist())
51 " jumplist doesn't change in between calls
52 call assert_equal(expected, getjumplist())
Bram Moolenaar4f505882018-02-10 21:06:32 +010053
54 let l = getjumplist()
55 call test_garbagecollect_now()
Bram Moolenaara7e18d22018-02-11 14:29:49 +010056 call assert_equal(4, l[1])
Bram Moolenaar4f505882018-02-10 21:06:32 +010057 clearjumps
58 call test_garbagecollect_now()
Bram Moolenaara7e18d22018-02-11 14:29:49 +010059 call assert_equal(4, l[1])
Bram Moolenaar4f505882018-02-10 21:06:32 +010060
61 call delete("Xtest")
62endfunc
Bram Moolenaar6d91bcb2020-08-12 18:50:36 +020063
64" vim: shiftwidth=2 sts=2 expandtab