aboutsummaryrefslogtreecommitdiff
path: root/plugins/tpm/tests/test_plugin_clean.sh
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/tpm/tests/test_plugin_clean.sh')
-rwxr-xr-xplugins/tpm/tests/test_plugin_clean.sh67
1 files changed, 67 insertions, 0 deletions
diff --git a/plugins/tpm/tests/test_plugin_clean.sh b/plugins/tpm/tests/test_plugin_clean.sh
new file mode 100755
index 0000000..d36c468
--- /dev/null
+++ b/plugins/tpm/tests/test_plugin_clean.sh
@@ -0,0 +1,67 @@
+#!/usr/bin/env bash
+
+CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+TPM_DIR="$PWD"
+PLUGINS_DIR="$HOME/.tmux/plugins"
+
+source "$CURRENT_DIR/helpers/helpers.sh"
+source "$CURRENT_DIR/helpers/tpm.sh"
+
+manually_install_the_plugin() {
+ rm -rf "$PLUGINS_DIR"
+ mkdir -p "$PLUGINS_DIR"
+ cd "$PLUGINS_DIR"
+ git clone --quiet https://github.com/tmux-plugins/tmux-example-plugin
+}
+
+# TMUX KEY-BINDING TESTS
+
+test_plugin_uninstallation_via_tmux_key_binding() {
+ set_tmux_conf_helper <<- HERE
+ set -g mode-keys vi
+ run-shell "$TPM_DIR/tpm"
+ HERE
+
+ manually_install_the_plugin
+
+ "$CURRENT_DIR/expect_successful_clean_plugins" ||
+ fail_helper "[key-binding] clean fails"
+
+ teardown_helper
+}
+
+# SCRIPT TESTS
+
+test_plugin_uninstallation_via_script() {
+ set_tmux_conf_helper <<- HERE
+ set -g mode-keys vi
+ run-shell "$TPM_DIR/tpm"
+ HERE
+
+ manually_install_the_plugin
+
+ script_run_helper "$TPM_DIR/bin/clean_plugins" '"tmux-example-plugin" clean success' ||
+ fail_helper "[script] plugin cleaning fails"
+
+ teardown_helper
+}
+
+test_unsuccessful_plugin_uninstallation_via_script() {
+ set_tmux_conf_helper <<- HERE
+ set -g mode-keys vi
+ run-shell "$TPM_DIR/tpm"
+ HERE
+
+ manually_install_the_plugin
+ chmod 000 "$PLUGINS_DIR/tmux-example-plugin" # disable directory deletion
+
+ local expected_exit_code=1
+ script_run_helper "$TPM_DIR/bin/clean_plugins" '"tmux-example-plugin" clean fail' "$expected_exit_code" ||
+ fail_helper "[script] unsuccessful plugin cleaning doesn't fail"
+
+ chmod 755 "$PLUGINS_DIR/tmux-example-plugin" # enable directory deletion
+
+ teardown_helper
+}
+
+run_tests