summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authortomoya ishida <tomoyapenguin@gmail.com>2024-11-15 08:14:14 +0900
committergit <svn-admin@ruby-lang.org>2024-11-14 23:14:18 +0000
commit8f3a6ebcf4cc585c60687f3d9941bf9bcd7eb9b6 (patch)
tree8b6aa1f259871cba785c544cada920fe51e83aad /test
parent4074c6b427ff53fc9e3dbffcd2792e5dd8b3a7ef (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.rb112
-rw-r--r--test/reline/test_terminfo.rb61
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?