Imported Upstream version 8.0.586
[platform/upstream/vim.git] / src / testdir / test_changedtick.vim
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_islocked()
36   call assert_equal(0, islocked('b:changedtick'))
37   let d = b:
38   call assert_equal(0, islocked('d.changedtick'))
39 endfunc
40
41 func 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
57 endfunc