Mercurial > vim
view src/testdir/test_diffmode.vim @ 10060:cf9e550f17f6 v7.4.2301
commit https://github.com/vim/vim/commit/641ad6c7ac7367f95fd927b8efa4bf74ddb9ccf3
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Sep 1 18:32:11 2016 +0200
patch 7.4.2301
Problem: MS-Windows: some files remain after testing.
Solution: Close the channel output file. Wait for the file handle to be
closed before deleting the file.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 01 Sep 2016 18:45:07 +0200 |
parents | 4b4ba6589a98 |
children | d0b74b18e4b5 |
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 diffoff! redraw call assert_equal(normattr, screenattr(1, 1)) bwipe! bwipe! endfunc