Bram Moolenaar | 79518e2 | 2017-02-17 16:31:35 +0100 | [diff] [blame] | 1 | " Tests for b:changedtick |
| 2 | |
| 3 | func 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! |
| 19 | endfunc |
| 20 | |
| 21 | func Test_changedtick_dict_entry() |
| 22 | let d = b: |
| 23 | call assert_equal(b:changedtick, d['changedtick']) |
| 24 | endfunc |
| 25 | |
| 26 | func 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')) |
| 33 | endfunc |
| 34 | |
| 35 | func 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('unlet b:changedtick', 'E795') |
| 40 | call assert_fails('unlet b:["changedtick"]', 'E46') |
| 41 | |
| 42 | let d = b: |
| 43 | call assert_fails('unlet d["changedtick"]', 'E46') |
| 44 | |
| 45 | endfunc |