summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorst0012 <stan001212@gmail.com>2022-10-21 21:36:13 +0100
committergit <svn-admin@ruby-lang.org>2022-10-24 13:36:58 +0000
commit5a86155249d0cba9135327bce8f5d3f6f69721d8 (patch)
tree120ee59ef82d917b77501ed27693b932f3f85019 /test
parentb7622d792dde7922692de6fcf43bd87cd7faa97b (diff)
[ruby/irb] Add a test case to cover rdoc unintalled scenario
Diffstat (limited to 'test')
-rw-r--r--test/irb/test_input_method.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/irb/test_input_method.rb b/test/irb/test_input_method.rb
index 5b2d35aeab..77f10774e9 100644
--- a/test/irb/test_input_method.rb
+++ b/test/irb/test_input_method.rb
@@ -53,6 +53,37 @@ module TestIRB
ensure
Reline.add_dialog_proc(:show_doc, original_show_doc_proc, Reline::DEFAULT_DIALOG_CONTEXT)
end
+
+ def test_initialization_with_use_autocomplete_but_without_rdoc
+ 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
+
+ without_rdoc do
+ IRB::RelineInputMethod.new
+ end
+
+ assert Reline.autocompletion
+ # doesn't register show_doc dialog
+ 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 without_rdoc(&block)
+ ::Kernel.send(:alias_method, :old_require, :require)
+
+ ::Kernel.define_method(:require) do |name|
+ raise LoadError, "cannot load such file -- rdoc (test)" if name == "rdoc"
+ original_require(name)
+ end
+
+ yield
+ ensure
+ ::Kernel.send(:alias_method, :require, :old_require)
+ end
end
end