Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Problem: No new style test for diff mode. Solution: Add a test. Check that folds are in sync.
- Loading branch information
Showing
6 changed files
with
170 additions
and
149 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,165 @@ | ||
" Tests for diff mode | ||
|
||
func Test_diff_fold_sync() | ||
enew! | ||
let l = range(50) | ||
call setline(1, l) | ||
diffthis | ||
let winone = win_getid() | ||
new | ||
let l[25] = 'diff' | ||
call setline(1, l) | ||
diffthis | ||
let wintwo = win_getid() | ||
" line 15 is inside the closed fold | ||
call assert_equal(19, foldclosedend(10)) | ||
call win_gotoid(winone) | ||
call assert_equal(19, foldclosedend(10)) | ||
" open the fold | ||
normal zv | ||
call assert_equal(-1, foldclosedend(10)) | ||
" fold in other window must have opened too | ||
call win_gotoid(wintwo) | ||
call assert_equal(-1, foldclosedend(10)) | ||
|
||
" cursor position is in sync | ||
normal 23G | ||
call win_gotoid(winone) | ||
call assert_equal(23, getcurpos()[1]) | ||
|
||
windo diffoff | ||
close! | ||
set nomodified | ||
endfunc | ||
|
||
func Test_vert_split() | ||
" Disable the title to avoid xterm keeping the wrong one. | ||
set notitle noicon | ||
new | ||
let l = ['1 aa', '2 bb', '3 cc', '4 dd', '5 ee'] | ||
call setline(1, l) | ||
w! Xtest | ||
normal dd | ||
$ | ||
put | ||
normal kkrXoxxx | ||
w! Xtest2 | ||
file Nop | ||
normal ggoyyyjjjozzzz | ||
set foldmethod=marker foldcolumn=4 | ||
call assert_equal(0, &diff) | ||
call assert_equal('marker', &foldmethod) | ||
call assert_equal(4, &foldcolumn) | ||
call assert_equal(0, &scrollbind) | ||
call assert_equal(0, &cursorbind) | ||
call assert_equal(1, &wrap) | ||
|
||
vert diffsplit Xtest | ||
vert diffsplit Xtest2 | ||
call assert_equal(1, &diff) | ||
call assert_equal('diff', &foldmethod) | ||
call assert_equal(2, &foldcolumn) | ||
call assert_equal(1, &scrollbind) | ||
call assert_equal(1, &cursorbind) | ||
call assert_equal(0, &wrap) | ||
|
||
let diff_fdm = &fdm | ||
let diff_fdc = &fdc | ||
" repeat entering diff mode here to see if this saves the wrong settings | ||
diffthis | ||
" jump to second window for a moment to have filler line appear at start of | ||
" first window | ||
wincmd w | ||
normal gg | ||
wincmd p | ||
normal gg | ||
call assert_equal(2, winline()) | ||
normal j | ||
call assert_equal(4, winline()) | ||
normal j | ||
call assert_equal(5, winline()) | ||
normal j | ||
call assert_equal(6, winline()) | ||
normal j | ||
call assert_equal(8, winline()) | ||
normal j | ||
call assert_equal(9, winline()) | ||
|
||
wincmd w | ||
normal gg | ||
call assert_equal(1, winline()) | ||
normal j | ||
call assert_equal(2, winline()) | ||
normal j | ||
call assert_equal(4, winline()) | ||
normal j | ||
call assert_equal(5, winline()) | ||
normal j | ||
call assert_equal(8, winline()) | ||
|
||
wincmd w | ||
normal gg | ||
call assert_equal(2, winline()) | ||
normal j | ||
call assert_equal(3, winline()) | ||
normal j | ||
call assert_equal(4, winline()) | ||
normal j | ||
call assert_equal(5, winline()) | ||
normal j | ||
call assert_equal(6, winline()) | ||
normal j | ||
call assert_equal(7, winline()) | ||
normal j | ||
call assert_equal(8, winline()) | ||
|
||
" Test diffoff | ||
diffoff! | ||
1wincmd 2 | ||
let &diff = 1 | ||
let &fdm = diff_fdm | ||
let &fdc = diff_fdc | ||
4wincmd w | ||
diffoff! | ||
1wincmd w | ||
call assert_equal(0, &diff) | ||
call assert_equal('marker', &foldmethod) | ||
call assert_equal(4, &foldcolumn) | ||
call assert_equal(0, &scrollbind) | ||
call assert_equal(0, &cursorbind) | ||
call assert_equal(1, &wrap) | ||
|
||
wincmd w | ||
call assert_equal(0, &diff) | ||
call assert_equal('marker', &foldmethod) | ||
call assert_equal(4, &foldcolumn) | ||
call assert_equal(0, &scrollbind) | ||
call assert_equal(0, &cursorbind) | ||
call assert_equal(1, &wrap) | ||
|
||
wincmd w | ||
call assert_equal(0, &diff) | ||
call assert_equal('marker', &foldmethod) | ||
call assert_equal(4, &foldcolumn) | ||
call assert_equal(0, &scrollbind) | ||
call assert_equal(0, &cursorbind) | ||
call assert_equal(1, &wrap) | ||
|
||
windo bw! | ||
endfunc | ||
|
||
func Test_filler_lines() | ||
" Test that diffing shows correct filler lines | ||
enew! | ||
put =range(4,10) | ||
1d _ | ||
vnew | ||
put =range(1,10) | ||
1d _ | ||
windo diffthis | ||
wincmd h | ||
call assert_equal(1, line('w0')) | ||
unlet! diff_fdm diff_fdc | ||
|
||
windo bw! | ||
endfunc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters