From 50a7c011274359ef058d30be87b9d29ca4fd06ed Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Sat, 12 Jun 2021 17:36:05 -0300 Subject: Add initial version of tests/cli-opts.sh tests --- tests/cli-opts.sh | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xdg-open | 7 ++++ 2 files changed, 115 insertions(+) mode change 100644 => 100755 tests/cli-opts.sh create mode 100755 tests/xdg-open (limited to 'tests') diff --git a/tests/cli-opts.sh b/tests/cli-opts.sh old mode 100644 new mode 100755 index e69de29..f1a89c3 --- 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 diff --git a/tests/xdg-open b/tests/xdg-open new file mode 100755 index 0000000..871c537 --- /dev/null +++ b/tests/xdg-open @@ -0,0 +1,7 @@ +#!/bin/sh +set -eu + +# This is a noop executable, to test git-permalink without interating +# with xdg-open proper. + +echo "xdg-open: $@" -- cgit v1.2.3