summaryrefslogtreecommitdiffstats
path: root/src/testdir/test_changedtick.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-02-17 16:31:35 +0100
committerBram Moolenaar <Bram@vim.org>2017-02-17 16:31:35 +0100
commit79518e2ace5fce7b9c49060e462a6e935dba0a84 (patch)
tree5a5b1284386ac2aff2f39f50238327a54b46a7c3 /src/testdir/test_changedtick.vim
parent226c53429109f24e31c17016aedfd7fbf7a9aa50 (diff)
patch 8.0.0334: can't access b:changedtick from a dict referencev8.0.0334
Problem: Can't access b:changedtick from a dict reference. Solution: Make changedtick a member of the b: dict. (inspired by neovim #6112)
Diffstat (limited to 'src/testdir/test_changedtick.vim')
-rw-r--r--src/testdir/test_changedtick.vim45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/testdir/test_changedtick.vim b/src/testdir/test_changedtick.vim
new file mode 100644
index 0000000000..f273f0f76e
--- /dev/null
+++ b/src/testdir/test_changedtick.vim
@@ -0,0 +1,45 @@
+" Tests for b:changedtick
+
+func Test_changedtick_increments()
+ new
+ " New buffer has an empty line, tick starts at 2.
+ let expected = 2
+ call assert_equal(expected, b:changedtick)
+ call assert_equal(expected, b:['changedtick'])
+ call setline(1, 'hello')
+ let expected += 1
+ call assert_equal(expected, b:changedtick)
+ call assert_equal(expected, b:['changedtick'])
+ undo
+ " Somehow undo counts as two changes.
+ let expected += 2
+ call assert_equal(expected, b:changedtick)
+ call assert_equal(expected, b:['changedtick'])
+ bwipe!
+endfunc
+
+func Test_changedtick_dict_entry()
+ let d = b:
+ call assert_equal(b:changedtick, d['changedtick'])
+endfunc
+
+func Test_changedtick_bdel()
+ new
+ let bnr = bufnr('%')
+ let v = b:changedtick
+ bdel
+ " Delete counts as a change too.
+ call assert_equal(v + 1, getbufvar(bnr, 'changedtick'))
+endfunc
+
+func Test_changedtick_fixed()
+ call assert_fails('let b:changedtick = 4', 'E46')
+ call assert_fails('let b:["changedtick"] = 4', 'E46')
+
+ call assert_fails('unlet b:changedtick', 'E795')
+ call assert_fails('unlet b:["changedtick"]', 'E46')
+
+ let d = b:
+ call assert_fails('unlet d["changedtick"]', 'E46')
+
+endfunc