diff options
author | st0012 <stan001212@gmail.com> | 2022-10-18 11:24:04 +0100 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2022-10-24 13:36:56 +0000 |
commit | d377cc4530c1edeb4281a6a5a7ee2a4d13b1b561 (patch) | |
tree | 22f67eb03be857d7dea6ec4577ecf8dea1373854 /test | |
parent | 6cca8a0ceb7936d110aca600225ede87864df4e7 (diff) |
[ruby/irb] Add tests for RelineInputMethod
Diffstat (limited to 'test')
-rw-r--r-- | test/irb/test_input_method.rb | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/test/irb/test_input_method.rb b/test/irb/test_input_method.rb new file mode 100644 index 0000000000..5b2d35aeab --- /dev/null +++ b/test/irb/test_input_method.rb @@ -0,0 +1,58 @@ +# frozen_string_literal: false + +require "test/unit" +require "irb" + +module TestIRB + class TestRelineInputMethod < Test::Unit::TestCase + def setup + @conf_backup = IRB.conf.dup + IRB.conf[:LC_MESSAGES] = IRB::Locale.new + end + + def teardown + IRB.conf.replace(@conf_backup) + end + + def test_initialization + IRB::RelineInputMethod.new + + assert_nil Reline.completion_append_character + assert_equal '', Reline.completer_quote_characters + assert_equal IRB::InputCompletor::BASIC_WORD_BREAK_CHARACTERS, Reline.basic_word_break_characters + assert_equal IRB::InputCompletor::CompletionProc, Reline.completion_proc + assert_equal IRB::InputCompletor::PerfectMatchedProc, Reline.dig_perfect_match_proc + end + + def test_initialization_without_use_autocomplete + original_show_doc_proc = Reline.dialog_proc(:show_doc)&.dialog_proc + empty_proc = Proc.new {} + Reline.add_dialog_proc(:show_doc, empty_proc) + + IRB.conf[:USE_AUTOCOMPLETE] = false + + IRB::RelineInputMethod.new + + refute Reline.autocompletion + assert_equal empty_proc, Reline.dialog_proc(:show_doc).dialog_proc + ensure + Reline.add_dialog_proc(:show_doc, original_show_doc_proc, Reline::DEFAULT_DIALOG_CONTEXT) + end + + def test_initialization_with_use_autocomplete + original_show_doc_proc = Reline.dialog_proc(:show_doc)&.dialog_proc + empty_proc = Proc.new {} + Reline.add_dialog_proc(:show_doc, empty_proc) + + IRB.conf[:USE_AUTOCOMPLETE] = true + + IRB::RelineInputMethod.new + + assert Reline.autocompletion + assert_equal IRB::RelineInputMethod::SHOW_DOC_DIALOG, Reline.dialog_proc(:show_doc).dialog_proc + ensure + Reline.add_dialog_proc(:show_doc, original_show_doc_proc, Reline::DEFAULT_DIALOG_CONTEXT) + end + end +end + |