aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/old/testdir/test_jumplist.vim66
1 files changed, 66 insertions, 0 deletions
diff --git a/test/old/testdir/test_jumplist.vim b/test/old/testdir/test_jumplist.vim
index 91ad940e18..b4dcdad9d6 100644
--- a/test/old/testdir/test_jumplist.vim
+++ b/test/old/testdir/test_jumplist.vim
@@ -104,4 +104,70 @@ d
bwipe!
endfunc
+" Test for 'jumpoptions'
+func Test_jumpoptions()
+ new
+ call setline(1, range(1, 200))
+ clearjumps
+ set jumpoptions=stack
+
+ " Jump around to add some locations to the jump list.
+ normal 10G
+ normal 20G
+ normal 30G
+ normal 40G
+ normal 50G
+ let bnr = bufnr()
+
+ " discards the tail when navigating from the middle
+ exe "normal \<C-O>\<C-O>"
+ call assert_equal([
+ \ [{'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ {'lnum': 10, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ {'lnum': 20, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ {'lnum': 30, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ {'lnum': 40, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ {'lnum': 50, 'bufnr': bnr, 'col': 0, 'coladd': 0}
+ \ ], 3], getjumplist())
+
+ " new jump location is added immediately after the last one
+ normal 90G
+ call assert_equal([
+ \ [{'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ {'lnum': 10, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ {'lnum': 20, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ {'lnum': 30, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ ], 4], getjumplist())
+
+ " does not add the same location twice adjacently
+ normal 60G
+ normal 60G
+ call assert_equal([
+ \ [{'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ {'lnum': 10, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ {'lnum': 20, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ {'lnum': 30, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ {'lnum': 90, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ "\ Nvim: avoids useless/phantom jumps
+ "\ {'lnum': 60, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ "\ ], 6], getjumplist())
+ \ ], 5], getjumplist())
+
+ " does add the same location twice non adjacently
+ normal 10G
+ normal 20G
+ call assert_equal([
+ \ [{'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ {'lnum': 10, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ {'lnum': 20, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ {'lnum': 30, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ {'lnum': 90, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ {'lnum': 60, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ {'lnum': 10, 'bufnr': bnr, 'col': 0, 'coladd': 0},
+ \ ], 7], getjumplist())
+
+ set jumpoptions&
+ %bw!
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab