1" Tests for the jumplist functionality 2 3source check.vim 4 5" Tests for the getjumplist() function 6func Test_getjumplist() 7 CheckFeature jumplist 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 let expected = [[ 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}], 3] 35 call assert_equal(expected, getjumplist()) 36 " jumplist doesn't change in between calls 37 call assert_equal(expected, getjumplist()) 38 39 " Traverse the jump list and verify the results 40 5 41 exe "normal \<C-O>" 42 call assert_equal(2, 1->getjumplist()[1]) 43 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% 49 let expected = [[ 50 \ {'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0}, 51 \ {'lnum': 50, 'bufnr': bnr, 'col': 0, 'coladd': 0}, 52 \ {'lnum': 5, 'bufnr': bnr, 'col': 0, 'coladd': 0}, 53 \ {'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()) 57 58 let l = getjumplist() 59 call test_garbagecollect_now() 60 call assert_equal(4, l[1]) 61 clearjumps 62 call test_garbagecollect_now() 63 call assert_equal(4, l[1]) 64 65 call delete("Xtest") 66endfunc 67 68" vim: shiftwidth=2 sts=2 expandtab 69