diff src/testdir/test_mapping.vim @ 29085:ae39554ad2ee v8.2.5064

patch 8.2.5064: no test for what 8.1.0052 fixes Commit: https://github.com/vim/vim/commit/3760bfddc414e4d3e1c4203db8c22e293cf08d09 Author: zeertzjq <zeertzjq@outlook.com> Date: Mon Jun 6 16:22:46 2022 +0100 patch 8.2.5064: no test for what 8.1.0052 fixes Problem: No test for what 8.1.0052 fixes. Solution: Add a test. (closes https://github.com/vim/vim/issues/10531)
author Bram Moolenaar <Bram@vim.org>
date Mon, 06 Jun 2022 17:30:03 +0200
parents fea88e555652
children 8a822186f1ab
line wrap: on
line diff
--- a/src/testdir/test_mapping.vim
+++ b/src/testdir/test_mapping.vim
@@ -1685,4 +1685,34 @@ func Test_expr_map_escape_special()
   nunmap …
 endfunc
 
+" Testing for mapping after an <Nop> mapping is triggered on timeout.
+" Test for what patch 8.1.0052 fixes.
+func Test_map_after_timed_out_nop()
+  CheckRunVimInTerminal
+
+  let lines =<< trim END
+    set timeout timeoutlen=400
+    inoremap ab TEST
+    inoremap a <Nop>
+  END
+  call writefile(lines, 'Xtest_map_after_timed_out_nop')
+  let buf = RunVimInTerminal('-S Xtest_map_after_timed_out_nop', #{rows: 6})
+
+  " Enter Insert mode
+  call term_sendkeys(buf, 'i')
+  " Wait for the "a" mapping to timeout
+  call term_sendkeys(buf, 'a')
+  call term_wait(buf, 500)
+  " Send "a" and wait for a period shorter than 'timeoutlen'
+  call term_sendkeys(buf, 'a')
+  call term_wait(buf, 100)
+  " Send "b", should trigger the "ab" mapping
+  call term_sendkeys(buf, 'b')
+  call WaitForAssert({-> assert_equal("TEST", term_getline(buf, 1))})
+
+  " clean up
+  call StopVimInTerminal(buf)
+  call delete('Xtest_map_after_timed_out_nop')
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab