diff options
Diffstat (limited to 'tests/cli-opts.sh')
-rwxr-xr-x[-rw-r--r--] | tests/cli-opts.sh | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/tests/cli-opts.sh b/tests/cli-opts.sh index e69de29..f1a89c3 100644..100755 --- a/tests/cli-opts.sh +++ b/tests/cli-opts.sh @@ -0,0 +1,108 @@ +#!/bin/sh +set -u + +. aux/tests-lib.sh + +export PATH="$PWD/tests:$PATH" + +test_help_flags() { + testing 'help flags' + + OUT="$(mktemp)" + ERR="$(mktemp)" + ./git-permalink -h 1>"$OUT" 2>"$ERR" + STATUS=$? + assert_status 0 + assert_empty_stderr + assert_fgrep_stdout 'Usage' + assert_fgrep_stdout 'Options' + + OUT="$(mktemp)" + ERR="$(mktemp)" + ./git-permalink --help 1>"$OUT" 2>"$ERR" + STATUS=$? + assert_status 0 + assert_empty_stderr + assert_usage "$OUT" + assert_fgrep_stdout 'Usage' + assert_fgrep_stdout 'Options' + + OUT="$(mktemp)" + ERR="$(mktemp)" + ./git-permalink --something somethign -h 1>"$OUT" 2>"$ERR" + STATUS=$? + assert_status 0 + assert_empty_stderr + assert_usage "$OUT" + assert_fgrep_stdout 'Usage' + assert_fgrep_stdout 'Options' + + OUT="$(mktemp)" + ERR="$(mktemp)" + ./git-permalink --help more things 1>"$OUT" 2>"$ERR" + STATUS=$? + assert_status 0 + assert_empty_stderr + assert_usage "$OUT" + assert_fgrep_stdout 'Usage' + assert_fgrep_stdout 'Options' + + test_ok +} + +test_version_flags() { + testing 'version flags' + REGEX='^git-permalink-[0-9\.]+ [0-9-]+$' + + OUT="$(mktemp)" + ERR="$(mktemp)" + ./git-permalink -V 1>"$OUT" 2>"$ERR" + STATUS=$? + assert_status 0 + assert_empty_stderr + assert_grep_stdout "$REGEX" + + OUT="$(mktemp)" + ERR="$(mktemp)" + ./git-permalink --version 1>"$OUT" 2>"$ERR" + STATUS=$? + assert_status 0 + assert_empty_stderr + assert_grep_stdout "$REGEX" + + OUT="$(mktemp)" + ERR="$(mktemp)" + ./git-permalink --abc xyz -V 1>"$OUT" 2>"$ERR" + STATUS=$? + assert_status 0 + assert_empty_stderr + assert_grep_stdout "$REGEX" + + OUT="$(mktemp)" + ERR="$(mktemp)" + ./git-permalink --version things again 1>"$OUT" 2>"$ERR" + STATUS=$? + assert_status 0 + assert_empty_stderr + assert_grep_stdout "$REGEX" + + test_ok +} + +test_unsupported_flags_are_treated_as_arguments() { + testing 'usupported flags are treated as arguments' + OUT="$(mktemp)" + ERR="$(mktemp)" + ./git-permalink --first-flag --second-flag 1>"$OUT" 2>"$ERR" + STATUS=$? + assert_status 0 + assert_fgrep_stdout "--first-flag" + assert_fgrep_stderr "--first-flag" + assert_fgrep_stdout "--second-flag" + assert_fgrep_stderr "--second-flag" + test_ok +} + +test_help_flags +test_version_flags +test_unsupported_flags_are_treated_as_arguments |