dotfiles/dot_tmux/plugins/tmux-copycat/test/executable_test_file_search.exp
2023-11-13 13:48:17 +01:00

146 lines
3.6 KiB
Text
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env expect
source "./test/helpers/setup.exp"
# searches at the top of the pane
#--------------------------------
display_text "/top/of_the/pane/file.txt"
sleep 0.5
tmux_ctrl_f
assert_highlighted "/top/of_the/pane/file.txt" "top of the pane absolute path"
new_tmux_pane
display_text "another/top/of_the/pane/file.txt"
tmux_ctrl_f
assert_highlighted "another/top/of_the/pane/file.txt" "top of the pane relative path"
# middle of pane searches
#------------------------
new_tmux_pane
create_output
clear_screen
display_text "/this/is/some/file.txt"
tmux_ctrl_f
assert_highlighted "/this/is/some/file.txt" "middle of the pane, absolute path, beginning of the line"
display_text "random /this/is/some/file.txt"
tmux_ctrl_f
assert_highlighted " /this/is/some/file.txt" "middle of the pane, absolute path, not beginning of the line"
display_text "another/file.txt"
tmux_ctrl_f
assert_highlighted "another/file.txt" "middle of the pane, relative path, beginning of the line"
display_text "some text another/file.txt"
tmux_ctrl_f
assert_highlighted " another/file.txt" "middle of the pane, relative path, not beginning of the line"
create_output
sleep 0.2
send " some/file.xyz "
sleep 0.2
tmux_ctrl_f
assert_highlighted " some/file.xyz" "middle of the pane relative path, pane bottom"
# match selection when line contains escaped chars
#-------------------------------------------------
new_tmux_pane
display_text "filename=test.csv\r\nContent-Type: text/csv\r\n"
tmux_ctrl_f
assert_highlighted " text/csv" "match selection when line contains escaped chars"
# result navigation
#------------------
new_tmux_pane
display_text "/file/1.txt"
display_text "/file/2.txt"
display_text "/file/3.txt"
tmux_ctrl_f
# /file/3.txt
next_match
# /file/3.txt
next_match
# /file/2.txt
next_match
# /file/2.txt
next_match
# /file/1.txt
previous_match
# /file/2.txt
assert_highlighted " /file/2.txt" "result navigation at the top of the pane"
create_output
display_text "/file/1.txt"
display_text "/file/2.txt"
tmux_ctrl_f
# /file/2.txt
next_match
# /file/2.txt
next_match
# /file/1.txt
previous_match
# /file/2.txt
assert_highlighted " /file/2.txt" "result navigation, middle of the pane"
# 2 matches on the same line
#---------------------------
new_tmux_pane
display_text "/file/1.txt another/file/2.txt"
tmux_ctrl_f
assert_highlighted "/file/1.txt" "2 matches on the same line, first match"
display_text "/file/1.txt another/file/2.txt"
tmux_ctrl_f
next_match
assert_highlighted " another/file/2.txt" "2 matches on the same line, second match"
# no match, first and last match
#-------------------------------
new_tmux_pane
tmux_ctrl_f
assert_on_screen "No results!" "No results is displayed when no results"
display_text "last/match/file.txt"
tmux_ctrl_f
next_match
next_match
assert_on_screen "Last match!" "'Last match' is displayed when last match"
# exit copycat mode
send ""
new_tmux_pane
display_text "first/match/file.txt"
tmux_ctrl_f
next_match
previous_match
previous_match
assert_on_screen "First match!" "'First match' is displayed when first match"
# exit copycat mode
send ""
# irb console searches
#---------------------
new_tmux_pane
enter_irb
irb_display_text "file/within/irb.rb"
tmux_ctrl_f
irb_assert_highlighted "file/within/irb.rb" "irb console relative path, beggining of line"
exit_irb
enter_irb
irb_display_text "some text file/within/irb.rb"
tmux_ctrl_f
irb_assert_highlighted " file/within/irb.rb" "irb console relative path, not beggining of line"
exit_irb
enter_irb
irb_generate_output
send "puts /absolute/file/irb.rb"
sleep 5
tmux_ctrl_f
irb_assert_highlighted " /absolute/file/irb.rb" "irb console absolute path, pane bottom, not beggining of line"
exit_irb
# quit
#-----
teardown_and_exit