diff options
Diffstat (limited to '')
-rwxr-xr-x | tests/cli-opts.sh | 58 |
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 |