blob: 57a510024bb06147b73cde50eb8f8d6e2a14f947 [file] [log] [blame]
Bram Moolenaar4f505882018-02-10 21:06:32 +01001" Tests for the jumplist functionality
2
Bram Moolenaar6d91bcb2020-08-12 18:50:36 +02003source check.vim
4
Bram Moolenaar4f505882018-02-10 21:06:32 +01005" Tests for the getjumplist() function
6func Test_getjumplist()
Bram Moolenaar6d91bcb2020-08-12 18:50:36 +02007 CheckFeature jumplist
Bram Moolenaar4f505882018-02-10 21:06:32 +01008
9 %bwipe
10 clearjumps
11 call assert_equal([[], 0], getjumplist())
12 call assert_equal([[], 0], getjumplist(1))
13 call assert_equal([[], 0], getjumplist(1, 1))
14
15 call assert_equal([], getjumplist(100))
16 call assert_equal([], getjumplist(1, 100))
17
18 let lines = []
19 for i in range(1, 100)
20 call add(lines, "Line " . i)
21 endfor
22 call writefile(lines, "Xtest")
23
24 " Jump around and create a jump list
25 edit Xtest
26 let bnr = bufnr('%')
27 normal 50%
28 normal G
29 normal gg
30
Bram Moolenaar57ee2b62019-02-12 22:15:06 +010031 let expected = [[
Bram Moolenaar4f505882018-02-10 21:06:32 +010032 \ {'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0},
Bram Moolenaar4f505882018-02-10 21:06:32 +010033 \ {'lnum': 50, 'bufnr': bnr, 'col': 0, 'coladd': 0},
Bram Moolenaar57ee2b62019-02-12 22:15:06 +010034 \ {'lnum': 100, 'bufnr': bnr, 'col': 0, 'coladd': 0}], 3]
35 call assert_equal(expected, getjumplist())
36 " jumplist doesn't change in between calls
37 call assert_equal(expected, getjumplist())
Bram Moolenaar4f505882018-02-10 21:06:32 +010038
39 " Traverse the jump list and verify the results
40 5
41 exe "normal \<C-O>"
Bram Moolenaar4c313b12019-08-24 22:58:31 +020042 call assert_equal(2, 1->getjumplist()[1])
Bram Moolenaar4f505882018-02-10 21:06:32 +010043 exe "normal 2\<C-O>"
44 call assert_equal(0, getjumplist(1, 1)[1])
45 exe "normal 3\<C-I>"
46 call assert_equal(3, getjumplist()[1])
47 exe "normal \<C-O>"
48 normal 20%
Bram Moolenaar57ee2b62019-02-12 22:15:06 +010049 let expected = [[
Bram Moolenaar4f505882018-02-10 21:06:32 +010050 \ {'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0},
51 \ {'lnum': 50, 'bufnr': bnr, 'col': 0, 'coladd': 0},
Bram Moolenaar4f505882018-02-10 21:06:32 +010052 \ {'lnum': 5, 'bufnr': bnr, 'col': 0, 'coladd': 0},
Bram Moolenaar57ee2b62019-02-12 22:15:06 +010053 \ {'lnum': 100, 'bufnr': bnr, 'col': 0, 'coladd': 0}], 4]
54 call assert_equal(expected, getjumplist())
55 " jumplist doesn't change in between calls
56 call assert_equal(expected, getjumplist())
Bram Moolenaar4f505882018-02-10 21:06:32 +010057
58 let l = getjumplist()
59 call test_garbagecollect_now()
Bram Moolenaara7e18d22018-02-11 14:29:49 +010060 call assert_equal(4, l[1])
Bram Moolenaar4f505882018-02-10 21:06:32 +010061 clearjumps
62 call test_garbagecollect_now()
Bram Moolenaara7e18d22018-02-11 14:29:49 +010063 call assert_equal(4, l[1])
Bram Moolenaar4f505882018-02-10 21:06:32 +010064
65 call delete("Xtest")
66endfunc
Bram Moolenaar6d91bcb2020-08-12 18:50:36 +020067
68" vim: shiftwidth=2 sts=2 expandtab