1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/reline/test_macro.rb
aycabta f8ea2860b0 Introduce an abstracted structure about the encoding of Reline
The command prompt on Windows always uses Unicode to take input and print
output but most Reline implementation depends on Encoding.default_external.
This commit introduces an abstracted structure about the encoding of Reline.
2020-01-14 15:40:38 +09:00

39 lines
960 B
Ruby

require_relative 'helper'
class Reline::MacroTest < Reline::TestCase
def setup
@config = Reline::Config.new
@encoding = (RELINE_TEST_ENCODING rescue Encoding.default_external)
@line_editor = Reline::LineEditor.new(@config, @encoding)
@line_editor.instance_variable_set(:@screen_size, [24, 80])
@output = @line_editor.output = File.open(IO::NULL, "w")
end
def teardown
@output.close
end
def input_key(char, combined_char = char, with_meta = false)
@line_editor.input_key(Reline::Key.new(char, combined_char, with_meta))
end
def input(str)
str.each_byte {|c| input_key(c)}
end
def test_simple_input
input('abc')
assert_equal 'abc', @line_editor.line
end
def test_alias
class << @line_editor
alias delete_char ed_delete_prev_char
end
input('abc')
assert_nothing_raised(ArgumentError) {
input_key(:delete_char)
}
assert_equal 'ab', @line_editor.line
end
end