1#!/bin/sh 2 3# Author: Héctor Molinero Fernández <hector@molinero.dev> 4# License: MIT, https://opensource.org/licenses/MIT 5# Repository: https://github.com/hectorm/hblock 6 7set -eu 8export LC_ALL='C' 9 10SCRIPT_DIR="$(CDPATH='' cd -- "$(dirname -- "${0:?}")" && pwd -P)" 11 12# shellcheck disable=SC1091 13. "${SCRIPT_DIR:?}"/env.sh 14 15main() { 16 export HBLOCK_SOURCES="file://${SCRIPT_DIR:?}/test-domains-source.txt" 17 export HBLOCK_DENYLIST_FILE='' 18 19 printf 'Test - Main - Denylist: "-D" short option\n' 20 actual="$(runInTestShell "${SCRIPT_DIR:?}/../../hblock" -qO- -D "${SCRIPT_DIR:?}/denylist.txt")" 21 expected="$(cat -- "${0%.sh}".out)" 22 if ! assertEquals "${actual?}" "${expected?}"; then 23 exit 1 24 fi 25 26 printf 'Test - Main - Denylist: "--denylist" long option\n' 27 actual="$(runInTestShell "${SCRIPT_DIR:?}/../../hblock" -qO- --denylist="${SCRIPT_DIR:?}/denylist.txt")" 28 expected="$(cat -- "${0%.sh}".out)" 29 if ! assertEquals "${actual?}" "${expected?}"; then 30 exit 1 31 fi 32 33 printf 'Test - Main - Denylist: "--denylist" long option with "builtin" value\n' 34 actual="$(runInTestShell "${SCRIPT_DIR:?}/../../hblock" -qO- --denylist='builtin')" 35 expected="$(cat -- "${0%.sh}"-builtin.out)" 36 if ! assertEquals "${actual?}" "${expected?}"; then 37 exit 1 38 fi 39 40 printf 'Test - Main - Denylist: "--denylist" long option with "none" value\n' 41 actual="$(runInTestShell "${SCRIPT_DIR:?}/../../hblock" -qO- --denylist='none')" 42 expected="$(cat -- "${0%.sh}"-none.out)" 43 if ! assertEquals "${actual?}" "${expected?}"; then 44 exit 1 45 fi 46 47 printf 'Test - Main - Denylist: "--denylist" long option with "-" value\n' 48 actual="$(cat -- "${SCRIPT_DIR:?}/denylist.txt" | runInTestShell "${SCRIPT_DIR:?}/../../hblock" -qO- --denylist='-')" 49 expected="$(cat -- "${0%.sh}".out)" 50 if ! assertEquals "${actual?}" "${expected?}"; then 51 exit 1 52 fi 53 54 printf 'Test - Main - Denylist: "--denylist" long option with a non-existent file\n' 55 actual="$(runInTestShell "${SCRIPT_DIR:?}/../../hblock" -qO- --denylist='/hblock/invalid.txt')" 56 expected="$(cat -- "${0%.sh}"-invalid.out)" 57 if ! assertEquals "${actual?}" "${expected?}"; then 58 exit 1 59 fi 60 61 printf 'Test - Main - Denylist: "HBLOCK_DENYLIST_FILE" environment variable\n' 62 actual="$(set -a; HBLOCK_DENYLIST_FILE="${SCRIPT_DIR:?}/denylist.txt" runInTestShell "${SCRIPT_DIR:?}/../../hblock" -qO-)" 63 expected="$(cat -- "${0%.sh}".out)" 64 if ! assertEquals "${actual?}" "${expected?}"; then 65 exit 1 66 fi 67 68 printf 'Test - Main - Denylist: "HBLOCK_DENYLIST_FILE" environment variable with a non-existent file\n' 69 actual="$(set -a; HBLOCK_DENYLIST_FILE='/hblock/invalid.txt' runInTestShell "${SCRIPT_DIR:?}/../../hblock" -qO-)" 70 expected="$(cat -- "${0%.sh}"-invalid.out)" 71 if ! assertEquals "${actual?}" "${expected?}"; then 72 exit 1 73 fi 74 75 printf 'Test - Main - Denylist: "HBLOCK_DENYLIST" environment variable\n' 76 actual="$(set -a; HBLOCK_DENYLIST="$(cat -- "${SCRIPT_DIR:?}/denylist.txt")" runInTestShell "${SCRIPT_DIR:?}/../../hblock" -qO-)" 77 expected="$(cat -- "${0%.sh}".out)" 78 if ! assertEquals "${actual?}" "${expected?}"; then 79 exit 1 80 fi 81} 82 83main "${@-}" 84