aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2021-03-07 00:06:44 -0300
committerEuAndreh <eu@euandre.org>2021-03-07 00:06:44 -0300
commit5d999a92d6e86fd18c9bcd459e4ebf4fb356bfd5 (patch)
treeac5bce1de290786d1f5f90d26a6bc666be96b7a3
parentci-build.sh: Also omit output of second rsync (diff)
downloadremembering-5d999a92d6e86fd18c9bcd459e4ebf4fb356bfd5.tar.gz
remembering-5d999a92d6e86fd18c9bcd459e4ebf4fb356bfd5.tar.xz
Add tests for $XDG_DATA_HOME and $HOME environment variables
-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