From fd13e8044cd2f5cc27dc613d2d46dad55773b1d6 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Wed, 16 Dec 2015 12:10:01 +0000 Subject: 37411: more bindkey tests --- Test/X03zlebindkey.ztst | 79 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 2 deletions(-) (limited to 'Test') diff --git a/Test/X03zlebindkey.ztst b/Test/X03zlebindkey.ztst index e6fead586..38afc2d61 100644 --- a/Test/X03zlebindkey.ztst +++ b/Test/X03zlebindkey.ztst @@ -1,4 +1,6 @@ -# Tests of the vi mode of ZLE +# Tests of the bindkey command. +# This concentrates on the command itself and also resolving keystrokes +# into bindings. The latter is particularly tricky with multibyte sequences. %prep ZSH_TEST_LANG= @@ -28,8 +30,81 @@ >BUFFER: foo >CURSOR: 3 + zpty_run 'bindkey -s "\C-xy" foo' + zpty_run 'bindkey -s "\C-x\C-y" bar' + zletest $'\C-xy\C-x\C-y' + zpty_run 'bindkey -r "\C-xy"' + zpty_run 'bindkey -r "\C-x\C-y"' +0:bindkey with multiple definitions associated with prefix +>BUFFER: foobar +>CURSOR: 6 + + bindkey -s '\C-xy' bar + bindkey '\C-xy' + bindkey -r '\C-xy' + bindkey '\C-xy' +0:bindkey output +>"^Xy" "bar" +>"^Xy" undefined-key + +# As we're only looking at definitions here, we don't +# bother using the pseudo-terminal; just test in the normal fashion. + bindkey -s '\C-xy' foo + bindkey -N testmap emacs + bindkey -M testmap '\C-xy' + bindkey -s -M testmap '\C-xy' bar + bindkey -M testmap '\C-xy' + bindkey '\C-xy' + bindkey -A testmap main + bindkey '\C-xy' + bindkey -A emacs main + bindkey '\C-xy' +0:creating keymaps from existing keymaps +>"^Xy" "foo" +>"^Xy" "bar" +>"^Xy" "foo" +>"^Xy" "bar" +>"^Xy" "foo" + +# Depends on the keymap created in the previous test. + bindkey -l + bindkey -D testmap + print Deleted... + bindkey -l +0:deleting keymaps +>.safe +>command +>emacs +>isearch +>main +>testmap +>vicmd +>viins +>viopp +>visual +>Deleted... +>.safe +>command +>emacs +>isearch +>main +>vicmd +>viins +>viopp +>visual + +# This \M... style display of 8-bit characters is a bit +# dated in multibyte mode, but no one's complained... + if [[ -z $ZSH_TEST_LANG ]]; then + ZTST_skip="multibyte not available for bindkey test" + else + bindkey | grep '\\M.*self-insert' + fi +0:in multibyte mode all bytes with bit 7 set start self-insert +>"\M-^@"-"\M-^?" self-insert + if [[ -z $ZSH_TEST_LANG ]]; then - ZTST_skip="bindkey multibyte test skipped" + ZTST_skip="multibyte not available for bindkey test" else zpty_run 'alias unbind="bindkey -r ホ"' zpty_run 'bindkey -s ホ bar' -- cgit 1.4.1