diff options
author | aycabta <aycabta@gmail.com> | 2019-05-24 23:38:40 +0900 |
---|---|---|
committer | aycabta <aycabta@gmail.com> | 2019-05-24 23:38:40 +0900 |
commit | eb4e774711b17b8a25a7b16c4f0b6044da3dc261 (patch) | |
tree | d33f0bfb2087ee0169422d08b8553678fd189f75 /test/reline | |
parent | 2d34087a38ac680c5576a56fbf4104c3561b0204 (diff) |
Support Meta key in Reline
Diffstat (limited to 'test/reline')
-rw-r--r-- | test/reline/helper.rb | 8 | ||||
-rw-r--r-- | test/reline/test_key_stroke.rb | 46 |
2 files changed, 20 insertions, 34 deletions
diff --git a/test/reline/helper.rb b/test/reline/helper.rb index 227fc0689a..e6587b30f6 100644 --- a/test/reline/helper.rb +++ b/test/reline/helper.rb @@ -40,13 +40,13 @@ class Reline::TestCase < Test::Unit::TestCase eighth_bit = 0b10000000 byte = c.bytes.first if byte.allbits?(eighth_bit) - @line_editor.input_key("\e".ord) - byte ^= eighth_bit + @line_editor.input_key(Reline::Key.new(byte ^ eighth_bit, byte, true)) + else + @line_editor.input_key(Reline::Key.new(byte, byte, false)) end - @line_editor.input_key(byte) else c.bytes.each do |b| - @line_editor.input_key(b) + @line_editor.input_key(Reline::Key.new(b, b, false)) end end end diff --git a/test/reline/test_key_stroke.rb b/test/reline/test_key_stroke.rb index b6d5ce4150..e76129d04b 100644 --- a/test/reline/test_key_stroke.rb +++ b/test/reline/test_key_stroke.rb @@ -4,30 +4,16 @@ class Reline::KeyStroke::Test < Reline::TestCase using Module.new { refine Array do def as_s - map(&:chr).join + join + end + + def to_keys + map{ |b| Reline::Key.new(b, b, false) } end end } - def test_input_to! - config = { - key_mapping: { - "a" => "xx", - "ab" => "y", - "abc" => "z", - "x" => "rr" - } - } - stroke = Reline::KeyStroke.new(config) - result = ("abzwabk".bytes).map { |char| - stroke.input_to!(char)&.then { |result| - "#{result.as_s}" - } - } - assert_equal(result, [nil, nil, "yz", "w", nil, nil, "yk"]) - end - - def test_input_to + def test_match_status config = { key_mapping: { "a" => "xx", @@ -37,15 +23,15 @@ class Reline::KeyStroke::Test < Reline::TestCase } } stroke = Reline::KeyStroke.new(config) - assert_equal(stroke.input_to("a".bytes)&.as_s, nil) - assert_equal(stroke.input_to("ab".bytes)&.as_s, nil) - assert_equal(stroke.input_to("abc".bytes)&.as_s, "z") - assert_equal(stroke.input_to("abz".bytes)&.as_s, "yz") - assert_equal(stroke.input_to("abx".bytes)&.as_s, "yrr") - assert_equal(stroke.input_to("ac".bytes)&.as_s, "rrrrc") - assert_equal(stroke.input_to("aa".bytes)&.as_s, "rrrrrrrr") - assert_equal(stroke.input_to("x".bytes)&.as_s, "rr") - assert_equal(stroke.input_to("m".bytes)&.as_s, "m") - assert_equal(stroke.input_to("abzwabk".bytes)&.as_s, "yzwabk") + assert_equal(:matching, stroke.match_status("a".bytes)) + assert_equal(:matching, stroke.match_status("ab".bytes)) + assert_equal(:matched, stroke.match_status("abc".bytes)) + assert_equal(:matched, stroke.match_status("abz".bytes)) + assert_equal(:matched, stroke.match_status("abx".bytes)) + assert_equal(:matched, stroke.match_status("ac".bytes)) + assert_equal(:matched, stroke.match_status("aa".bytes)) + assert_equal(:matched, stroke.match_status("x".bytes)) + assert_equal(:unmatched, stroke.match_status("m".bytes)) + assert_equal(:matched, stroke.match_status("abzwabk".bytes)) end end |