#!/usr/bin/env bash # Setup #tmux() { # # Forward the "getter" calls to actual tmux, but change the setters to just # # echo, so we can test what its setting. # if [[ "$1" == "show-option" ]] ; then # tmux-2.2/tmux "$@" # else # echo "$@" # fi #} tmux() { tmux-2.2/tmux "$@" } export -f tmux # ------ Unit Tests ----------------------- testBasicBindKeysAreCalled() { bash scroll_copy_mode.tmux assertNotNull "`tmux list-keys -T root | grep 'WheelUpPane'`" assertNotNull "`tmux list-keys -T root | grep 'WheelDownPane'`" } checkScrollSpeedSetCorrectly() { testSpeed="$1" expectedValue="$2" tmux set -g @scroll-speed-num-lines-per-scroll $testSpeed bash scroll_copy_mode.tmux # Make sure send-keys shows up correct number of times in up and down scroll bindings. assertEquals 'number of `send-keys` per scroll up not equal to user setting' $expectedValue `tmux list-keys -T root | grep 'WheelUpPane' | grep -o "'send-keys[^']*'" | head -n 1 | grep -o 'send-keys' | wc -l` assertEquals 'number of `send-keys` per scroll down not equal to user setting' $expectedValue `tmux list-keys -T root | grep 'WheelDownPane' | grep -o "'send-keys[^']*'" | head -n 1 | grep -o 'send-keys' | wc -l` } testValidIntegerScrollSpeeds() { checkScrollSpeedSetCorrectly 1 1 checkScrollSpeedSetCorrectly 2 2 checkScrollSpeedSetCorrectly 10 10 checkScrollSpeedSetCorrectly 0 0 checkScrollSpeedSetCorrectly 2.5 2 } testInvalidIntegerScrollSpeeds() { checkScrollSpeedSetCorrectly "-1" 0 checkScrollSpeedSetCorrectly "-10" 0 checkScrollSpeedSetCorrectly "-0.1" 0 } checkFractionalScrollSpeedSetCorrectly() { testSpeed="$1" expectedNumScrollsBeforeScroll="$2" tmux set -g @scroll-speed-num-lines-per-scroll $testSpeed bash scroll_copy_mode.tmux assertNotNull "`tmux list-keys -T root | grep 'WheelUpPane' | grep \"only_scroll_sometimes.sh $expectedNumScrollsBeforeScroll\"`" assertNotNull "`tmux list-keys -T root | grep 'WheelDownPane' | grep \"only_scroll_sometimes.sh $expectedNumScrollsBeforeScroll\"`" assertNotNull "`tmux show-environment __scroll_copy_mode__slow_scroll_count`" } testValidFractionalScrollSpeeds() { checkFractionalScrollSpeedSetCorrectly 0.5 2 checkFractionalScrollSpeedSetCorrectly 0.25 4 checkFractionalScrollSpeedSetCorrectly 0.33 3 } # --------- Run tests command ------------- . shunit2-2.1.6/src/shunit2