179518e2aSBram Moolenaar" Tests for b:changedtick 279518e2aSBram Moolenaar 379518e2aSBram Moolenaarfunc Test_changedtick_increments() 479518e2aSBram Moolenaar new 579518e2aSBram Moolenaar " New buffer has an empty line, tick starts at 2. 679518e2aSBram Moolenaar let expected = 2 779518e2aSBram Moolenaar call assert_equal(expected, b:changedtick) 879518e2aSBram Moolenaar call assert_equal(expected, b:['changedtick']) 979518e2aSBram Moolenaar call setline(1, 'hello') 1079518e2aSBram Moolenaar let expected += 1 1179518e2aSBram Moolenaar call assert_equal(expected, b:changedtick) 1279518e2aSBram Moolenaar call assert_equal(expected, b:['changedtick']) 1379518e2aSBram Moolenaar undo 1479518e2aSBram Moolenaar " Somehow undo counts as two changes. 1579518e2aSBram Moolenaar let expected += 2 1679518e2aSBram Moolenaar call assert_equal(expected, b:changedtick) 1779518e2aSBram Moolenaar call assert_equal(expected, b:['changedtick']) 1879518e2aSBram Moolenaar bwipe! 1979518e2aSBram Moolenaarendfunc 2079518e2aSBram Moolenaar 2179518e2aSBram Moolenaarfunc Test_changedtick_dict_entry() 2279518e2aSBram Moolenaar let d = b: 2379518e2aSBram Moolenaar call assert_equal(b:changedtick, d['changedtick']) 2479518e2aSBram Moolenaarendfunc 2579518e2aSBram Moolenaar 2679518e2aSBram Moolenaarfunc Test_changedtick_bdel() 2779518e2aSBram Moolenaar new 2879518e2aSBram Moolenaar let bnr = bufnr('%') 2979518e2aSBram Moolenaar let v = b:changedtick 3079518e2aSBram Moolenaar bdel 3179518e2aSBram Moolenaar " Delete counts as a change too. 3279518e2aSBram Moolenaar call assert_equal(v + 1, getbufvar(bnr, 'changedtick')) 3379518e2aSBram Moolenaarendfunc 3479518e2aSBram Moolenaar 353a257737SBram Moolenaarfunc Test_changedtick_islocked() 363a257737SBram Moolenaar call assert_equal(0, islocked('b:changedtick')) 373a257737SBram Moolenaar let d = b: 383a257737SBram Moolenaar call assert_equal(0, islocked('d.changedtick')) 393a257737SBram Moolenaarendfunc 403a257737SBram Moolenaar 4179518e2aSBram Moolenaarfunc Test_changedtick_fixed() 42e7877fe0SBram Moolenaar call assert_fails('let b:changedtick = 4', 'E46:') 43e7877fe0SBram Moolenaar call assert_fails('let b:["changedtick"] = 4', 'E46:') 4479518e2aSBram Moolenaar 45e7877fe0SBram Moolenaar call assert_fails('lockvar b:changedtick', 'E940:') 46e7877fe0SBram Moolenaar call assert_fails('lockvar b:["changedtick"]', 'E46:') 47e7877fe0SBram Moolenaar call assert_fails('unlockvar b:changedtick', 'E940:') 48e7877fe0SBram Moolenaar call assert_fails('unlockvar b:["changedtick"]', 'E46:') 49e7877fe0SBram Moolenaar call assert_fails('unlet b:changedtick', 'E795:') 50e7877fe0SBram Moolenaar call assert_fails('unlet b:["changedtick"]', 'E46:') 5179518e2aSBram Moolenaar 5279518e2aSBram Moolenaar let d = b: 53e7877fe0SBram Moolenaar call assert_fails('lockvar d["changedtick"]', 'E46:') 54e7877fe0SBram Moolenaar call assert_fails('unlockvar d["changedtick"]', 'E46:') 55e7877fe0SBram Moolenaar call assert_fails('unlet d["changedtick"]', 'E46:') 5679518e2aSBram Moolenaar 5779518e2aSBram Moolenaarendfunc 58260addf7SBram Moolenaar 59260addf7SBram Moolenaarfunc Test_changedtick_not_incremented_with_write() 60260addf7SBram Moolenaar new 61260addf7SBram Moolenaar let fname = "XChangeTick" 62260addf7SBram Moolenaar exe 'w ' .. fname 63260addf7SBram Moolenaar 64260addf7SBram Moolenaar " :write when the buffer is not changed does not increment changedtick 65260addf7SBram Moolenaar let expected = b:changedtick 66260addf7SBram Moolenaar w 67260addf7SBram Moolenaar call assert_equal(expected, b:changedtick) 68260addf7SBram Moolenaar 69260addf7SBram Moolenaar " :write when the buffer IS changed DOES increment changedtick 70260addf7SBram Moolenaar let expected = b:changedtick + 1 71260addf7SBram Moolenaar setlocal modified 72260addf7SBram Moolenaar w 73260addf7SBram Moolenaar call assert_equal(expected, b:changedtick) 74260addf7SBram Moolenaar 75260addf7SBram Moolenaar " Two ticks: change + write 76260addf7SBram Moolenaar let expected = b:changedtick + 2 77260addf7SBram Moolenaar call setline(1, 'hello') 78260addf7SBram Moolenaar w 79260addf7SBram Moolenaar call assert_equal(expected, b:changedtick) 80260addf7SBram Moolenaar 81260addf7SBram Moolenaar " Two ticks: start insert + write 82260addf7SBram Moolenaar let expected = b:changedtick + 2 83260addf7SBram Moolenaar normal! o 84260addf7SBram Moolenaar w 85260addf7SBram Moolenaar call assert_equal(expected, b:changedtick) 86260addf7SBram Moolenaar 87260addf7SBram Moolenaar " Three ticks: start insert + change + write 88260addf7SBram Moolenaar let expected = b:changedtick + 3 89260addf7SBram Moolenaar normal! ochanged 90260addf7SBram Moolenaar w 91260addf7SBram Moolenaar call assert_equal(expected, b:changedtick) 92260addf7SBram Moolenaar 93260addf7SBram Moolenaar bwipe 94260addf7SBram Moolenaar call delete(fname) 95260addf7SBram Moolenaarendfunc 96*6d91bcb4SBram Moolenaar 97*6d91bcb4SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab 98