summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/irb/test_context.rb44
1 files changed, 44 insertions, 0 deletions
diff --git a/test/irb/test_context.rb b/test/irb/test_context.rb
new file mode 100644
index 0000000000..35141a41a4
--- /dev/null
+++ b/test/irb/test_context.rb
@@ -0,0 +1,44 @@
+# frozen_string_literal: false
+require 'test/unit'
+require 'tempfile'
+require 'irb'
+require 'rubygems' if defined?(Gem)
+
+module TestIRB
+ class TestContext < Test::Unit::TestCase
+ class TestInputMethod < ::IRB::InputMethod
+ attr_reader :line, :line_no
+
+ def initialize(list = [])
+ super("test")
+ @line_no = 0
+ @line = list
+ end
+
+ def gets
+ @list[@line_no.tap {@line_no += 1}]
+ end
+
+ def eof?
+ @line_no >= @list.size
+ end
+ end
+
+ def setup
+ IRB.init_config(nil)
+ IRB.conf[:USE_READLINE] = false
+ IRB.conf[:VERBOSE] = false
+ workspace = IRB::WorkSpace.new(Object.new)
+ @context = IRB::Context.new(nil, workspace, TestInputMethod.new)
+ end
+
+ def test_last_value
+ assert_nil(@context.last_value)
+ assert_nil(@context.evaluate('_', 1))
+ obj = Object.new
+ @context.set_last_value(obj)
+ assert_same(obj, @context.last_value)
+ assert_same(obj, @context.evaluate('_', 1))
+ end
+ end
+end