summaryrefslogtreecommitdiff
path: root/test/unit/_init_completion.exp
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/_init_completion.exp')
-rw-r--r--test/unit/_init_completion.exp35
1 files changed, 35 insertions, 0 deletions
diff --git a/test/unit/_init_completion.exp b/test/unit/_init_completion.exp
new file mode 100644
index 00000000..75c41255
--- /dev/null
+++ b/test/unit/_init_completion.exp
@@ -0,0 +1,35 @@
+proc setup {} {
+ save_env
+}
+
+
+proc teardown {} {
+ assert_bash_exec { \
+ unset COMP_CWORD COMP_LINE COMP_POINT COMP_WORDS cur prev words cword\
+ }
+ assert_env_unmodified {
+ /COMPREPLY=/d
+ }
+}
+
+
+setup
+
+
+set test "function should not pollute environment"
+# NOTE: A possible environment pollution is detected by assert_env_modified() in teardown()
+assert_bash_exec {foo() { local cur prev words cword; _init_completion; }; foo; unset foo} $test
+
+
+sync_after_int
+
+
+set test "|a"; # | = cursor position
+set cmd {COMP_WORDS=(a); COMP_CWORD=0; COMP_LINE='a'; COMP_POINT=0; _init_completion; echo "$cur $prev"}
+assert_bash_list {" "} $cmd $test
+
+
+sync_after_int
+
+
+teardown