aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rwxr-xr-xtests/cli-opts.sh58
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/cli-opts.sh b/tests/cli-opts.sh
index 83b3587..71ce548 100755
--- a/tests/cli-opts.sh
+++ b/tests/cli-opts.sh
@@ -131,6 +131,63 @@ test_version_flags() {
test_ok
}
+test_environment_variables_and_precedence() {
+ testing 'environment variables and precedence'
+
+ OUT="$(mktemp)"
+ ERR="$(mktemp)"
+ PROFILE='environment-variables-xdg'
+ XDG="$PWD/tests/test-profiles/xdg-test-$(uuid)"
+ printf 'a\n' | \
+ XDG_DATA_HOME="$XDG" ./remembering \
+ -p "$PROFILE" \
+ -c 'head -n1' \
+ 1>"$OUT" 2>"$ERR"
+ STATUS=$?
+ assert_status 0
+ assert_empty_stderr
+ assert_stdout 'a'
+ assert_stream "\$XDG PROFILE" "$XDG/$PROFILE" '1:a'
+
+ OUT="$(mktemp)"
+ ERR="$(mktemp)"
+ PROFILE='environment-variables-home'
+ HHOME="$PWD/tests/test-profiles/home-test-$(uuid)"
+ printf 'b\n' | \
+ HOME="$HHOME" XDG_DATA_HOME= ./remembering \
+ -p "$PROFILE" \
+ -c 'head -n1' \
+ 1>"$OUT" 2>"$ERR"
+ STATUS=$?
+ assert_status 0
+ assert_empty_stderr
+ assert_stdout 'b'
+ assert_stream "\$HHOME PROFILE" "$HHOME/.local/share/remembering/$PROFILE" '1:b'
+
+ OUT="$(mktemp)"
+ ERR="$(mktemp)"
+ PROFILE='xdg-supersedes-home'
+ HHOME="$PWD/tests/test-profiles/home-wins-over-xdg-test-$(uuid)"
+ XDG="$PWD/tests/test-profiles/xdg-wins-over-home-test-$(uuid)"
+ printf 'c\n' | \
+ HOME="$HHOME" XDG_DATA_HOME="$XDG" ./remembering \
+ -p "$PROFILE" \
+ -c 'head -n1' \
+ 1>"$OUT" 2>"$ERR"
+ STATUS=$?
+ assert_status 0
+ assert_empty_stderr
+ assert_stdout 'c'
+ assert_stream "\$XDG and \$HOME PROFILE" "$XDG/$PROFILE" '1:c'
+
+ if [ -e "$HHOME/.local/share/remembering/$PROFILE" ]; then
+ printf "\nERR: The file in \$HHOME/.local should't exist\n" >&2
+ exit 1
+ fi
+
+ test_ok
+}
+
test_unsupported_long_flags
test_missing_required_flags
test_missing_required_flags
@@ -139,3 +196,4 @@ test_flags_without_required_argument
test_valid_options
test_help_flags
test_version_flags
+test_environment_variables_and_precedence