summaryrefslogtreecommitdiff
path: root/test/irb
diff options
context:
space:
mode:
authoraycabta <aycabta@gmail.com>2020-04-27 18:27:19 +0900
committeraycabta <aycabta@gmail.com>2020-04-29 19:13:14 +0900
commit98a346d065cc981d60ec0e45f7f15ba7328b6ad6 (patch)
treeb10b875abbee61fc6b31adad5445b769f56a3041 /test/irb
parent009092b04cf1fc36feb2e9257d131ec57242984f (diff)
[ruby/irb] Add irb_info command
https://github.com/ruby/irb/commit/a6fe58e916
Diffstat (limited to 'test/irb')
-rw-r--r--test/irb/test_cmd.rb64
1 files changed, 64 insertions, 0 deletions
diff --git a/test/irb/test_cmd.rb b/test/irb/test_cmd.rb
new file mode 100644
index 0000000000..1f385512a6
--- /dev/null
+++ b/test/irb/test_cmd.rb
@@ -0,0 +1,64 @@
+# frozen_string_literal: false
+require "test/unit"
+require "irb"
+require "irb/extend-command"
+
+module TestIRB
+ class ExtendCommand < Test::Unit::TestCase
+ def setup
+ @pwd = Dir.pwd
+ @tmpdir = File.join(Dir.tmpdir, "test_reline_config_#{$$}")
+ begin
+ Dir.mkdir(@tmpdir)
+ rescue Errno::EEXIST
+ FileUtils.rm_rf(@tmpdir)
+ Dir.mkdir(@tmpdir)
+ end
+ Dir.chdir(@tmpdir)
+ @home_backup = ENV["HOME"]
+ ENV["HOME"] = @tmpdir
+ end
+
+ def teardown
+ ENV["HOME"] = @home_backup
+ Dir.chdir(@pwd)
+ FileUtils.rm_rf(@tmpdir)
+ end
+
+ def test_irb_info_multiline
+ FileUtils.touch("#{@tmpdir}/.inputrc")
+ FileUtils.touch("#{@tmpdir}/.irbrc")
+ IRB.setup(__FILE__, argv: [])
+ IRB.conf[:USE_MULTILINE] = true
+ IRB.conf[:USE_SINGLELINE] = false
+ workspace = IRB::WorkSpace.new(self)
+ irb = IRB::Irb.new(workspace)
+ IRB.conf[:MAIN_CONTEXT] = irb.context
+ expected = %r{
+ Ruby\sversion: .+\n
+ IRB\sversion:\sirb .+\n
+ InputMethod:\sReidlineInputMethod\swith\sReline .+ and .+\n
+ \.irbrc\spath: .+
+ }x
+ assert_match expected, irb.context.main.irb_info.to_s
+ end
+
+ def test_irb_info_singleline
+ FileUtils.touch("#{@tmpdir}/.inputrc")
+ FileUtils.touch("#{@tmpdir}/.irbrc")
+ IRB.setup(__FILE__, argv: [])
+ IRB.conf[:USE_MULTILINE] = false
+ IRB.conf[:USE_SINGLELINE] = true
+ workspace = IRB::WorkSpace.new(self)
+ irb = IRB::Irb.new(workspace)
+ IRB.conf[:MAIN_CONTEXT] = irb.context
+ expected = %r{
+ Ruby\sversion: .+\n
+ IRB\sversion:\sirb .+\n
+ InputMethod:\sReadlineInputMethod\swith .+ and .+\n
+ \.irbrc\spath: .+
+ }x
+ assert_match expected, irb.context.main.irb_info.to_s
+ end
+ end
+end