summaryrefslogtreecommitdiffstats
path: root/src/testdir/test_cmdline.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-10-27 05:12:45 +0100
committerBram Moolenaar <Bram@vim.org>2019-10-27 05:12:45 +0100
commit52410575be50d5c40bbe6380159df48cfc382ceb (patch)
treef8a212edd951fa1df961da74870bc9c172dc0b01 /src/testdir/test_cmdline.vim
parentdfded98f87601b11271ee88392c821ceb6390eda (diff)
patch 8.1.2225: the "last used" info of a buffer is under usedv8.1.2225
Problem: The "last used" info of a buffer is under used. Solution: Add "lastused" to getbufinfo(). List buffers sorted by last-used field. (Andi Massimino, closes #4722)
Diffstat (limited to 'src/testdir/test_cmdline.vim')
-rw-r--r--src/testdir/test_cmdline.vim45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index 55f35e7dd6..57dff41673 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -767,3 +767,48 @@ func Test_cmdwin_bug()
endtry
bw!
endfunc
+
+func Test_buffers_lastused()
+ " check that buffers are sorted by time when wildmode has lastused
+ call test_settime(1550020000) " middle
+ edit bufa
+ enew
+ call test_settime(1550030000) " newest
+ edit bufb
+ enew
+ call test_settime(1550010000) " oldest
+ edit bufc
+ enew
+ call test_settime(0)
+ enew
+
+ call assert_equal(['bufa', 'bufb', 'bufc'],
+ \ getcompletion('', 'buffer'))
+
+ let save_wildmode = &wildmode
+ set wildmode=full:lastused
+
+ let cap = "\<c-r>=execute('let X=getcmdline()')\<cr>"
+ call feedkeys(":b \<tab>" .. cap .. "\<esc>", 'xt')
+ call assert_equal('b bufb', X)
+ call feedkeys(":b \<tab>\<tab>" .. cap .. "\<esc>", 'xt')
+ call assert_equal('b bufa', X)
+ call feedkeys(":b \<tab>\<tab>\<tab>" .. cap .. "\<esc>", 'xt')
+ call assert_equal('b bufc', X)
+ enew
+
+ edit other
+ call feedkeys(":b \<tab>" .. cap .. "\<esc>", 'xt')
+ call assert_equal('b bufb', X)
+ call feedkeys(":b \<tab>\<tab>" .. cap .. "\<esc>", 'xt')
+ call assert_equal('b bufa', X)
+ call feedkeys(":b \<tab>\<tab>\<tab>" .. cap .. "\<esc>", 'xt')
+ call assert_equal('b bufc', X)
+ enew
+
+ let &wildmode = save_wildmode
+
+ bwipeout bufa
+ bwipeout bufb
+ bwipeout bufc
+endfunc