1*42093c0eSBram Moolenaar" Tests for diff mode 2*42093c0eSBram Moolenaar 3*42093c0eSBram Moolenaarfunc Test_diff_fold_sync() 4*42093c0eSBram Moolenaar enew! 5*42093c0eSBram Moolenaar let l = range(50) 6*42093c0eSBram Moolenaar call setline(1, l) 7*42093c0eSBram Moolenaar diffthis 8*42093c0eSBram Moolenaar let winone = win_getid() 9*42093c0eSBram Moolenaar new 10*42093c0eSBram Moolenaar let l[25] = 'diff' 11*42093c0eSBram Moolenaar call setline(1, l) 12*42093c0eSBram Moolenaar diffthis 13*42093c0eSBram Moolenaar let wintwo = win_getid() 14*42093c0eSBram Moolenaar " line 15 is inside the closed fold 15*42093c0eSBram Moolenaar call assert_equal(19, foldclosedend(10)) 16*42093c0eSBram Moolenaar call win_gotoid(winone) 17*42093c0eSBram Moolenaar call assert_equal(19, foldclosedend(10)) 18*42093c0eSBram Moolenaar " open the fold 19*42093c0eSBram Moolenaar normal zv 20*42093c0eSBram Moolenaar call assert_equal(-1, foldclosedend(10)) 21*42093c0eSBram Moolenaar " fold in other window must have opened too 22*42093c0eSBram Moolenaar call win_gotoid(wintwo) 23*42093c0eSBram Moolenaar call assert_equal(-1, foldclosedend(10)) 24*42093c0eSBram Moolenaar 25*42093c0eSBram Moolenaar " cursor position is in sync 26*42093c0eSBram Moolenaar normal 23G 27*42093c0eSBram Moolenaar call win_gotoid(winone) 28*42093c0eSBram Moolenaar call assert_equal(23, getcurpos()[1]) 29*42093c0eSBram Moolenaar 30*42093c0eSBram Moolenaar windo diffoff 31*42093c0eSBram Moolenaar close! 32*42093c0eSBram Moolenaar set nomodified 33*42093c0eSBram Moolenaarendfunc 34*42093c0eSBram Moolenaar 35*42093c0eSBram Moolenaarfunc Test_vert_split() 36*42093c0eSBram Moolenaar " Disable the title to avoid xterm keeping the wrong one. 37*42093c0eSBram Moolenaar set notitle noicon 38*42093c0eSBram Moolenaar new 39*42093c0eSBram Moolenaar let l = ['1 aa', '2 bb', '3 cc', '4 dd', '5 ee'] 40*42093c0eSBram Moolenaar call setline(1, l) 41*42093c0eSBram Moolenaar w! Xtest 42*42093c0eSBram Moolenaar normal dd 43*42093c0eSBram Moolenaar $ 44*42093c0eSBram Moolenaar put 45*42093c0eSBram Moolenaar normal kkrXoxxx 46*42093c0eSBram Moolenaar w! Xtest2 47*42093c0eSBram Moolenaar file Nop 48*42093c0eSBram Moolenaar normal ggoyyyjjjozzzz 49*42093c0eSBram Moolenaar set foldmethod=marker foldcolumn=4 50*42093c0eSBram Moolenaar call assert_equal(0, &diff) 51*42093c0eSBram Moolenaar call assert_equal('marker', &foldmethod) 52*42093c0eSBram Moolenaar call assert_equal(4, &foldcolumn) 53*42093c0eSBram Moolenaar call assert_equal(0, &scrollbind) 54*42093c0eSBram Moolenaar call assert_equal(0, &cursorbind) 55*42093c0eSBram Moolenaar call assert_equal(1, &wrap) 56*42093c0eSBram Moolenaar 57*42093c0eSBram Moolenaar vert diffsplit Xtest 58*42093c0eSBram Moolenaar vert diffsplit Xtest2 59*42093c0eSBram Moolenaar call assert_equal(1, &diff) 60*42093c0eSBram Moolenaar call assert_equal('diff', &foldmethod) 61*42093c0eSBram Moolenaar call assert_equal(2, &foldcolumn) 62*42093c0eSBram Moolenaar call assert_equal(1, &scrollbind) 63*42093c0eSBram Moolenaar call assert_equal(1, &cursorbind) 64*42093c0eSBram Moolenaar call assert_equal(0, &wrap) 65*42093c0eSBram Moolenaar 66*42093c0eSBram Moolenaar let diff_fdm = &fdm 67*42093c0eSBram Moolenaar let diff_fdc = &fdc 68*42093c0eSBram Moolenaar " repeat entering diff mode here to see if this saves the wrong settings 69*42093c0eSBram Moolenaar diffthis 70*42093c0eSBram Moolenaar " jump to second window for a moment to have filler line appear at start of 71*42093c0eSBram Moolenaar " first window 72*42093c0eSBram Moolenaar wincmd w 73*42093c0eSBram Moolenaar normal gg 74*42093c0eSBram Moolenaar wincmd p 75*42093c0eSBram Moolenaar normal gg 76*42093c0eSBram Moolenaar call assert_equal(2, winline()) 77*42093c0eSBram Moolenaar normal j 78*42093c0eSBram Moolenaar call assert_equal(4, winline()) 79*42093c0eSBram Moolenaar normal j 80*42093c0eSBram Moolenaar call assert_equal(5, winline()) 81*42093c0eSBram Moolenaar normal j 82*42093c0eSBram Moolenaar call assert_equal(6, winline()) 83*42093c0eSBram Moolenaar normal j 84*42093c0eSBram Moolenaar call assert_equal(8, winline()) 85*42093c0eSBram Moolenaar normal j 86*42093c0eSBram Moolenaar call assert_equal(9, winline()) 87*42093c0eSBram Moolenaar 88*42093c0eSBram Moolenaar wincmd w 89*42093c0eSBram Moolenaar normal gg 90*42093c0eSBram Moolenaar call assert_equal(1, winline()) 91*42093c0eSBram Moolenaar normal j 92*42093c0eSBram Moolenaar call assert_equal(2, winline()) 93*42093c0eSBram Moolenaar normal j 94*42093c0eSBram Moolenaar call assert_equal(4, winline()) 95*42093c0eSBram Moolenaar normal j 96*42093c0eSBram Moolenaar call assert_equal(5, winline()) 97*42093c0eSBram Moolenaar normal j 98*42093c0eSBram Moolenaar call assert_equal(8, winline()) 99*42093c0eSBram Moolenaar 100*42093c0eSBram Moolenaar wincmd w 101*42093c0eSBram Moolenaar normal gg 102*42093c0eSBram Moolenaar call assert_equal(2, winline()) 103*42093c0eSBram Moolenaar normal j 104*42093c0eSBram Moolenaar call assert_equal(3, winline()) 105*42093c0eSBram Moolenaar normal j 106*42093c0eSBram Moolenaar call assert_equal(4, winline()) 107*42093c0eSBram Moolenaar normal j 108*42093c0eSBram Moolenaar call assert_equal(5, winline()) 109*42093c0eSBram Moolenaar normal j 110*42093c0eSBram Moolenaar call assert_equal(6, winline()) 111*42093c0eSBram Moolenaar normal j 112*42093c0eSBram Moolenaar call assert_equal(7, winline()) 113*42093c0eSBram Moolenaar normal j 114*42093c0eSBram Moolenaar call assert_equal(8, winline()) 115*42093c0eSBram Moolenaar 116*42093c0eSBram Moolenaar " Test diffoff 117*42093c0eSBram Moolenaar diffoff! 118*42093c0eSBram Moolenaar 1wincmd 2 119*42093c0eSBram Moolenaar let &diff = 1 120*42093c0eSBram Moolenaar let &fdm = diff_fdm 121*42093c0eSBram Moolenaar let &fdc = diff_fdc 122*42093c0eSBram Moolenaar 4wincmd w 123*42093c0eSBram Moolenaar diffoff! 124*42093c0eSBram Moolenaar 1wincmd w 125*42093c0eSBram Moolenaar call assert_equal(0, &diff) 126*42093c0eSBram Moolenaar call assert_equal('marker', &foldmethod) 127*42093c0eSBram Moolenaar call assert_equal(4, &foldcolumn) 128*42093c0eSBram Moolenaar call assert_equal(0, &scrollbind) 129*42093c0eSBram Moolenaar call assert_equal(0, &cursorbind) 130*42093c0eSBram Moolenaar call assert_equal(1, &wrap) 131*42093c0eSBram Moolenaar 132*42093c0eSBram Moolenaar wincmd w 133*42093c0eSBram Moolenaar call assert_equal(0, &diff) 134*42093c0eSBram Moolenaar call assert_equal('marker', &foldmethod) 135*42093c0eSBram Moolenaar call assert_equal(4, &foldcolumn) 136*42093c0eSBram Moolenaar call assert_equal(0, &scrollbind) 137*42093c0eSBram Moolenaar call assert_equal(0, &cursorbind) 138*42093c0eSBram Moolenaar call assert_equal(1, &wrap) 139*42093c0eSBram Moolenaar 140*42093c0eSBram Moolenaar wincmd w 141*42093c0eSBram Moolenaar call assert_equal(0, &diff) 142*42093c0eSBram Moolenaar call assert_equal('marker', &foldmethod) 143*42093c0eSBram Moolenaar call assert_equal(4, &foldcolumn) 144*42093c0eSBram Moolenaar call assert_equal(0, &scrollbind) 145*42093c0eSBram Moolenaar call assert_equal(0, &cursorbind) 146*42093c0eSBram Moolenaar call assert_equal(1, &wrap) 147*42093c0eSBram Moolenaar 148*42093c0eSBram Moolenaar windo bw! 149*42093c0eSBram Moolenaarendfunc 150*42093c0eSBram Moolenaar 151*42093c0eSBram Moolenaarfunc Test_filler_lines() 152*42093c0eSBram Moolenaar " Test that diffing shows correct filler lines 153*42093c0eSBram Moolenaar enew! 154*42093c0eSBram Moolenaar put =range(4,10) 155*42093c0eSBram Moolenaar 1d _ 156*42093c0eSBram Moolenaar vnew 157*42093c0eSBram Moolenaar put =range(1,10) 158*42093c0eSBram Moolenaar 1d _ 159*42093c0eSBram Moolenaar windo diffthis 160*42093c0eSBram Moolenaar wincmd h 161*42093c0eSBram Moolenaar call assert_equal(1, line('w0')) 162*42093c0eSBram Moolenaar unlet! diff_fdm diff_fdc 163*42093c0eSBram Moolenaar 164*42093c0eSBram Moolenaar windo bw! 165*42093c0eSBram Moolenaarendfunc 166