From 5d999a92d6e86fd18c9bcd459e4ebf4fb356bfd5 Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Sun, 7 Mar 2021 00:06:44 -0300 Subject: Add tests for $XDG_DATA_HOME and $HOME environment variables --- tests/cli-opts.sh | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) (limited to 'tests') 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 -- cgit v1.2.3