Test resurrect save feature

pull/73/head
Bruno Sutic 2015-02-22 20:49:59 +01:00
parent ac86e025ad
commit 30366a3cb4
No known key found for this signature in database
GPG Key ID: 66D96E4F2F7EF26C
5 changed files with 159 additions and 0 deletions

19
tests/fixtures/save_file.txt vendored Normal file
View File

@ -0,0 +1,19 @@
pane blue 0 :vim 0 : 0 :/tmp 1 vim :vim foo.txt
pane blue 1 :man 0 :- 0 :/tmp 0 bash :
pane blue 1 :man 0 :- 1 :/usr/share/man 1 man :man echo
pane blue 2 :bash 1 :* 0 :/tmp 1 bash :
pane red 0 :bash 0 : 0 :/tmp 1 bash :
pane red 1 :bash 0 :- 0 :/tmp 0 bash :
pane red 1 :bash 0 :- 1 :/tmp 0 bash :
pane red 1 :bash 0 :- 2 :/tmp 1 bash :
pane red 2 :bash 1 :* 0 :/tmp 0 bash :
pane red 2 :bash 1 :* 1 :/tmp 1 bash :
pane yellow 0 :bash 1 :* 0 :/tmp/bar 1 bash :
window blue 0 0 : cea3,200x49,0,0,6
window blue 1 0 :- 1795,200x49,0,0{100x49,0,0,7,99x49,101,0,8}
window blue 2 1 :* cea6,200x49,0,0,9
window red 0 0 : ce9d,200x49,0,0,0
window red 1 0 :- 9296,200x49,0,0[200x24,0,0,1,200x24,0,25{100x24,0,25,2,99x24,101,25,3}]
window red 2 1 :* 3d66,200x49,0,0[200x24,0,0,4,200x24,0,25,5]
window yellow 0 1 :* 677f,200x49,0,0,10
state yellow blue

View File

@ -0,0 +1,42 @@
#!/usr/bin/env expect
source "./tests/helpers/expect_helpers.exp"
expect_setup
spawn tmux
# delay with sleep to compensate for tmux starting time
sleep 1
run_shell_command "cd /tmp"
# session red
rename_current_session "red"
new_tmux_window
horizontal_split
vertical_split
new_tmux_window
horizontal_split
# session blue
new_tmux_session "blue"
run_shell_command "touch foo.txt"
run_shell_command "vim foo.txt"
new_tmux_window
vertical_split
run_shell_command "man echo"
new_tmux_window
# session yellow
new_tmux_session "yellow"
run_shell_command "mkdir bar"
run_shell_command "cd bar"
start_resurrect_save
run_shell_command "tmux kill-server"

View File

@ -0,0 +1,55 @@
# a set of expect helpers
# basic setup for each script
proc expect_setup {} {
# disables script output
log_user 0
# standard timeout
set timeout 5
}
proc new_tmux_window {} {
send "c"
send "cd /tmp\r"
sleep 0.2
}
proc rename_current_session {name} {
send "$"
# delete existing name with ctrl-u
send ""
send "$name\r"
sleep 0.2
}
proc new_tmux_session {name} {
send "TMUX='' tmux new -d -s $name\r"
sleep 1
send "tmux switch-client -t $name\r"
send "cd /tmp\r"
sleep 0.5
}
proc horizontal_split {} {
send "\""
sleep 0.2
send "cd /tmp\r"
sleep 0.1
}
proc vertical_split {} {
send "%"
sleep 0.2
send "cd /tmp\r"
sleep 0.1
}
proc run_shell_command {command} {
send "$command\r"
sleep 1
}
proc start_resurrect_save {} {
send ""
sleep 5
}

View File

@ -0,0 +1,12 @@
install_tmux_resurrect_helper() {
rm -rf ~/.tmux/plugins/tmux-resurrect/
cd "$CURRENT_DIR"
git clone --recursive ../ ~/.tmux/plugins/tmux-resurrect/ >/dev/null 2>&1
cd - >/dev/null
}
# we want "fixed" dimensions no matter the size of real display
set_screen_dimensions() {
stty cols 200
stty rows 50
}

31
tests/test_resurrect_save.sh Executable file
View File

@ -0,0 +1,31 @@
#!/usr/bin/env bash
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source $CURRENT_DIR/helpers/helpers.sh
source $CURRENT_DIR/helpers/resurrect_helpers.sh
create_tmux_test_environment_and_save() {
set_tmux_conf_helper<<-HERE
run-shell '~/.tmux/plugins/tmux-resurrect/resurrect.tmux'
HERE
set_screen_dimensions
$CURRENT_DIR/helpers/create_and_save_tmux_test_environment.exp
}
last_save_file_incorrect() {
diff tests/fixtures/save_file.txt "${HOME}/.tmux/resurrect/last"
[ $? -ne 0 ]
}
main() {
install_tmux_resurrect_helper
create_tmux_test_environment_and_save
if last_save_file_incorrect; then
fail_helper "Saved file not correct"
exit_helper
fi
exit_helper
}
main