Files
tmuxifier/test/test-helper.sh
2014-07-21 16:13:16 +01:00

88 lines
1.7 KiB
Bash

[ -n "$TEST_DEBUG" ] && set -x
resolve_link() {
$(type -p greadlink readlink | head -1) $1
}
abs_dirname() {
local cwd="$(pwd)"
local path="$1"
while [ -n "$path" ]; do
cd "${path%/*}"
local name="${path##*/}"
path="$(resolve_link "$name" || true)"
done
pwd
cd "$cwd"
}
# Find and store path to Tmux binary.
TMUX_BIN="$(command -v tmux)"
# Set testroot variable.
testroot="$(abs_dirname "$BASH_SOURCE")"
# Set root variable.
root="$(abs_dirname "$testroot/../..")"
# Set TMUXIFIER environment variable.
TMUXIFIER="$root"
# Setup PATH environment variable.
PATH="$root/bin:$root/libexec:$PATH"
# Unset TMUX environment variable, tests assume they're not running within
# Tmux.
unset TMUX
# Unset various Tmuxifier environment variables to prevent a local install of
# Tmuxifier interfering with tests.
unset TMUXIFIER_LAYOUT_PATH
unset TMUXIFIER_TMUX_OPTS
unset TMUXIFIER_NO_COMPLETE
# Include assert.sh and stub.sh libraries.
source "${testroot}/assert.sh"
source "${testroot}/stub.sh"
#
# Test Helpers
#
test-socket-tmux() {
export TMUXIFIER_TMUX_OPTS="-L tmuxifier-tests"
"$TMUX_BIN" $TMUXIFIER_TMUX_OPTS $@
}
create-test-session() {
session="$1"
if [ -z "$session" ]; then session="test"; fi
test-socket-tmux new-session -d -s "$session"
}
kill-test-session() {
local target="$1"
if [ -z "$target" ]; then target="$session"; fi
test-socket-tmux kill-session -t "$target"
}
kill-test-server() {
test-socket-tmux kill-server
unset TMUXIFIER_TMUX_OPTS
unset session
}
test-socket-window-count() {
local list="$(test-socket-tmux list-windows)"
if [ -n "$1" ]; then
echo "$list" | grep $1 | wc -l | awk '{print $1}'
else
echo "$list" | wc -l | awk '{print $1}'
fi
}