142093c0eSBram Moolenaar" Tests for diff mode 242093c0eSBram Moolenaar 342093c0eSBram Moolenaarfunc Test_diff_fold_sync() 442093c0eSBram Moolenaar enew! 542093c0eSBram Moolenaar let l = range(50) 642093c0eSBram Moolenaar call setline(1, l) 742093c0eSBram Moolenaar diffthis 842093c0eSBram Moolenaar let winone = win_getid() 942093c0eSBram Moolenaar new 1042093c0eSBram Moolenaar let l[25] = 'diff' 1142093c0eSBram Moolenaar call setline(1, l) 1242093c0eSBram Moolenaar diffthis 1342093c0eSBram Moolenaar let wintwo = win_getid() 1442093c0eSBram Moolenaar " line 15 is inside the closed fold 1542093c0eSBram Moolenaar call assert_equal(19, foldclosedend(10)) 1642093c0eSBram Moolenaar call win_gotoid(winone) 1742093c0eSBram Moolenaar call assert_equal(19, foldclosedend(10)) 1842093c0eSBram Moolenaar " open the fold 1942093c0eSBram Moolenaar normal zv 2042093c0eSBram Moolenaar call assert_equal(-1, foldclosedend(10)) 2142093c0eSBram Moolenaar " fold in other window must have opened too 2242093c0eSBram Moolenaar call win_gotoid(wintwo) 2342093c0eSBram Moolenaar call assert_equal(-1, foldclosedend(10)) 2442093c0eSBram Moolenaar 2542093c0eSBram Moolenaar " cursor position is in sync 2642093c0eSBram Moolenaar normal 23G 2742093c0eSBram Moolenaar call win_gotoid(winone) 2842093c0eSBram Moolenaar call assert_equal(23, getcurpos()[1]) 2942093c0eSBram Moolenaar 3042093c0eSBram Moolenaar windo diffoff 3142093c0eSBram Moolenaar close! 3242093c0eSBram Moolenaar set nomodified 3342093c0eSBram Moolenaarendfunc 3442093c0eSBram Moolenaar 3542093c0eSBram Moolenaarfunc Test_vert_split() 3642093c0eSBram Moolenaar " Disable the title to avoid xterm keeping the wrong one. 3742093c0eSBram Moolenaar set notitle noicon 3842093c0eSBram Moolenaar new 3942093c0eSBram Moolenaar let l = ['1 aa', '2 bb', '3 cc', '4 dd', '5 ee'] 4042093c0eSBram Moolenaar call setline(1, l) 4142093c0eSBram Moolenaar w! Xtest 4242093c0eSBram Moolenaar normal dd 4342093c0eSBram Moolenaar $ 4442093c0eSBram Moolenaar put 4542093c0eSBram Moolenaar normal kkrXoxxx 4642093c0eSBram Moolenaar w! Xtest2 4742093c0eSBram Moolenaar file Nop 4842093c0eSBram Moolenaar normal ggoyyyjjjozzzz 4942093c0eSBram Moolenaar set foldmethod=marker foldcolumn=4 5042093c0eSBram Moolenaar call assert_equal(0, &diff) 5142093c0eSBram Moolenaar call assert_equal('marker', &foldmethod) 5242093c0eSBram Moolenaar call assert_equal(4, &foldcolumn) 5342093c0eSBram Moolenaar call assert_equal(0, &scrollbind) 5442093c0eSBram Moolenaar call assert_equal(0, &cursorbind) 5542093c0eSBram Moolenaar call assert_equal(1, &wrap) 5642093c0eSBram Moolenaar 5742093c0eSBram Moolenaar vert diffsplit Xtest 5842093c0eSBram Moolenaar vert diffsplit Xtest2 5942093c0eSBram Moolenaar call assert_equal(1, &diff) 6042093c0eSBram Moolenaar call assert_equal('diff', &foldmethod) 6142093c0eSBram Moolenaar call assert_equal(2, &foldcolumn) 6242093c0eSBram Moolenaar call assert_equal(1, &scrollbind) 6342093c0eSBram Moolenaar call assert_equal(1, &cursorbind) 6442093c0eSBram Moolenaar call assert_equal(0, &wrap) 6542093c0eSBram Moolenaar 6642093c0eSBram Moolenaar let diff_fdm = &fdm 6742093c0eSBram Moolenaar let diff_fdc = &fdc 6842093c0eSBram Moolenaar " repeat entering diff mode here to see if this saves the wrong settings 6942093c0eSBram Moolenaar diffthis 7042093c0eSBram Moolenaar " jump to second window for a moment to have filler line appear at start of 7142093c0eSBram Moolenaar " first window 7242093c0eSBram Moolenaar wincmd w 7342093c0eSBram Moolenaar normal gg 7442093c0eSBram Moolenaar wincmd p 7542093c0eSBram Moolenaar normal gg 7642093c0eSBram Moolenaar call assert_equal(2, winline()) 7742093c0eSBram Moolenaar normal j 7842093c0eSBram Moolenaar call assert_equal(4, winline()) 7942093c0eSBram Moolenaar normal j 8042093c0eSBram Moolenaar call assert_equal(5, winline()) 8142093c0eSBram Moolenaar normal j 8242093c0eSBram Moolenaar call assert_equal(6, winline()) 8342093c0eSBram Moolenaar normal j 8442093c0eSBram Moolenaar call assert_equal(8, winline()) 8542093c0eSBram Moolenaar normal j 8642093c0eSBram Moolenaar call assert_equal(9, winline()) 8742093c0eSBram Moolenaar 8842093c0eSBram Moolenaar wincmd w 8942093c0eSBram Moolenaar normal gg 9042093c0eSBram Moolenaar call assert_equal(1, winline()) 9142093c0eSBram Moolenaar normal j 9242093c0eSBram Moolenaar call assert_equal(2, winline()) 9342093c0eSBram Moolenaar normal j 9442093c0eSBram Moolenaar call assert_equal(4, winline()) 9542093c0eSBram Moolenaar normal j 9642093c0eSBram Moolenaar call assert_equal(5, winline()) 9742093c0eSBram Moolenaar normal j 9842093c0eSBram Moolenaar call assert_equal(8, winline()) 9942093c0eSBram Moolenaar 10042093c0eSBram Moolenaar wincmd w 10142093c0eSBram Moolenaar normal gg 10242093c0eSBram Moolenaar call assert_equal(2, winline()) 10342093c0eSBram Moolenaar normal j 10442093c0eSBram Moolenaar call assert_equal(3, winline()) 10542093c0eSBram Moolenaar normal j 10642093c0eSBram Moolenaar call assert_equal(4, winline()) 10742093c0eSBram Moolenaar normal j 10842093c0eSBram Moolenaar call assert_equal(5, winline()) 10942093c0eSBram Moolenaar normal j 11042093c0eSBram Moolenaar call assert_equal(6, winline()) 11142093c0eSBram Moolenaar normal j 11242093c0eSBram Moolenaar call assert_equal(7, winline()) 11342093c0eSBram Moolenaar normal j 11442093c0eSBram Moolenaar call assert_equal(8, winline()) 11542093c0eSBram Moolenaar 11642093c0eSBram Moolenaar " Test diffoff 11742093c0eSBram Moolenaar diffoff! 11842093c0eSBram Moolenaar 1wincmd 2 11942093c0eSBram Moolenaar let &diff = 1 12042093c0eSBram Moolenaar let &fdm = diff_fdm 12142093c0eSBram Moolenaar let &fdc = diff_fdc 12242093c0eSBram Moolenaar 4wincmd w 12342093c0eSBram Moolenaar diffoff! 12442093c0eSBram Moolenaar 1wincmd w 12542093c0eSBram Moolenaar call assert_equal(0, &diff) 12642093c0eSBram Moolenaar call assert_equal('marker', &foldmethod) 12742093c0eSBram Moolenaar call assert_equal(4, &foldcolumn) 12842093c0eSBram Moolenaar call assert_equal(0, &scrollbind) 12942093c0eSBram Moolenaar call assert_equal(0, &cursorbind) 13042093c0eSBram Moolenaar call assert_equal(1, &wrap) 13142093c0eSBram Moolenaar 13242093c0eSBram Moolenaar wincmd w 13342093c0eSBram Moolenaar call assert_equal(0, &diff) 13442093c0eSBram Moolenaar call assert_equal('marker', &foldmethod) 13542093c0eSBram Moolenaar call assert_equal(4, &foldcolumn) 13642093c0eSBram Moolenaar call assert_equal(0, &scrollbind) 13742093c0eSBram Moolenaar call assert_equal(0, &cursorbind) 13842093c0eSBram Moolenaar call assert_equal(1, &wrap) 13942093c0eSBram Moolenaar 14042093c0eSBram Moolenaar wincmd w 14142093c0eSBram Moolenaar call assert_equal(0, &diff) 14242093c0eSBram Moolenaar call assert_equal('marker', &foldmethod) 14342093c0eSBram Moolenaar call assert_equal(4, &foldcolumn) 14442093c0eSBram Moolenaar call assert_equal(0, &scrollbind) 14542093c0eSBram Moolenaar call assert_equal(0, &cursorbind) 14642093c0eSBram Moolenaar call assert_equal(1, &wrap) 14742093c0eSBram Moolenaar 148623cf88fSBram Moolenaar call delete('Xtest') 149623cf88fSBram Moolenaar call delete('Xtest2') 15042093c0eSBram Moolenaar windo bw! 15142093c0eSBram Moolenaarendfunc 15242093c0eSBram Moolenaar 15342093c0eSBram Moolenaarfunc Test_filler_lines() 15442093c0eSBram Moolenaar " Test that diffing shows correct filler lines 15542093c0eSBram Moolenaar enew! 15642093c0eSBram Moolenaar put =range(4,10) 15742093c0eSBram Moolenaar 1d _ 15842093c0eSBram Moolenaar vnew 15942093c0eSBram Moolenaar put =range(1,10) 16042093c0eSBram Moolenaar 1d _ 16142093c0eSBram Moolenaar windo diffthis 16242093c0eSBram Moolenaar wincmd h 16342093c0eSBram Moolenaar call assert_equal(1, line('w0')) 16442093c0eSBram Moolenaar unlet! diff_fdm diff_fdc 165*90d121faSBram Moolenaar windo diffoff 166*90d121faSBram Moolenaar bwipe! 167*90d121faSBram Moolenaar enew! 168*90d121faSBram Moolenaarendfunc 16942093c0eSBram Moolenaar 170*90d121faSBram Moolenaarfunc Test_diffget_diffput() 171*90d121faSBram Moolenaar enew! 172*90d121faSBram Moolenaar let l = range(50) 173*90d121faSBram Moolenaar call setline(1, l) 174*90d121faSBram Moolenaar call assert_fails('diffget', 'E99:') 175*90d121faSBram Moolenaar diffthis 176*90d121faSBram Moolenaar call assert_fails('diffget', 'E100:') 177*90d121faSBram Moolenaar new 178*90d121faSBram Moolenaar let l[10] = 'one' 179*90d121faSBram Moolenaar let l[20] = 'two' 180*90d121faSBram Moolenaar let l[30] = 'three' 181*90d121faSBram Moolenaar let l[40] = 'four' 182*90d121faSBram Moolenaar call setline(1, l) 183*90d121faSBram Moolenaar diffthis 184*90d121faSBram Moolenaar call assert_equal('one', getline(11)) 185*90d121faSBram Moolenaar 11diffget 186*90d121faSBram Moolenaar call assert_equal('10', getline(11)) 187*90d121faSBram Moolenaar 21diffput 188*90d121faSBram Moolenaar wincmd w 189*90d121faSBram Moolenaar call assert_equal('two', getline(21)) 190*90d121faSBram Moolenaar normal 31Gdo 191*90d121faSBram Moolenaar call assert_equal('three', getline(31)) 192*90d121faSBram Moolenaar call assert_equal('40', getline(41)) 193*90d121faSBram Moolenaar normal 41Gdp 194*90d121faSBram Moolenaar wincmd w 195*90d121faSBram Moolenaar call assert_equal('40', getline(41)) 196*90d121faSBram Moolenaar new 197*90d121faSBram Moolenaar diffthis 198*90d121faSBram Moolenaar call assert_fails('diffget', 'E101:') 199*90d121faSBram Moolenaar 200*90d121faSBram Moolenaar windo diffoff 201*90d121faSBram Moolenaar bwipe! 202*90d121faSBram Moolenaar bwipe! 203*90d121faSBram Moolenaar enew! 20442093c0eSBram Moolenaarendfunc 205