summary refs log tree commit diff
path: root/Test
diff options
context:
space:
mode:
Diffstat (limited to 'Test')
-rw-r--r--Test/X03zlebindkey.ztst45
-rw-r--r--Test/comptest2
2 files changed, 46 insertions, 1 deletions
diff --git a/Test/X03zlebindkey.ztst b/Test/X03zlebindkey.ztst
new file mode 100644
index 000000000..70c42f9c2
--- /dev/null
+++ b/Test/X03zlebindkey.ztst
@@ -0,0 +1,45 @@
+# Tests of the vi mode of ZLE
+
+%prep
+  mb_ok=
+  langs=(en_{US,GB}.{UTF-,utf}8 en.UTF-8
+	 $(locale -a 2>/dev/null | egrep 'utf8|UTF-8'))
+  for LANG in $langs; do
+    if [[ é = ? ]]; then
+      ZSH_TEST_LANG=$LANG
+      mb_ok=1
+      break;
+    fi
+  done
+  if [[ $OSTYPE = cygwin ]]; then
+    ZTST_unimplemented="the zsh/zpty module does not work on Cygwin"
+  elif ( zmodload zsh/zpty 2>/dev/null ); then
+    . $ZTST_srcdir/comptest
+    comptestinit -z $ZTST_testdir/../Src/zsh
+  else
+    ZTST_unimplemented="the zsh/zpty module is not available"
+  fi
+
+%test
+
+  zpty_run 'bindkey -s "\C-xy" foo'
+  zletest $'\C-xy'
+  zpty_run 'bindkey -r "\C-xy"'
+0:bindkey -s
+>BUFFER: foo
+>CURSOR: 3
+
+  if [[ -z $mb_ok ]]; then
+    ZTST_skip="bindkey multibyte test skipped"
+  else
+    zpty_run 'alias unbind="bindkey -r ホ"'
+    zpty_run 'bindkey -s ホ bar'
+    zletest 'ホ'
+    zpty_run unbind
+    zletest 'ホ'
+  fi
+0:bindkey -s multibyte characters
+>BUFFER: bar
+>CURSOR: 3
+>BUFFER: ホ
+>CURSOR: 1
diff --git a/Test/comptest b/Test/comptest
index f10739abe..166d0b404 100644
--- a/Test/comptest
+++ b/Test/comptest
@@ -27,7 +27,7 @@ comptestinit () {
   }
 
   comptesteval \
-"export LC_ALL=C" \
+"export LC_ALL=${ZSH_TEST_LANG:-C}" \
 "emulate -R zsh" \
 "export ZDOTDIR=$ZTST_testdir" \
 "module_path=( $module_path )" \