module TestShell
Public Instance Methods
set_var(name, val)
click to toggle source
# File lib/helpers/fzf/test/test_go.rb, line 2157 def set_var(name, val) tmux.prepare tmux.send_keys "export #{name}='#{val}'", :Enter tmux.prepare end
setup()
click to toggle source
# File lib/helpers/fzf/test/test_go.rb, line 2148 def setup @tmux = Tmux.new(shell) tmux.prepare end
teardown()
click to toggle source
# File lib/helpers/fzf/test/test_go.rb, line 2153 def teardown @tmux.kill end
test_alt_c()
click to toggle source
# File lib/helpers/fzf/test/test_go.rb, line 2211 def test_alt_c tmux.prepare tmux.send_keys :Escape, :c lines = tmux.until { |lines| assert_operator lines.match_count, :>, 0 } expected = lines.reverse.find { |l| l.start_with?('> ') }[2..-1] tmux.send_keys :Enter tmux.prepare tmux.send_keys :pwd, :Enter tmux.until { |lines| assert lines[-1]&.end_with?(expected) } end
test_alt_c_command()
click to toggle source
# File lib/helpers/fzf/test/test_go.rb, line 2222 def test_alt_c_command set_var('FZF_ALT_C_COMMAND', 'echo /tmp') tmux.prepare tmux.send_keys 'cd /', :Enter tmux.prepare tmux.send_keys :Escape, :c tmux.until { |lines| assert_equal 1, lines.item_count } tmux.send_keys :Enter tmux.prepare tmux.send_keys :pwd, :Enter tmux.until { |lines| assert_equal '/tmp', lines[-1] } end
test_ctrl_r()
click to toggle source
# File lib/helpers/fzf/test/test_go.rb, line 2238 def test_ctrl_r tmux.prepare tmux.send_keys 'echo 1st', :Enter tmux.prepare tmux.send_keys 'echo 2nd', :Enter tmux.prepare tmux.send_keys 'echo 3d', :Enter tmux.prepare 3.times do tmux.send_keys 'echo 3rd', :Enter tmux.prepare end tmux.send_keys 'echo 4th', :Enter tmux.prepare tmux.send_keys 'C-r' tmux.until { |lines| assert_operator lines.match_count, :>, 0 } tmux.send_keys 'e3d' # Duplicates removed: 3d (1) + 3rd (1) => 2 matches tmux.until { |lines| assert_equal 2, lines.match_count } tmux.until { |lines| assert lines[-3]&.end_with?(' echo 3d') } tmux.send_keys 'C-r' tmux.until { |lines| assert lines[-3]&.end_with?(' echo 3rd') } tmux.send_keys :Enter tmux.until { |lines| assert_equal 'echo 3rd', lines[-1] } tmux.send_keys :Enter tmux.until { |lines| assert_equal '3rd', lines[-1] } end
test_ctrl_r_abort()
click to toggle source
# File lib/helpers/fzf/test/test_go.rb, line 2280 def test_ctrl_r_abort skip("doesn't restore the original line when search is aborted pre Bash 4") if shell == :bash && `#{Shell.bash} --version`[/(?<= version )\d+/].to_i < 4 %w[foo ' "].each do |query| tmux.prepare tmux.send_keys :Enter, query tmux.until { |lines| assert lines[-1]&.start_with?(query) } tmux.send_keys 'C-r' tmux.until { |lines| assert_equal "> #{query}", lines[-1] } tmux.send_keys 'C-g' tmux.until { |lines| assert lines[-1]&.start_with?(query) } end end
test_ctrl_r_multiline()
click to toggle source
# File lib/helpers/fzf/test/test_go.rb, line 2266 def test_ctrl_r_multiline tmux.send_keys 'echo "foo', :Enter, 'bar"', :Enter tmux.until { |lines| assert_equal %w[foo bar], lines[-2..-1] } tmux.prepare tmux.send_keys 'C-r' tmux.until { |lines| assert_equal '>', lines[-1] } tmux.send_keys 'foo bar' tmux.until { |lines| assert lines[-3]&.end_with?('bar"') } tmux.send_keys :Enter tmux.until { |lines| assert lines[-1]&.end_with?('bar"') } tmux.send_keys :Enter tmux.until { |lines| assert_equal %w[foo bar], lines[-2..-1] } end
test_ctrl_t()
click to toggle source
# File lib/helpers/fzf/test/test_go.rb, line 2169 def test_ctrl_t set_var('FZF_CTRL_T_COMMAND', 'seq 100') tmux.prepare tmux.send_keys 'C-t' tmux.until { |lines| assert_equal 100, lines.item_count } tmux.send_keys :Tab, :Tab, :Tab tmux.until { |lines| assert lines.any_include?(' (3)') } tmux.send_keys :Enter tmux.until { |lines| assert lines.any_include?('1 2 3') } tmux.send_keys 'C-c' end
test_ctrl_t_unicode()
click to toggle source
# File lib/helpers/fzf/test/test_go.rb, line 2182 def test_ctrl_t_unicode writelines(tempname, ['fzf-unicode 테스트1', 'fzf-unicode 테스트2']) set_var('FZF_CTRL_T_COMMAND', "cat #{tempname}") tmux.prepare tmux.send_keys 'echo ', 'C-t' tmux.until { |lines| assert_equal 2, lines.item_count } tmux.send_keys 'fzf-unicode' tmux.until { |lines| assert_equal 2, lines.match_count } tmux.send_keys '1' tmux.until { |lines| assert_equal 1, lines.match_count } tmux.send_keys :Tab tmux.until { |lines| assert_equal 1, lines.select_count } tmux.send_keys :BSpace tmux.until { |lines| assert_equal 2, lines.match_count } tmux.send_keys '2' tmux.until { |lines| assert_equal 1, lines.match_count } tmux.send_keys :Tab tmux.until { |lines| assert_equal 2, lines.select_count } tmux.send_keys :Enter tmux.until { |lines| assert_match(/echo .*fzf-unicode.*1.* .*fzf-unicode.*2/, lines.join) } tmux.send_keys :Enter tmux.until { |lines| assert_equal 'fzf-unicode 테스트1 fzf-unicode 테스트2', lines[-1] } end
unset_var(name)
click to toggle source
# File lib/helpers/fzf/test/test_go.rb, line 2163 def unset_var(name) tmux.prepare tmux.send_keys "unset #{name}", :Enter tmux.prepare end