#!/bin/sh set -u . aux/tests-lib.sh export PATH="$PWD/tests:$PATH" test_langs() { testing 'langs' OUT="$(mktemp)" ERR="$(mktemp)" LANG=POSIX sh 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)" LANG=C sh 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)" LANG=en_US.UTF-8 sh 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)" LANG=en_AU.UTF-8 sh 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)" LANG=pt_BR.UTF-8 sh git-permalink -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 git-permalink -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 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)" LANG=en_US.UTF-8 sh 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)" LANG=en_US.UTF-8 sh git-permalink --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 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)" sh git-permalink -V 1>"$OUT" 2>"$ERR" STATUS=$? assert_status 0 assert_empty_stderr assert_grep_stdout "$REGEX" OUT="$(mktemp)" ERR="$(mktemp)" sh git-permalink --version 1>"$OUT" 2>"$ERR" STATUS=$? assert_status 0 assert_empty_stderr assert_grep_stdout "$REGEX" OUT="$(mktemp)" ERR="$(mktemp)" sh git-permalink -V --abc xyz 1>"$OUT" 2>"$ERR" STATUS=$? assert_status 0 assert_grep_stdout "$REGEX" OUT="$(mktemp)" ERR="$(mktemp)" sh git-permalink --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