summaryrefslogtreecommitdiff
path: root/test/unit/_tilde.exp
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/_tilde.exp')
-rw-r--r--test/unit/_tilde.exp51
1 files changed, 51 insertions, 0 deletions
diff --git a/test/unit/_tilde.exp b/test/unit/_tilde.exp
new file mode 100644
index 00000000..2e22b848
--- /dev/null
+++ b/test/unit/_tilde.exp
@@ -0,0 +1,51 @@
+# @param string $part Reference to variable to hold partial unique username
+# @param string $full Reference to variable to hold full unique username
+proc setup {part full} {
+ upvar $part _part
+ upvar $full _full
+
+ assert_bash_exec {compgen -u} {} /@ users
+ find_unique_completion_pair $users _part _full
+ save_env
+}
+
+
+proc teardown {} {
+ assert_env_unmodified {
+ /COMPREPLY=/d
+ }
+}
+
+
+setup part full
+
+
+set test "function should run without errors"
+assert_bash_exec {_tilde > /dev/null} $test
+
+
+sync_after_int
+
+
+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 aa="~"; _tilde "$aa"; }; foo; unset foo} $test
+
+
+sync_after_int
+
+
+set test "~full should complete to ~full unmodified"
+set cmd [format {_tilde "~%s"; printf "%%s\n" "${COMPREPLY[@]}"} $full]
+assert_bash_list "~$full" $cmd $test
+
+
+sync_after_int
+
+
+set test "~part should complete to ~full"
+set cmd [format {_tilde "~%s"; printf "%%s\n" "${COMPREPLY[@]}"} $part]
+assert_bash_list "~$full" $cmd $test
+
+
+teardown