Mercurial > vim
view src/testdir/test_diffmode.vim @ 10922:2cc7e86bdada v8.0.0350
patch 8.0.0350: not enough test coverage for Perl
commit https://github.com/vim/vim/commit/ae177b716626c8d517b7c6c7d77f8b1aec6ba5f9
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Feb 23 13:45:57 2017 +0100
patch 8.0.0350: not enough test coverage for Perl
Problem: Not enough test coverage for Perl.
Solution: Add more Perl tests. (Dominique Perl, closes https://github.com/vim/vim/issues/1500)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 23 Feb 2017 14:00:05 +0100 |
parents | d9e48fb5142f |
children | c0d5e8ab1452 |
line wrap: on
line source
" 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) call delete('Xtest') call delete('Xtest2') 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 diffoff bwipe! enew! endfunc func Test_diffget_diffput() enew! let l = range(50) call setline(1, l) call assert_fails('diffget', 'E99:') diffthis call assert_fails('diffget', 'E100:') new let l[10] = 'one' let l[20] = 'two' let l[30] = 'three' let l[40] = 'four' call setline(1, l) diffthis call assert_equal('one', getline(11)) 11diffget call assert_equal('10', getline(11)) 21diffput wincmd w call assert_equal('two', getline(21)) normal 31Gdo call assert_equal('three', getline(31)) call assert_equal('40', getline(41)) normal 41Gdp wincmd w call assert_equal('40', getline(41)) new diffthis call assert_fails('diffget', 'E101:') windo diffoff bwipe! bwipe! enew! endfunc func Test_diffoff() enew! call setline(1, ['Two', 'Three']) let normattr = screenattr(1, 1) diffthis botright vert new call setline(1, ['One', '', 'Two', 'Three']) diffthis redraw call assert_notequal(normattr, screenattr(1, 1)) diffoff! redraw call assert_equal(normattr, screenattr(1, 1)) bwipe! bwipe! endfunc func Test_diffoff_hidden() set diffopt=filler,foldcolumn:0 e! one call setline(1, ['Two', 'Three']) let normattr = screenattr(1, 1) diffthis botright vert new two call setline(1, ['One', 'Four']) diffthis redraw call assert_notequal(normattr, screenattr(1, 1)) set hidden close redraw " diffing with hidden buffer two call assert_notequal(normattr, screenattr(1, 1)) diffoff redraw call assert_equal(normattr, screenattr(1, 1)) diffthis redraw " still diffing with hidden buffer two call assert_notequal(normattr, screenattr(1, 1)) diffoff! redraw call assert_equal(normattr, screenattr(1, 1)) diffthis redraw " no longer diffing with hidden buffer two call assert_equal(normattr, screenattr(1, 1)) bwipe! bwipe! set hidden& diffopt& endfunc func Test_setting_cursor() new Xtest1 put =range(1,90) wq new Xtest2 put =range(1,100) wq tabe Xtest2 $ diffsp Xtest1 tabclose call delete('Xtest1') call delete('Xtest2') endfunc