diff options
Diffstat (limited to 'test/reline/windows/test_key_event_record.rb')
-rw-r--r-- | test/reline/windows/test_key_event_record.rb | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/reline/windows/test_key_event_record.rb b/test/reline/windows/test_key_event_record.rb new file mode 100644 index 0000000000..a034d20fe4 --- /dev/null +++ b/test/reline/windows/test_key_event_record.rb @@ -0,0 +1,41 @@ +require_relative '../helper' +return unless Reline.const_defined?(:Windows) + +class Reline::Windows + class KeyEventRecord::Test < Reline::TestCase + + def setup + # Ctrl+A + @key = Reline::Windows::KeyEventRecord.new(0x41, 1, Reline::Windows::LEFT_CTRL_PRESSED) + end + + def test_matches__with_no_arguments_raises_error + assert_raise(ArgumentError) { @key.matches? } + end + + def test_matches_char_code + assert @key.matches?(char_code: 0x1) + end + + def test_matches_virtual_key_code + assert @key.matches?(virtual_key_code: 0x41) + end + + def test_matches_control_keys + assert @key.matches?(control_keys: :CTRL) + end + + def test_doesnt_match_alt + refute @key.matches?(control_keys: :ALT) + end + + def test_doesnt_match_empty_control_key + refute @key.matches?(control_keys: []) + end + + def test_matches_control_keys_and_virtual_key_code + assert @key.matches?(control_keys: :CTRL, virtual_key_code: 0x41) + end + + end +end |