aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2019-08-31 14:26:49 +0200
committerJustin M. Keyes <justinkz@gmail.com>2019-09-04 21:21:28 +0200
commitd401539012f8222144b6873fd591baa232e8877c (patch)
treedfa1d1f1173fff6ac0e069f458b6e5956f31214e
parent83c5701fe6d182c2f458b95d09114d9c861f8893 (diff)
downloadrneovim-d401539012f8222144b6873fd591baa232e8877c.tar.gz
rneovim-d401539012f8222144b6873fd591baa232e8877c.tar.bz2
rneovim-d401539012f8222144b6873fd591baa232e8877c.zip
vim-patch:8.1.1501: new behavior of b:changedtick not tested
Problem: New behavior of b:changedtick not tested. Solution: Add a few test cases. (Daniel Hahler) https://github.com/vim/vim/commit/260addf7955f3695d3daef9dcf840952af9fd851
-rw-r--r--src/nvim/testdir/test_changedtick.vim38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_changedtick.vim b/src/nvim/testdir/test_changedtick.vim
index 3a91bb54aa..c789cdc1bc 100644
--- a/src/nvim/testdir/test_changedtick.vim
+++ b/src/nvim/testdir/test_changedtick.vim
@@ -55,3 +55,41 @@ func Test_changedtick_fixed()
call assert_fails('unlet d["changedtick"]', 'E46:')
endfunc
+
+func Test_changedtick_not_incremented_with_write()
+ new
+ let fname = "XChangeTick"
+ exe 'w ' .. fname
+
+ " :write when the buffer is not changed does not increment changedtick
+ let expected = b:changedtick
+ w
+ call assert_equal(expected, b:changedtick)
+
+ " :write when the buffer IS changed DOES increment changedtick
+ let expected = b:changedtick + 1
+ setlocal modified
+ w
+ call assert_equal(expected, b:changedtick)
+
+ " Two ticks: change + write
+ let expected = b:changedtick + 2
+ call setline(1, 'hello')
+ w
+ call assert_equal(expected, b:changedtick)
+
+ " Two ticks: start insert + write
+ let expected = b:changedtick + 2
+ normal! o
+ w
+ call assert_equal(expected, b:changedtick)
+
+ " Three ticks: start insert + change + write
+ let expected = b:changedtick + 3
+ normal! ochanged
+ w
+ call assert_equal(expected, b:changedtick)
+
+ bwipe
+ call delete(fname)
+endfunc