1" Tests for the jumplist functionality 2 3" Tests for the getjumplist() function 4func Test_getjumplist() 5 if !has("jumplist") 6 return 7 endif 8 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 31 call assert_equal([[ 32 \ {'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0}, 33 \ {'lnum': 50, 'bufnr': bnr, 'col': 0, 'coladd': 0}, 34 \ {'lnum': 100, 'bufnr': bnr, 'col': 0, 'coladd': 0}], 4], 35 \ getjumplist()) 36 37 " Traverse the jump list and verify the results 38 5 39 exe "normal \<C-O>" 40 call assert_equal(2, getjumplist(1)[1]) 41 exe "normal 2\<C-O>" 42 call assert_equal(0, getjumplist(1, 1)[1]) 43 exe "normal 3\<C-I>" 44 call assert_equal(3, getjumplist()[1]) 45 exe "normal \<C-O>" 46 normal 20% 47 call assert_equal([[ 48 \ {'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0}, 49 \ {'lnum': 50, 'bufnr': bnr, 'col': 0, 'coladd': 0}, 50 \ {'lnum': 5, 'bufnr': bnr, 'col': 0, 'coladd': 0}, 51 \ {'lnum': 100, 'bufnr': bnr, 'col': 0, 'coladd': 0}], 5], 52 \ getjumplist()) 53 54 let l = getjumplist() 55 call test_garbagecollect_now() 56 call assert_equal(4, l[1]) 57 clearjumps 58 call test_garbagecollect_now() 59 call assert_equal(4, l[1]) 60 61 call delete("Xtest") 62endfunc 63