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_islocked() 36 call assert_equal(0, islocked('b:changedtick')) 37 let d = b: 38 call assert_equal(0, islocked('d.changedtick')) 39endfunc 40 41func Test_changedtick_fixed() 42 call assert_fails('let b:changedtick = 4', 'E46:') 43 call assert_fails('let b:["changedtick"] = 4', 'E46:') 44 45 call assert_fails('lockvar b:changedtick', 'E940:') 46 call assert_fails('lockvar b:["changedtick"]', 'E46:') 47 call assert_fails('unlockvar b:changedtick', 'E940:') 48 call assert_fails('unlockvar b:["changedtick"]', 'E46:') 49 call assert_fails('unlet b:changedtick', 'E795:') 50 call assert_fails('unlet b:["changedtick"]', 'E46:') 51 52 let d = b: 53 call assert_fails('lockvar d["changedtick"]', 'E46:') 54 call assert_fails('unlockvar d["changedtick"]', 'E46:') 55 call assert_fails('unlet d["changedtick"]', 'E46:') 56 57endfunc 58