1" Tests for b:changedtick 2 3func Test_changedtick_increments() 4 new 5 " New buffer has an empty line, tick starts at 2. 6 let expected = 2 7 call assert_equal(expected, b:changedtick) 8 call assert_equal(expected, b:['changedtick']) 9 call setline(1, 'hello') 10 let expected += 1 11 call assert_equal(expected, b:changedtick) 12 call assert_equal(expected, b:['changedtick']) 13 undo 14 " Somehow undo counts as two changes. 15 let expected += 2 16 call assert_equal(expected, b:changedtick) 17 call assert_equal(expected, b:['changedtick']) 18 bwipe! 19endfunc 20 21func Test_changedtick_dict_entry() 22 let d = b: 23 call assert_equal(b:changedtick, d['changedtick']) 24endfunc 25 26func Test_changedtick_bdel() 27 new 28 let bnr = bufnr('%') 29 let v = b:changedtick 30 bdel 31 " Delete counts as a change too. 32 call assert_equal(v + 1, getbufvar(bnr, 'changedtick')) 33endfunc 34 35func Test_changedtick_fixed() 36 call assert_fails('let b:changedtick = 4', 'E46:') 37 call assert_fails('let b:["changedtick"] = 4', 'E46:') 38 39 call assert_fails('lockvar b:changedtick', 'E940:') 40 call assert_fails('lockvar b:["changedtick"]', 'E46:') 41 call assert_fails('unlockvar b:changedtick', 'E940:') 42 call assert_fails('unlockvar b:["changedtick"]', 'E46:') 43 call assert_fails('unlet b:changedtick', 'E795:') 44 call assert_fails('unlet b:["changedtick"]', 'E46:') 45 46 let d = b: 47 call assert_fails('lockvar d["changedtick"]', 'E46:') 48 call assert_fails('unlockvar d["changedtick"]', 'E46:') 49 call assert_fails('unlet d["changedtick"]', 'E46:') 50 51endfunc 52