diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/irb/test_context.rb | 8 | ||||
| -rw-r--r-- | test/irb/test_irb.rb | 38 |
2 files changed, 23 insertions, 23 deletions
diff --git a/test/irb/test_context.rb b/test/irb/test_context.rb index 34bceea54f..af47bec9de 100644 --- a/test/irb/test_context.rb +++ b/test/irb/test_context.rb @@ -614,21 +614,21 @@ module TestIRB def test_prompt_main_escape main = Struct.new(:to_s).new("main\a\t\r\n") irb = IRB::Irb.new(IRB::WorkSpace.new(main), TestInputMethod.new) - assert_equal("irb(main )>", irb.prompt('irb(%m)>', nil, 1, 1)) + assert_equal("irb(main )>", irb.send(:format_prompt, 'irb(%m)>', nil, 1, 1)) end def test_prompt_main_inspect_escape main = Struct.new(:inspect).new("main\\n\nmain") irb = IRB::Irb.new(IRB::WorkSpace.new(main), TestInputMethod.new) - assert_equal("irb(main\\n main)>", irb.prompt('irb(%M)>', nil, 1, 1)) + assert_equal("irb(main\\n main)>", irb.send(:format_prompt, 'irb(%M)>', nil, 1, 1)) end def test_prompt_main_truncate main = Struct.new(:to_s).new("a" * 100) def main.inspect; to_s.inspect; end irb = IRB::Irb.new(IRB::WorkSpace.new(main), TestInputMethod.new) - assert_equal('irb(aaaaaaaaaaaaaaaaaaaaaaaaaaaaa...)>', irb.prompt('irb(%m)>', nil, 1, 1)) - assert_equal('irb("aaaaaaaaaaaaaaaaaaaaaaaaaaaa...)>', irb.prompt('irb(%M)>', nil, 1, 1)) + assert_equal('irb(aaaaaaaaaaaaaaaaaaaaaaaaaaaaa...)>', irb.send(:format_prompt, 'irb(%m)>', nil, 1, 1)) + assert_equal('irb("aaaaaaaaaaaaaaaaaaaaaaaaaaaa...)>', irb.send(:format_prompt, 'irb(%M)>', nil, 1, 1)) end def test_lineno diff --git a/test/irb/test_irb.rb b/test/irb/test_irb.rb index 4870f35f39..e89f2a1c70 100644 --- a/test/irb/test_irb.rb +++ b/test/irb/test_irb.rb @@ -75,7 +75,6 @@ module TestIRB def initialize(*params) @params = params - @calculated_indent end def auto_indent(&block) @@ -84,14 +83,14 @@ module TestIRB end class MockIO_DynamicPrompt + attr_reader :prompt_list + def initialize(params, &assertion) @params = params - @assertion = assertion end def dynamic_prompt(&block) - result = block.call(@params) - @assertion.call(result) + @prompt_list = block.call(@params) end end @@ -710,24 +709,25 @@ module TestIRB def assert_dynamic_prompt(input_with_prompt) expected_prompt_list, lines = input_with_prompt.transpose - dynamic_prompt_executed = false - io = MockIO_DynamicPrompt.new(lines) do |prompt_list| - error_message = <<~EOM - Expected dynamic prompt: - #{expected_prompt_list.join("\n")} - - Actual dynamic prompt: - #{prompt_list.join("\n")} - EOM - dynamic_prompt_executed = true - assert_equal(expected_prompt_list, prompt_list, error_message) - end - @irb.context.io = io - @irb.scanner.set_prompt do |ltype, indent, continue, line_no| + def @irb.generate_prompt(opens, continue, line_offset) + ltype = @scanner.ltype_from_open_tokens(opens) + indent = @scanner.calc_indent_level(opens) + continue = opens.any? || continue + line_no = @line_no + line_offset '%03d:%01d:%1s:%s ' % [line_no, indent, ltype, continue ? '*' : '>'] end + io = MockIO_DynamicPrompt.new(lines) + @irb.context.io = io @irb.configure_io - assert dynamic_prompt_executed, "dynamic_prompt's assertions were not executed." + + error_message = <<~EOM + Expected dynamic prompt: + #{expected_prompt_list.join("\n")} + + Actual dynamic prompt: + #{io.prompt_list.join("\n")} + EOM + assert_equal(expected_prompt_list, io.prompt_list, error_message) end end |
