summaryrefslogtreecommitdiff
path: root/test/reline/windows/test_key_event_record.rb
diff options
context:
space:
mode:
authorSilverPhoenix99 <silver.phoenix99@gmail.com>2021-07-26 14:11:16 +0100
committeraycabta <aycabta@gmail.com>2021-07-30 02:27:02 +0900
commit5b9f3ed326ee24ecdd8986f71cbecea892f386b6 (patch)
treeb504ea0314eb983fe31e54012d65938de97c287a /test/reline/windows/test_key_event_record.rb
parent46c6da9c378a64deb2d65d8fcf5afd4d7c9c3f45 (diff)
[ruby/reline] Fixed Ctrl+Enter key in Windows.
https://github.com/ruby/reline/commit/0c38e39023
Diffstat (limited to 'test/reline/windows/test_key_event_record.rb')
-rw-r--r--test/reline/windows/test_key_event_record.rb41
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..607b8c3b24
--- /dev/null
+++ b/test/reline/windows/test_key_event_record.rb
@@ -0,0 +1,41 @@
+require_relative '../helper'
+require 'reline/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_raises(ArgumentError) { @key.matches? }
+ end
+
+ def test_matches_char_code
+ assert_true @key.matches?(char_code: 0x1)
+ end
+
+ def test_matches_virtual_key_code
+ assert_true @key.matches?(virtual_key_code: 0x41)
+ end
+
+ def test_matches_control_keys
+ assert_true @key.matches?(control_keys: :CTRL)
+ end
+
+ def test_doesnt_match_alt
+ assert_false @key.matches?(control_keys: :ALT)
+ end
+
+ def test_doesnt_match_empty_control_key
+ assert_false @key.matches?(control_keys: [])
+ end
+
+ def test_matches_control_keys_and_virtual_key_code
+ assert_true @key.matches?(control_keys: :CTRL, virtual_key_code: 0x41)
+ end
+
+ end
+end