68 lines
1.4 KiB
Text
68 lines
1.4 KiB
Text
|
# tmux copycat assertion helpers
|
|||
|
|
|||
|
# Asserts text that is crrently highlighted (in copy mode).
|
|||
|
proc assert_highlighted {text message} {
|
|||
|
set checker [ _generate_checker ]
|
|||
|
# Asserted text first has to be 'yanked' and displayed before `expect`.
|
|||
|
_display_highlighted_with_checker_text "$checker"
|
|||
|
expect {
|
|||
|
"$checker$text" { puts " Success: $message" }
|
|||
|
timeout { puts " Fail: $message"; exit_status_false }
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
proc irb_assert_highlighted {text message} {
|
|||
|
set checker [ _generate_checker ]
|
|||
|
_irb_display_highlighted_with_checker_text "$checker"
|
|||
|
expect {
|
|||
|
"$checker$text" { puts " Success: $message" }
|
|||
|
timeout { puts " Fail: $message"; exit_status_false }
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
proc assert_on_screen {text message} {
|
|||
|
expect {
|
|||
|
"$text" { puts " Success: $message" }
|
|||
|
timeout { puts " Fail: $message"; exit_status_false }
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
# private functions
|
|||
|
|
|||
|
proc _generate_checker {} {
|
|||
|
set random [ expr { rand()*10000 } ]
|
|||
|
set checker "Checker $random:"
|
|||
|
return $checker
|
|||
|
}
|
|||
|
|
|||
|
proc _display_highlighted_with_checker_text {checker} {
|
|||
|
_copy_mode_copy
|
|||
|
send ""
|
|||
|
sleep 0.1
|
|||
|
send "echo $checker"
|
|||
|
sleep 0.1
|
|||
|
_tmux_paste
|
|||
|
send "\r"
|
|||
|
}
|
|||
|
|
|||
|
proc _irb_display_highlighted_with_checker_text {checker} {
|
|||
|
_copy_mode_copy
|
|||
|
send "\r"
|
|||
|
sleep 0.1
|
|||
|
send "puts '$checker"
|
|||
|
sleep 0.1
|
|||
|
_tmux_paste
|
|||
|
send "'"
|
|||
|
send "\r"
|
|||
|
}
|
|||
|
|
|||
|
proc _copy_mode_copy {} {
|
|||
|
send "y"
|
|||
|
sleep 0.2
|
|||
|
}
|
|||
|
|
|||
|
proc _tmux_paste {} {
|
|||
|
send "]"
|
|||
|
sleep 0.1
|
|||
|
}
|