2018-02-10 21:06:32 +01:00
|
|
|
" Tests for the jumplist functionality
|
|
|
|
|
|
2020-08-12 18:50:36 +02:00
|
|
|
source check.vim
|
|
|
|
|
|
2018-02-10 21:06:32 +01:00
|
|
|
" Tests for the getjumplist() function
|
|
|
|
|
func Test_getjumplist()
|
2020-08-12 18:50:36 +02:00
|
|
|
CheckFeature jumplist
|
2018-02-10 21:06:32 +01:00
|
|
|
|
|
|
|
|
%bwipe
|
|
|
|
|
clearjumps
|
|
|
|
|
call assert_equal([[], 0], getjumplist())
|
|
|
|
|
call assert_equal([[], 0], getjumplist(1))
|
|
|
|
|
call assert_equal([[], 0], getjumplist(1, 1))
|
|
|
|
|
|
|
|
|
|
call assert_equal([], getjumplist(100))
|
|
|
|
|
call assert_equal([], getjumplist(1, 100))
|
|
|
|
|
|
|
|
|
|
let lines = []
|
|
|
|
|
for i in range(1, 100)
|
|
|
|
|
call add(lines, "Line " . i)
|
|
|
|
|
endfor
|
|
|
|
|
call writefile(lines, "Xtest")
|
|
|
|
|
|
|
|
|
|
" Jump around and create a jump list
|
|
|
|
|
edit Xtest
|
|
|
|
|
let bnr = bufnr('%')
|
|
|
|
|
normal 50%
|
|
|
|
|
normal G
|
|
|
|
|
normal gg
|
|
|
|
|
|
2019-02-12 22:15:06 +01:00
|
|
|
let expected = [[
|
2018-02-10 21:06:32 +01:00
|
|
|
\ {'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0},
|
|
|
|
|
\ {'lnum': 50, 'bufnr': bnr, 'col': 0, 'coladd': 0},
|
2019-02-12 22:15:06 +01:00
|
|
|
\ {'lnum': 100, 'bufnr': bnr, 'col': 0, 'coladd': 0}], 3]
|
|
|
|
|
call assert_equal(expected, getjumplist())
|
|
|
|
|
" jumplist doesn't change in between calls
|
|
|
|
|
call assert_equal(expected, getjumplist())
|
2018-02-10 21:06:32 +01:00
|
|
|
|
|
|
|
|
" Traverse the jump list and verify the results
|
|
|
|
|
5
|
|
|
|
|
exe "normal \<C-O>"
|
2019-08-24 22:58:31 +02:00
|
|
|
call assert_equal(2, 1->getjumplist()[1])
|
2018-02-10 21:06:32 +01:00
|
|
|
exe "normal 2\<C-O>"
|
|
|
|
|
call assert_equal(0, getjumplist(1, 1)[1])
|
|
|
|
|
exe "normal 3\<C-I>"
|
|
|
|
|
call assert_equal(3, getjumplist()[1])
|
|
|
|
|
exe "normal \<C-O>"
|
|
|
|
|
normal 20%
|
2019-02-12 22:15:06 +01:00
|
|
|
let expected = [[
|
2018-02-10 21:06:32 +01:00
|
|
|
\ {'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0},
|
|
|
|
|
\ {'lnum': 50, 'bufnr': bnr, 'col': 0, 'coladd': 0},
|
|
|
|
|
\ {'lnum': 5, 'bufnr': bnr, 'col': 0, 'coladd': 0},
|
2019-02-12 22:15:06 +01:00
|
|
|
\ {'lnum': 100, 'bufnr': bnr, 'col': 0, 'coladd': 0}], 4]
|
|
|
|
|
call assert_equal(expected, getjumplist())
|
|
|
|
|
" jumplist doesn't change in between calls
|
|
|
|
|
call assert_equal(expected, getjumplist())
|
2018-02-10 21:06:32 +01:00
|
|
|
|
|
|
|
|
let l = getjumplist()
|
|
|
|
|
call test_garbagecollect_now()
|
2018-02-11 14:29:49 +01:00
|
|
|
call assert_equal(4, l[1])
|
2018-02-10 21:06:32 +01:00
|
|
|
clearjumps
|
|
|
|
|
call test_garbagecollect_now()
|
2018-02-11 14:29:49 +01:00
|
|
|
call assert_equal(4, l[1])
|
2018-02-10 21:06:32 +01:00
|
|
|
|
|
|
|
|
call delete("Xtest")
|
|
|
|
|
endfunc
|
2020-08-12 18:50:36 +02:00
|
|
|
|
|
|
|
|
" vim: shiftwidth=2 sts=2 expandtab
|