#!/bin/sh
set -u
. aux/tests-lib.sh
export PATH="$PWD/tests:$PATH"
test_langs() {
testing 'langs'
OUT="$(mktemp)"
ERR="$(mktemp)"
LANG=POSIX sh src/git-permalink.sh -h 1>"$OUT" 2>"$ERR"
STATUS=$?
assert_status 0
assert_empty_stderr
assert_fgrep_stdout 'Usage'
assert_fgrep_stdout 'Options'
OUT="$(mktemp)"
ERR="$(mktemp)"
LANG=C sh src/git-permalink.sh -h 1>"$OUT" 2>"$ERR"
STATUS=$?
assert_status 0
assert_empty_stderr
assert_fgrep_stdout 'Usage'
assert_fgrep_stdout 'Options'
OUT="$(mktemp)"
ERR="$(mktemp)"
LANG=en_US.UTF-8 sh src/git-permalink.sh -h 1>"$OUT" 2>"$ERR"
STATUS=$?
assert_status 0
assert_empty_stderr
assert_fgrep_stdout 'Usage'
assert_fgrep_stdout 'Options'
OUT="$(mktemp)"
ERR="$(mktemp)"
LANG=en_AU.UTF-8 sh src/git-permalink.sh -h 1>"$OUT" 2>"$ERR"
STATUS=$?
assert_status 0
assert_empty_stderr
assert_fgrep_stdout 'Usage'
assert_fgrep_stdout 'Options'
OUT="$(mktemp)"
ERR="$(mktemp)"
LANG=pt_BR.UTF-8 sh src/git-permalink.sh -h 1>"$OUT" 2>"$ERR"
STATUS=$?
assert_status 0
assert_empty_stderr
assert_fgrep_stdout 'Uso'
assert_fgrep_stdout 'Opções'
OUT="$(mktemp)"
ERR="$(mktemp)"
LANG=pt_PT.UTF-8 sh src/git-permalink.sh -h 1>"$OUT" 2>"$ERR"
STATUS=$?
assert_status 0
assert_empty_stderr
assert_fgrep_stdout 'Uso'
assert_fgrep_stdout 'Opções'
test_ok
}
test_help_flags() {
testing 'help flags'
OUT="$(mktemp)"
ERR="$(mktemp)"
LANG=en_US.UTF-8 sh src/git-permalink.sh -h 1>"$OUT" 2>"$ERR"
STATUS=$?
assert_status 0
assert_empty_stderr
assert_fgrep_stdout 'Usage'
assert_fgrep_stdout 'Options'
OUT="$(mktemp)"
ERR="$(mktemp)"
LANG=en_US.UTF-8 sh src/git-permalink.sh --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)"
LANG=en_US.UTF-8 sh src/git-permalink.sh --something something -h 1>"$OUT" 2>"$ERR"
STATUS=$?
assert_status 0
assert_usage "$OUT"
assert_fgrep_stdout 'Usage'
assert_fgrep_stdout 'Options'
OUT="$(mktemp)"
ERR="$(mktemp)"
LANG=en_US.UTF-8 sh src/git-permalink.sh --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)"
sh src/git-permalink.sh -V 1>"$OUT" 2>"$ERR"
STATUS=$?
assert_status 0
assert_empty_stderr
assert_grep_stdout "$REGEX"
OUT="$(mktemp)"
ERR="$(mktemp)"
sh src/git-permalink.sh --version 1>"$OUT" 2>"$ERR"
STATUS=$?
assert_status 0
assert_empty_stderr
assert_grep_stdout "$REGEX"
OUT="$(mktemp)"
ERR="$(mktemp)"
sh src/git-permalink.sh -V --abc xyz 1>"$OUT" 2>"$ERR"
STATUS=$?
assert_status 0
assert_grep_stdout "$REGEX"
OUT="$(mktemp)"
ERR="$(mktemp)"
sh src/git-permalink.sh --version things again 1>"$OUT" 2>"$ERR"
STATUS=$?
assert_status 0
assert_empty_stderr
assert_grep_stdout "$REGEX"
test_ok
}
test_langs
test_help_flags
test_version_flags