Files
tmux/regress/border-zoom-click.sh
Michael Grant d1a365b472 Add tests for zoomed and floating panes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 09:00:55 +01:00

52 lines
1.4 KiB
Bash

#!/bin/sh
# The zoom button on a pane's border must zoom the pane that was clicked, not
# the active pane.
PATH=/bin:/usr/bin
TERM=screen
[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux)
TMUX="$TEST_TMUX -LtestA$$ -f/dev/null"
TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null"
cleanup()
{
$TMUX kill-server >/dev/null 2>&1
$TMUX2 kill-server >/dev/null 2>&1
}
fail()
{
echo "$*" >&2
cleanup
exit 1
}
cleanup
$TMUX new-session -d -s inner -x 80 -y 24 'sleep 100' || exit 1
$TMUX set -g mouse on || exit 1
$TMUX set -g pane-border-status top || exit 1
$TMUX split-window -d -h 'sleep 100' || exit 1
active=$($TMUX display-message -p '#{pane_id}') || exit 1
other=$($TMUX list-panes -F '#{pane_id}' | grep -v "^$active\$") || exit 1
$TMUX2 new-session -d -x 80 -y 24 "$TMUX attach -t inner" || exit 1
sleep 1
OUTER=$($TMUX2 list-panes -F '#{pane_id}' | head -1)
[ -n "$OUTER" ] || fail "No outer pane."
# The right hand pane's border ends with the buttons [f][z][x]; the zoom one is
# the middle button, at column 76 (1-based) on the first row.
seq=$(printf '\033[<0;76;1M\033[<0;76;1m')
$TMUX2 send-keys -t "$OUTER" -l "$seq" || fail "send-keys failed."
sleep 1
got=$($TMUX display-message -p -t "$other" '#{pane_zoomed_flag}')
[ "$got" = "1" ] || fail "clicked pane zoomed flag '$got', expected '1'"
got=$($TMUX display-message -p -t "$active" '#{pane_zoomed_flag}')
[ "$got" = "0" ] || fail "active pane zoomed flag '$got', expected '0'"
cleanup
exit 0