diff options
| author | tomoya ishida <tomoyapenguin@gmail.com> | 2024-11-15 08:14:14 +0900 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2024-11-14 23:14:18 +0000 |
| commit | 8f3a6ebcf4cc585c60687f3d9941bf9bcd7eb9b6 (patch) | |
| tree | 8b6aa1f259871cba785c544cada920fe51e83aad /test | |
| parent | 4074c6b427ff53fc9e3dbffcd2792e5dd8b3a7ef (diff) | |
[ruby/reline] Drop loading terminfo, remove fiddle dependency in
non-windows environment.
(https://github.com/ruby/reline/pull/769)
Reline works perfectly in most major terminal emulators without terminfo.
In minor/old terminal emulator, we used to get key bindings from terminfo, but I think it is not used so much.
https://github.com/ruby/reline/commit/3ceba3bff7
Diffstat (limited to 'test')
| -rw-r--r-- | test/reline/test_ansi.rb (renamed from test/reline/test_ansi_without_terminfo.rb) | 9 | ||||
| -rw-r--r-- | test/reline/test_ansi_with_terminfo.rb | 112 | ||||
| -rw-r--r-- | test/reline/test_terminfo.rb | 61 |
3 files changed, 4 insertions, 178 deletions
diff --git a/test/reline/test_ansi_without_terminfo.rb b/test/reline/test_ansi.rb index 62b1e7dec0..5e28e72b06 100644 --- a/test/reline/test_ansi_without_terminfo.rb +++ b/test/reline/test_ansi.rb @@ -1,11 +1,11 @@ require_relative 'helper' require 'reline' -class Reline::ANSI::WithoutTerminfoTest < Reline::TestCase +class Reline::ANSITest < Reline::TestCase def setup Reline.send(:test_mode, ansi: true) @config = Reline::Config.new - Reline.core.io_gate.set_default_key_bindings(@config, allow_terminfo: false) + Reline.core.io_gate.set_default_key_bindings(@config) end def teardown @@ -50,7 +50,7 @@ class Reline::ANSI::WithoutTerminfoTest < Reline::TestCase assert_key_binding("\eOD", :ed_prev_char) end - # Ctrl+arrow and Meta+arrow; always mapped regardless of terminfo enabled or not + # Ctrl+arrow and Meta+arrow def test_extended assert_key_binding("\e[1;5C", :em_next_word) # Ctrl+→ assert_key_binding("\e[1;5D", :ed_prev_word) # Ctrl+← @@ -60,12 +60,11 @@ class Reline::ANSI::WithoutTerminfoTest < Reline::TestCase assert_key_binding("\e\e[D", :ed_prev_word) # Meta+← end - # Shift-Tab; always mapped regardless of terminfo enabled or not def test_shift_tab assert_key_binding("\e[Z", :completion_journey_up, [:emacs, :vi_insert]) end - # A few emacs bindings that are always mapped regardless of terminfo enabled or not + # A few emacs bindings that are always mapped def test_more_emacs assert_key_binding("\e ", :em_set_mark, [:emacs]) assert_key_binding("\C-x\C-x", :em_exchange_mark, [:emacs]) diff --git a/test/reline/test_ansi_with_terminfo.rb b/test/reline/test_ansi_with_terminfo.rb deleted file mode 100644 index 3adda10716..0000000000 --- a/test/reline/test_ansi_with_terminfo.rb +++ /dev/null @@ -1,112 +0,0 @@ -require_relative 'helper' -require 'reline' - -class Reline::ANSI::WithTerminfoTest < Reline::TestCase - def setup - Reline.send(:test_mode, ansi: true) - @config = Reline::Config.new - Reline.core.io_gate.set_default_key_bindings(@config, allow_terminfo: true) - end - - def teardown - Reline.test_reset - end - - # Home key - def test_khome - assert_key_binding(Reline::Terminfo.tigetstr('khome'), :ed_move_to_beg) - rescue Reline::Terminfo::TerminfoError => e - omit e.message - end - - # End key - def test_kend - assert_key_binding(Reline::Terminfo.tigetstr('kend'), :ed_move_to_end) - rescue Reline::Terminfo::TerminfoError => e - omit e.message - end - - # Delete key - def test_kdch1 - assert_key_binding(Reline::Terminfo.tigetstr('kdch1'), :key_delete) - rescue Reline::Terminfo::TerminfoError => e - omit e.message - end - - # PgUp key - def test_kpp - assert_key_binding(Reline::Terminfo.tigetstr('kpp'), :ed_search_prev_history) - rescue Reline::Terminfo::TerminfoError => e - omit e.message - end - - # PgDn key - def test_knp - assert_key_binding(Reline::Terminfo.tigetstr('knp'), :ed_search_next_history) - rescue Reline::Terminfo::TerminfoError => e - omit e.message - end - - # Up arrow key - def test_kcuu1 - assert_key_binding(Reline::Terminfo.tigetstr('kcuu1'), :ed_prev_history) - rescue Reline::Terminfo::TerminfoError => e - omit e.message - end - - # Down arrow key - def test_kcud1 - assert_key_binding(Reline::Terminfo.tigetstr('kcud1'), :ed_next_history) - rescue Reline::Terminfo::TerminfoError => e - omit e.message - end - - # Right arrow key - def test_kcuf1 - assert_key_binding(Reline::Terminfo.tigetstr('kcuf1'), :ed_next_char) - rescue Reline::Terminfo::TerminfoError => e - omit e.message - end - - # Left arrow key - def test_kcub1 - assert_key_binding(Reline::Terminfo.tigetstr('kcub1'), :ed_prev_char) - rescue Reline::Terminfo::TerminfoError => e - omit e.message - end - - # Home and End; always mapped regardless of terminfo enabled or not - def test_home_end - assert_key_binding("\e[H", :ed_move_to_beg) - assert_key_binding("\e[F", :ed_move_to_end) - end - - # Arrow; always mapped regardless of terminfo enabled or not - def test_arrow - assert_key_binding("\e[A", :ed_prev_history) - assert_key_binding("\e[B", :ed_next_history) - assert_key_binding("\e[C", :ed_next_char) - assert_key_binding("\e[D", :ed_prev_char) - end - - # Ctrl+arrow and Meta+arrow; always mapped regardless of terminfo enabled or not - def test_extended - assert_key_binding("\e[1;5C", :em_next_word) # Ctrl+→ - assert_key_binding("\e[1;5D", :ed_prev_word) # Ctrl+← - assert_key_binding("\e[1;3C", :em_next_word) # Meta+→ - assert_key_binding("\e[1;3D", :ed_prev_word) # Meta+← - assert_key_binding("\e\e[C", :em_next_word) # Meta+→ - assert_key_binding("\e\e[D", :ed_prev_word) # Meta+← - end - - # Shift-Tab; always mapped regardless of terminfo enabled or not - def test_shift_tab - assert_key_binding("\e[Z", :completion_journey_up, [:emacs, :vi_insert]) - end - - # A few emacs bindings that are always mapped regardless of terminfo enabled or not - def test_more_emacs - assert_key_binding("\e ", :em_set_mark, [:emacs]) - assert_key_binding("\C-x\C-x", :em_exchange_mark, [:emacs]) - end -end if Reline::Terminfo.enabled? && Reline::Terminfo.term_supported? diff --git a/test/reline/test_terminfo.rb b/test/reline/test_terminfo.rb deleted file mode 100644 index 4e59c54838..0000000000 --- a/test/reline/test_terminfo.rb +++ /dev/null @@ -1,61 +0,0 @@ -require_relative 'helper' -require "reline" - -class Reline::Terminfo::Test < Reline::TestCase - def setup - Reline::Terminfo.setupterm(0, 2) - end - - def test_tigetstr - assert Reline::Terminfo.tigetstr('khome') - rescue Reline::Terminfo::TerminfoError => e - omit e.message - end - - def test_tigetstr_with_error - assert_raise(Reline::Terminfo::TerminfoError) { Reline::Terminfo.tigetstr('unknown') } - assert_raise(Reline::Terminfo::TerminfoError) { Reline::Terminfo.tigetstr(nil) } - end - - def test_tiparm - assert Reline::Terminfo.tigetstr('khome').tiparm - rescue Reline::Terminfo::TerminfoError => e - omit e.message - end - - def test_tigetstr_with_param - assert Reline::Terminfo.tigetstr('cuu').include?('%p1%d') - rescue Reline::Terminfo::TerminfoError => e - omit e.message - end - - def test_tiparm_with_param - assert Reline::Terminfo.tigetstr('cuu').tiparm(4649).include?('4649') - rescue Reline::Terminfo::TerminfoError => e - omit e.message - end - - def test_tigetflag - assert_instance_of Integer, Reline::Terminfo.tigetflag('xenl') - rescue Reline::Terminfo::TerminfoError => e - omit e.message - end - - def test_tigetflag_with_error - assert_raise(Reline::Terminfo::TerminfoError) { Reline::Terminfo.tigetflag('cuu') } - assert_raise(Reline::Terminfo::TerminfoError) { Reline::Terminfo.tigetflag('unknown') } - assert_raise(Reline::Terminfo::TerminfoError) { Reline::Terminfo.tigetflag(nil) } - end - - def test_tigetnum - assert_instance_of Integer, Reline::Terminfo.tigetnum('colors') - rescue Reline::Terminfo::TerminfoError => e - omit e.message - end - - def test_tigetnum_with_error - assert_raise(Reline::Terminfo::TerminfoError) { Reline::Terminfo.tigetnum('cuu') } - assert_raise(Reline::Terminfo::TerminfoError) { Reline::Terminfo.tigetnum('unknown') } - assert_raise(Reline::Terminfo::TerminfoError) { Reline::Terminfo.tigetnum(nil) } - end -end if Reline::Terminfo.enabled? && Reline::Terminfo.term_supported? |
