Index: chrome/browser/chromeos/events/event_rewriter_unittest.cc |
diff --git a/chrome/browser/chromeos/events/event_rewriter_unittest.cc b/chrome/browser/chromeos/events/event_rewriter_unittest.cc |
index 361040c80d2958705df2595ab032c7b9a13a90f6..d8401016c356bd3e3beaa90e46a352000b74c22a 100644 |
--- a/chrome/browser/chromeos/events/event_rewriter_unittest.cc |
+++ b/chrome/browser/chromeos/events/event_rewriter_unittest.cc |
@@ -30,6 +30,9 @@ |
#include "ui/events/event.h" |
#include "ui/events/event_rewriter.h" |
#include "ui/events/event_utils.h" |
+#include "ui/events/keycodes/dom3/dom_code.h" |
+#include "ui/events/keycodes/dom3/dom_key.h" |
+#include "ui/events/keycodes/dom4/keycode_converter.h" |
#include "ui/events/test/events_test_utils.h" |
#include "ui/events/test/test_event_processor.h" |
@@ -45,13 +48,18 @@ |
namespace { |
// The device id of the test touchpad device. |
+#if defined(USE_X11) |
const int kTouchPadDeviceId = 1; |
-const int kKeyboardDeviceId = 2; |
const int kMasterKeyboardDeviceId = 3; |
+#endif |
+const int kKeyboardDeviceId = 2; |
-std::string GetExpectedResultAsString(ui::KeyboardCode ui_keycode, |
- int ui_flags, |
- ui::EventType ui_type) { |
+std::string GetExpectedResultAsString(ui::EventType ui_type, |
+ ui::KeyboardCode ui_keycode, |
+ ui::DomCode code, |
+ int ui_flags, // ui::EventFlags |
+ ui::DomKey key, |
+ base::char16 character) { |
return base::StringPrintf("ui_keycode=0x%X ui_flags=0x%X ui_type=%d", |
ui_keycode, |
ui_flags & ~ui::EF_IS_REPEAT, |
@@ -60,14 +68,19 @@ std::string GetExpectedResultAsString(ui::KeyboardCode ui_keycode, |
std::string GetKeyEventAsString(const ui::KeyEvent& keyevent) { |
return GetExpectedResultAsString( |
- keyevent.key_code(), keyevent.flags(), keyevent.type()); |
+ keyevent.type(), keyevent.key_code(), keyevent.code(), keyevent.flags(), |
+ keyevent.GetDomKey(), keyevent.GetCharacter()); |
} |
std::string GetRewrittenEventAsString(chromeos::EventRewriter* rewriter, |
+ ui::EventType ui_type, |
ui::KeyboardCode ui_keycode, |
- int ui_flags, |
- ui::EventType ui_type) { |
- const ui::KeyEvent event(ui_type, ui_keycode, ui_flags); |
+ ui::DomCode code, |
+ int ui_flags, // ui::EventFlags |
+ ui::DomKey key, |
+ base::char16 character) { |
+ const ui::KeyEvent event(ui_type, ui_keycode, code, ui_flags, key, character, |
+ ui::EventTimeForNow()); |
scoped_ptr<ui::Event> new_event; |
rewriter->RewriteEvent(event, &new_event); |
if (new_event) |
@@ -81,21 +94,31 @@ struct KeyTestCase { |
enum { |
// Test types: |
TEST_VKEY = 1 << 0, // Test ui::KeyEvent with no native event |
- TEST_X11 = 1 << 1, // Test ui::KeyEvent with native XKeyEvent |
- TEST_ALL = TEST_VKEY|TEST_X11, |
+ TEST_X11 = 1 << 1, // Test ui::KeyEvent with native XKeyEvent |
+ TEST_ALL = TEST_VKEY | TEST_X11, |
// Special test flags: |
- NUMPAD = 1 << 8, // Set EF_NUMPAD_KEY on native-based event, because |
- // |XKeysymForWindowsKeyCode()| can not distinguish |
- // between pairs like XK_Insert and XK_KP_Insert. |
+ NUMPAD = 1 << 8, // Reset the XKB scan code on an X11 event based |
+ // on the test DomCode, because |
+ // |XKeysymForWindowsKeyCode()| can not distinguish |
+ // between pairs like XK_Insert and XK_KP_Insert. |
}; |
int test; |
ui::EventType type; |
- struct { |
+ struct Event { |
ui::KeyboardCode key_code; |
- int flags; |
+ ui::DomCode code; |
+ int flags; // ui::EventFlags |
+ ui::DomKey key; |
+ base::char16 character; |
} input, expected; |
}; |
+std::string GetTestCaseAsString(ui::EventType ui_type, |
+ const KeyTestCase::Event& test) { |
+ return GetExpectedResultAsString(ui_type, test.key_code, test.code, |
+ test.flags, test.key, test.character); |
+} |
+ |
#if defined(USE_X11) |
// Check rewriting of an X11-based key event. |
void CheckX11KeyTestCase(const std::string& expected, |
@@ -103,12 +126,6 @@ void CheckX11KeyTestCase(const std::string& expected, |
const KeyTestCase& test, |
XEvent* xevent) { |
ui::KeyEvent xkey_event(xevent); |
- if (test.test & KeyTestCase::NUMPAD) |
- xkey_event.set_flags(xkey_event.flags() | ui::EF_NUMPAD_KEY); |
- // Verify that the X11-based key event is as expected. |
- EXPECT_EQ(GetExpectedResultAsString( |
- test.input.key_code, test.input.flags, test.type), |
- GetKeyEventAsString(xkey_event)); |
// Rewrite the event and check the result. |
scoped_ptr<ui::Event> new_event; |
rewriter->RewriteEvent(xkey_event, &new_event); |
@@ -127,19 +144,16 @@ void CheckX11KeyTestCase(const std::string& expected, |
#endif |
// Tests a single stateless key rewrite operation. |
-// |i| is a an identifying number to locate failing tests in the tables. |
void CheckKeyTestCase(chromeos::EventRewriter* rewriter, |
const KeyTestCase& test) { |
- std::string expected = |
- GetExpectedResultAsString( |
- test.expected.key_code, test.expected.flags, test.type); |
+ std::string expected = GetTestCaseAsString(test.type, test.expected); |
if (test.test & KeyTestCase::TEST_VKEY) { |
// Check rewriting of a non-native-based key event. |
- EXPECT_EQ( |
- expected, |
- GetRewrittenEventAsString( |
- rewriter, test.input.key_code, test.input.flags, test.type)); |
+ EXPECT_EQ(expected, |
+ GetRewrittenEventAsString( |
+ rewriter, test.type, test.input.key_code, test.input.code, |
+ test.input.flags, test.input.key, test.input.character)); |
} |
#if defined(USE_X11) |
@@ -149,69 +163,25 @@ void CheckKeyTestCase(chromeos::EventRewriter* rewriter, |
xev.InitKeyEvent(test.type, test.input.key_code, test.input.flags); |
XEvent* xevent = xev; |
DCHECK((xevent->type == KeyPress) || (xevent->type == KeyRelease)); |
- if (xevent->xkey.keycode) |
+ if (test.test & KeyTestCase::NUMPAD) { |
+ xevent->xkey.keycode = |
+ ui::KeycodeConverter::DomCodeToNativeKeycode(test.input.code); |
+ } |
+ int keycode = xevent->xkey.keycode; |
+ if (keycode) { |
CheckX11KeyTestCase(expected, rewriter, test, xevent); |
- // Test an XI2 GenericEvent. |
- xev.InitGenericKeyEvent(kMasterKeyboardDeviceId, |
- kKeyboardDeviceId, |
- test.type, |
- test.input.key_code, |
- test.input.flags); |
- xevent = xev; |
- DCHECK(xevent->type == GenericEvent); |
- XIDeviceEvent* xievent = static_cast<XIDeviceEvent*>(xevent->xcookie.data); |
- DCHECK((xievent->evtype == XI_KeyPress) || |
- (xievent->evtype == XI_KeyRelease)); |
- if (xievent->detail) |
+ // Test an XI2 GenericEvent. |
+ xev.InitGenericKeyEvent(kMasterKeyboardDeviceId, kKeyboardDeviceId, |
+ test.type, test.input.key_code, test.input.flags); |
+ xevent = xev; |
+ DCHECK(xevent->type == GenericEvent); |
+ XIDeviceEvent* xievent = |
+ static_cast<XIDeviceEvent*>(xevent->xcookie.data); |
+ DCHECK((xievent->evtype == XI_KeyPress) || |
+ (xievent->evtype == XI_KeyRelease)); |
+ xievent->detail = keycode; |
CheckX11KeyTestCase(expected, rewriter, test, xevent); |
- } |
-#endif |
-} |
- |
-// Table entry for simple single function key event rewriting tests. |
-struct FunctionKeyTestCase { |
- ui::EventType type; |
- struct { |
- ui::KeyboardCode key_code; |
- int flags; |
- } input, vkey_expected, native_expected; |
-}; |
- |
-// Tests a single stateless function key rewrite operation. |
-// |i| is a an identifying number to locate failing tests in the tables. |
-// Function key mapping differs from the other key mappings because the |
-// EF_FUNCTION_KEY flag is set during ui::KeyEvent construction when passing in |
-// a native X11 event and the flag is not set when using other constructors. |
-void CheckFunctionKeyTestCase(chromeos::EventRewriter* rewriter, |
- const FunctionKeyTestCase& test) { |
- std::string vkey_expected = |
- GetExpectedResultAsString( |
- test.vkey_expected.key_code, |
- test.vkey_expected.flags, |
- test.type); |
- // Check rewriting of a non-native-based key event. |
- EXPECT_EQ( |
- vkey_expected, |
- GetRewrittenEventAsString( |
- rewriter, test.input.key_code, test.input.flags, test.type)); |
- |
-#if defined(USE_X11) |
- ui::ScopedXI2Event xev; |
- xev.InitKeyEvent(test.type, test.input.key_code, test.input.flags); |
- XEvent* xevent = xev; |
- if (xevent->xkey.keycode) { |
- ui::KeyEvent xkey_event(xevent); |
- // Rewrite the event and check the result. |
- scoped_ptr<ui::Event> new_event; |
- rewriter->RewriteEvent(xkey_event, &new_event); |
- ui::KeyEvent& rewritten_key_event = |
- new_event ? *static_cast<ui::KeyEvent*>(new_event.get()) : xkey_event; |
- std::string native_expected = |
- GetExpectedResultAsString( |
- test.native_expected.key_code, |
- test.native_expected.flags, |
- test.type); |
- EXPECT_EQ(native_expected, GetKeyEventAsString(rewritten_key_event)); |
+ } |
} |
#endif |
} |
@@ -271,29 +241,74 @@ TEST_F(EventRewriterTest, TestRewriteCommandToControl) { |
KeyTestCase pc_keyboard_tests[] = { |
// VKEY_A, Alt modifier. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_A, ui::EF_ALT_DOWN}, |
- {ui::VKEY_A, ui::EF_ALT_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}}, |
// VKEY_A, Win modifier. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_A, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_A, ui::EF_COMMAND_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}}, |
// VKEY_A, Alt+Win modifier. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_A, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_A, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}}, |
// VKEY_LWIN (left Windows key), Alt modifier. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_LWIN, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_LWIN, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_LWIN, |
+ ui::DomCode::OS_LEFT, |
+ ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, |
+ ui::DomKey::OS, |
+ 0}, |
+ {ui::VKEY_LWIN, |
+ ui::DomCode::OS_LEFT, |
+ ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, |
+ ui::DomKey::OS, |
+ 0}}, |
// VKEY_RWIN (right Windows key), Alt modifier. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_RWIN, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_RWIN, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_RWIN, |
+ ui::DomCode::OS_RIGHT, |
+ ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, |
+ ui::DomKey::OS, |
+ 0}, |
+ {ui::VKEY_RWIN, |
+ ui::DomCode::OS_RIGHT, |
+ ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, |
+ ui::DomKey::OS, |
+ 0}}, |
}; |
for (size_t i = 0; i < arraysize(pc_keyboard_tests); ++i) { |
@@ -307,29 +322,74 @@ TEST_F(EventRewriterTest, TestRewriteCommandToControl) { |
KeyTestCase apple_keyboard_tests[] = { |
// VKEY_A, Alt modifier. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_A, ui::EF_ALT_DOWN}, |
- {ui::VKEY_A, ui::EF_ALT_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}}, |
// VKEY_A, Win modifier. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_A, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_A, ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}}, |
// VKEY_A, Alt+Win modifier. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_A, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_A, ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}}, |
// VKEY_LWIN (left Windows key), Alt modifier. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_LWIN, ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN}, |
- {ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_LWIN, |
+ ui::DomCode::OS_LEFT, |
+ ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, |
+ ui::DomKey::OS, |
+ 0}, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
+ ui::DomKey::CONTROL, |
+ 0}}, |
// VKEY_RWIN (right Windows key), Alt modifier. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_RWIN, ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN}, |
- {ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_RWIN, |
+ ui::DomCode::OS_RIGHT, |
+ ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, |
+ ui::DomKey::OS, |
+ 0}, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
+ ui::DomKey::CONTROL, |
+ 0}}, |
}; |
for (size_t i = 0; i < arraysize(apple_keyboard_tests); ++i) { |
@@ -352,10 +412,20 @@ TEST_F(EventRewriterTest, TestRewriteCommandToControlWithControlRemapped) { |
rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); |
rewriter.set_last_keyboard_device_id_for_testing(kKeyboardDeviceId); |
- KeyTestCase pc_keyboard_tests[] = {// Control should be remapped to Alt. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_MENU, ui::EF_ALT_DOWN}}, |
+ KeyTestCase pc_keyboard_tests[] = { |
+ // Control should be remapped to Alt. |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CONTROL, |
+ 0}, |
+ {ui::VKEY_MENU, |
+ ui::DomCode::ALT_LEFT, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::ALT, |
+ 0}}, |
}; |
for (size_t i = 0; i < arraysize(pc_keyboard_tests); ++i) { |
@@ -370,15 +440,33 @@ TEST_F(EventRewriterTest, TestRewriteCommandToControlWithControlRemapped) { |
KeyTestCase apple_keyboard_tests[] = { |
// VKEY_LWIN (left Command key) with Alt modifier. The remapped Command |
// key should never be re-remapped to Alt. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_LWIN, ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN}, |
- {ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_LWIN, |
+ ui::DomCode::OS_LEFT, |
+ ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, |
+ ui::DomKey::OS, |
+ 0}, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
+ ui::DomKey::CONTROL, |
+ 0}}, |
// VKEY_RWIN (right Command key) with Alt modifier. The remapped Command |
// key should never be re-remapped to Alt. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_RWIN, ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN}, |
- {ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_RWIN, |
+ ui::DomCode::OS_RIGHT, |
+ ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, |
+ ui::DomKey::OS, |
+ 0}, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
+ ui::DomKey::CONTROL, |
+ 0}}, |
}; |
for (size_t i = 0; i < arraysize(apple_keyboard_tests); ++i) { |
@@ -396,119 +484,331 @@ void EventRewriterTest::TestRewriteNumPadKeys() { |
KeyTestCase tests[] = { |
// XK_KP_Insert (= NumPad 0 without Num Lock), no modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_INSERT, ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD0, ui::EF_NUMPAD_KEY}}, |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_INSERT, |
+ ui::DomCode::NUMPAD0, |
+ ui::EF_NONE, |
+ ui::DomKey::INSERT, |
+ 0}, |
+ {ui::VKEY_NUMPAD0, |
+ ui::DomCode::NUMPAD0, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '0'}}, |
// XK_KP_Insert (= NumPad 0 without Num Lock), Alt modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_INSERT, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD0, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}}, |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_INSERT, |
+ ui::DomCode::NUMPAD0, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::INSERT, |
+ 0}, |
+ {ui::VKEY_NUMPAD0, |
+ ui::DomCode::NUMPAD0, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '0'}}, |
// XK_KP_Delete (= NumPad . without Num Lock), Alt modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_DELETE, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_DECIMAL, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}}, |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_DELETE, |
+ ui::DomCode::NUMPAD_DECIMAL, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::DEL, |
+ 0}, |
+ {ui::VKEY_DECIMAL, |
+ ui::DomCode::NUMPAD_DECIMAL, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '.'}}, |
// XK_KP_End (= NumPad 1 without Num Lock), Alt modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_END, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD1, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}}, |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_END, |
+ ui::DomCode::NUMPAD1, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::END, |
+ 0}, |
+ {ui::VKEY_NUMPAD1, |
+ ui::DomCode::NUMPAD1, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '1'}}, |
// XK_KP_Down (= NumPad 2 without Num Lock), Alt modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_DOWN, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD2, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}}, |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_DOWN, |
+ ui::DomCode::NUMPAD2, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::ARROW_DOWN, |
+ 0}, |
+ {ui::VKEY_NUMPAD2, |
+ ui::DomCode::NUMPAD2, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '2'}}, |
// XK_KP_Next (= NumPad 3 without Num Lock), Alt modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_NEXT, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD3, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}}, |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_NEXT, |
+ ui::DomCode::NUMPAD3, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::PAGE_DOWN, |
+ 0}, |
+ {ui::VKEY_NUMPAD3, |
+ ui::DomCode::NUMPAD3, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '3'}}, |
// XK_KP_Left (= NumPad 4 without Num Lock), Alt modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_LEFT, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD4, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}}, |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_LEFT, |
+ ui::DomCode::NUMPAD4, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::ARROW_LEFT, |
+ 0}, |
+ {ui::VKEY_NUMPAD4, |
+ ui::DomCode::NUMPAD4, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '4'}}, |
// XK_KP_Begin (= NumPad 5 without Num Lock), Alt modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_CLEAR, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD5, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}}, |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_CLEAR, |
+ ui::DomCode::NUMPAD5, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::CLEAR, |
+ 0}, |
+ {ui::VKEY_NUMPAD5, |
+ ui::DomCode::NUMPAD5, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '5'}}, |
// XK_KP_Right (= NumPad 6 without Num Lock), Alt modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_RIGHT, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD6, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}}, |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_RIGHT, |
+ ui::DomCode::NUMPAD6, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::ARROW_RIGHT, |
+ 0}, |
+ {ui::VKEY_NUMPAD6, |
+ ui::DomCode::NUMPAD6, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '6'}}, |
// XK_KP_Home (= NumPad 7 without Num Lock), Alt modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_HOME, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD7, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}}, |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_HOME, |
+ ui::DomCode::NUMPAD7, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::HOME, |
+ 0}, |
+ {ui::VKEY_NUMPAD7, |
+ ui::DomCode::NUMPAD7, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '7'}}, |
// XK_KP_Up (= NumPad 8 without Num Lock), Alt modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_UP, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD8, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}}, |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_UP, |
+ ui::DomCode::NUMPAD8, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::ARROW_UP, |
+ 0}, |
+ {ui::VKEY_NUMPAD8, |
+ ui::DomCode::NUMPAD8, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '8'}}, |
// XK_KP_Prior (= NumPad 9 without Num Lock), Alt modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_PRIOR, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD9, ui::EF_ALT_DOWN | ui::EF_NUMPAD_KEY}}, |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_PRIOR, |
+ ui::DomCode::NUMPAD9, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::PAGE_UP, |
+ 0}, |
+ {ui::VKEY_NUMPAD9, |
+ ui::DomCode::NUMPAD9, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '9'}}, |
// XK_KP_0 (= NumPad 0 with Num Lock), Num Lock modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_NUMPAD0, ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD0, ui::EF_NUMPAD_KEY}}, |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_NUMPAD0, |
+ ui::DomCode::NUMPAD0, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '0'}, |
+ {ui::VKEY_NUMPAD0, |
+ ui::DomCode::NUMPAD0, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '0'}}, |
// XK_KP_DECIMAL (= NumPad . with Num Lock), Num Lock modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_DECIMAL, ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_DECIMAL, ui::EF_NUMPAD_KEY}}, |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_DECIMAL, |
+ ui::DomCode::NUMPAD_DECIMAL, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '.'}, |
+ {ui::VKEY_DECIMAL, |
+ ui::DomCode::NUMPAD_DECIMAL, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '.'}}, |
// XK_KP_1 (= NumPad 1 with Num Lock), Num Lock modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_NUMPAD1, ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD1, ui::EF_NUMPAD_KEY}}, |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_NUMPAD1, |
+ ui::DomCode::NUMPAD1, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '1'}, |
+ {ui::VKEY_NUMPAD1, |
+ ui::DomCode::NUMPAD1, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '1'}}, |
// XK_KP_2 (= NumPad 2 with Num Lock), Num Lock modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_NUMPAD2, ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD2, ui::EF_NUMPAD_KEY}}, |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_NUMPAD2, |
+ ui::DomCode::NUMPAD2, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '2'}, |
+ {ui::VKEY_NUMPAD2, |
+ ui::DomCode::NUMPAD2, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '2'}}, |
// XK_KP_3 (= NumPad 3 with Num Lock), Num Lock modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_NUMPAD3, ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD3, ui::EF_NUMPAD_KEY}}, |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_NUMPAD3, |
+ ui::DomCode::NUMPAD3, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '3'}, |
+ {ui::VKEY_NUMPAD3, |
+ ui::DomCode::NUMPAD3, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '3'}}, |
// XK_KP_4 (= NumPad 4 with Num Lock), Num Lock modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_NUMPAD4, ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD4, ui::EF_NUMPAD_KEY}}, |
- |
- // XK_KP_5 (= NumPad 5 with Num Lock), Num Lock modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_NUMPAD5, ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD5, ui::EF_NUMPAD_KEY}}, |
- |
- // XK_KP_6 (= NumPad 6 with Num Lock), Num Lock modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_NUMPAD6, ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD6, ui::EF_NUMPAD_KEY}}, |
- |
- // XK_KP_7 (= NumPad 7 with Num Lock), Num Lock modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_NUMPAD7, ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD7, ui::EF_NUMPAD_KEY}}, |
- |
- // XK_KP_8 (= NumPad 8 with Num Lock), Num Lock modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_NUMPAD8, ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD8, ui::EF_NUMPAD_KEY}}, |
- |
- // XK_KP_9 (= NumPad 9 with Num Lock), Num Lock modifier. |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_NUMPAD9, ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD9, ui::EF_NUMPAD_KEY}}, |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_NUMPAD4, |
+ ui::DomCode::NUMPAD4, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '4'}, |
+ {ui::VKEY_NUMPAD4, |
+ ui::DomCode::NUMPAD4, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '4'}}, |
+ |
+ // XK_KP_5 (= NumPad 5 with Num Lock), Num Lock |
+ // modifier. |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_NUMPAD5, |
+ ui::DomCode::NUMPAD5, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '5'}, |
+ {ui::VKEY_NUMPAD5, |
+ ui::DomCode::NUMPAD5, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '5'}}, |
+ |
+ // XK_KP_6 (= NumPad 6 with Num Lock), Num Lock |
+ // modifier. |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_NUMPAD6, |
+ ui::DomCode::NUMPAD6, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '6'}, |
+ {ui::VKEY_NUMPAD6, |
+ ui::DomCode::NUMPAD6, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '6'}}, |
+ |
+ // XK_KP_7 (= NumPad 7 with Num Lock), Num Lock |
+ // modifier. |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_NUMPAD7, |
+ ui::DomCode::NUMPAD7, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '7'}, |
+ {ui::VKEY_NUMPAD7, |
+ ui::DomCode::NUMPAD7, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '7'}}, |
+ |
+ // XK_KP_8 (= NumPad 8 with Num Lock), Num Lock |
+ // modifier. |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_NUMPAD8, |
+ ui::DomCode::NUMPAD8, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '8'}, |
+ {ui::VKEY_NUMPAD8, |
+ ui::DomCode::NUMPAD8, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '8'}}, |
+ |
+ // XK_KP_9 (= NumPad 9 with Num Lock), Num Lock |
+ // modifier. |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_NUMPAD9, |
+ ui::DomCode::NUMPAD9, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '9'}, |
+ {ui::VKEY_NUMPAD9, |
+ ui::DomCode::NUMPAD9, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '9'}}, |
}; |
for (size_t i = 0; i < arraysize(tests); ++i) { |
@@ -542,17 +842,34 @@ void EventRewriterTest::TestRewriteNumPadKeysOnAppleKeyboard() { |
KeyTestCase tests[] = { |
// XK_KP_End (= NumPad 1 without Num Lock), Win modifier. |
// The result should be "Num Pad 1 with Control + Num Lock modifiers". |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_END, ui::EF_COMMAND_DOWN | ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD1, ui::EF_CONTROL_DOWN | ui::EF_NUMPAD_KEY}}, |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_END, |
+ ui::DomCode::NUMPAD1, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::END, |
+ 0}, |
+ {ui::VKEY_NUMPAD1, |
+ ui::DomCode::NUMPAD1, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '1'}}, |
// XK_KP_1 (= NumPad 1 with Num Lock), Win modifier. |
// The result should also be "Num Pad 1 with Control + Num Lock |
// modifiers". |
- {KeyTestCase::TEST_ALL|KeyTestCase::NUMPAD, ui::ET_KEY_PRESSED, |
- {ui::VKEY_NUMPAD1, ui::EF_COMMAND_DOWN | ui::EF_NUMPAD_KEY}, |
- {ui::VKEY_NUMPAD1, ui::EF_CONTROL_DOWN | ui::EF_NUMPAD_KEY}}, |
- }; |
+ {KeyTestCase::TEST_ALL | KeyTestCase::NUMPAD, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_NUMPAD1, |
+ ui::DomCode::NUMPAD1, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '1'}, |
+ {ui::VKEY_NUMPAD1, |
+ ui::DomCode::NUMPAD1, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '1'}}}; |
for (size_t i = 0; i < arraysize(tests); ++i) { |
SCOPED_TRACE(i); |
@@ -583,35 +900,77 @@ TEST_F(EventRewriterTest, TestRewriteModifiersNoRemap) { |
KeyTestCase tests[] = { |
// Press Search. Confirm the event is not rewritten. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_LWIN, ui::EF_NONE}, |
- {ui::VKEY_LWIN, ui::EF_COMMAND_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_NONE, ui::DomKey::OS, 0}, |
+ {ui::VKEY_LWIN, |
+ ui::DomCode::OS_LEFT, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::OS, |
+ 0}}, |
// Press left Control. Confirm the event is not rewritten. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CONTROL, |
+ 0}, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CONTROL, |
+ 0}}, |
// Press right Control. Confirm the event is not rewritten. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CONTROL, |
+ 0}, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CONTROL, |
+ 0}}, |
// Press left Alt. Confirm the event is not rewritten. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_MENU, ui::EF_ALT_DOWN}, |
- {ui::VKEY_MENU, ui::EF_ALT_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_MENU, |
+ ui::DomCode::ALT_LEFT, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::ALT, |
+ 0}, |
+ {ui::VKEY_MENU, |
+ ui::DomCode::ALT_LEFT, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::ALT, |
+ 0}}, |
// Press right Alt. Confirm the event is not rewritten. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_MENU, ui::EF_ALT_DOWN}, |
- {ui::VKEY_MENU, ui::EF_ALT_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_MENU, |
+ ui::DomCode::ALT_LEFT, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::ALT, |
+ 0}, |
+ {ui::VKEY_MENU, |
+ ui::DomCode::ALT_LEFT, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::ALT, |
+ 0}}, |
// Test KeyRelease event, just in case. |
// Release Search. Confirm the release event is not rewritten. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_RELEASED, |
- {ui::VKEY_LWIN, ui::EF_NONE}, |
- {ui::VKEY_LWIN, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_RELEASED, |
+ {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_NONE, ui::DomKey::OS, 0}, |
+ {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_NONE, ui::DomKey::OS, 0}}, |
}; |
for (size_t i = 0; i < arraysize(tests); ++i) { |
@@ -628,26 +987,62 @@ TEST_F(EventRewriterTest, TestRewriteModifiersNoRemapMultipleKeys) { |
KeyTestCase tests[] = { |
// Press Alt with Shift. Confirm the event is not rewritten. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_MENU, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN}, |
- {ui::VKEY_MENU, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_MENU, |
+ ui::DomCode::ALT_LEFT, |
+ ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, |
+ ui::DomKey::ALT, |
+ 0}, |
+ {ui::VKEY_MENU, |
+ ui::DomCode::ALT_LEFT, |
+ ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, |
+ ui::DomKey::ALT, |
+ 0}}, |
// Press Search with Caps Lock mask. Confirm the event is not rewritten. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_LWIN, ui::EF_CAPS_LOCK_DOWN | ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_LWIN, ui::EF_CAPS_LOCK_DOWN | ui::EF_COMMAND_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_LWIN, |
+ ui::DomCode::OS_LEFT, |
+ ui::EF_CAPS_LOCK_DOWN | ui::EF_COMMAND_DOWN, |
+ ui::DomKey::OS, |
+ 0}, |
+ {ui::VKEY_LWIN, |
+ ui::DomCode::OS_LEFT, |
+ ui::EF_CAPS_LOCK_DOWN | ui::EF_COMMAND_DOWN, |
+ ui::DomKey::OS, |
+ 0}}, |
// Release Search with Caps Lock mask. Confirm the event is not rewritten. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_RELEASED, |
- {ui::VKEY_LWIN, ui::EF_CAPS_LOCK_DOWN}, |
- {ui::VKEY_LWIN, ui::EF_CAPS_LOCK_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_RELEASED, |
+ {ui::VKEY_LWIN, |
+ ui::DomCode::OS_LEFT, |
+ ui::EF_CAPS_LOCK_DOWN, |
+ ui::DomKey::OS, |
+ 0}, |
+ {ui::VKEY_LWIN, |
+ ui::DomCode::OS_LEFT, |
+ ui::EF_CAPS_LOCK_DOWN, |
+ ui::DomKey::OS, |
+ 0}}, |
// Press Shift+Ctrl+Alt+Search+A. Confirm the event is not rewritten. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_B, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | |
- ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_B, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | |
- ui::EF_COMMAND_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_B, |
+ ui::DomCode::KEY_B, |
+ ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'B'}, |
+ {ui::VKEY_B, |
+ ui::DomCode::KEY_B, |
+ ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'B'}}, |
}; |
for (size_t i = 0; i < arraysize(tests); ++i) { |
@@ -674,37 +1069,87 @@ TEST_F(EventRewriterTest, TestRewriteModifiersDisableSome) { |
KeyTestCase disabled_modifier_tests[] = { |
// Press Alt with Shift. This key press shouldn't be affected by the |
// pref. Confirm the event is not rewritten. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_MENU, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN}, |
- {ui::VKEY_MENU, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_MENU, |
+ ui::DomCode::ALT_LEFT, |
+ ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, |
+ ui::DomKey::ALT, |
+ 0}, |
+ {ui::VKEY_MENU, |
+ ui::DomCode::ALT_LEFT, |
+ ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, |
+ ui::DomKey::ALT, |
+ 0}}, |
// Press Search. Confirm the event is now VKEY_UNKNOWN. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_LWIN, ui::EF_NONE}, |
- {ui::VKEY_UNKNOWN, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_NONE, ui::DomKey::OS, 0}, |
+ {ui::VKEY_UNKNOWN, |
+ ui::DomCode::NONE, |
+ ui::EF_NONE, |
+ ui::DomKey::UNIDENTIFIED, |
+ 0}}, |
// Press Control. Confirm the event is now VKEY_UNKNOWN. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_UNKNOWN, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CONTROL, |
+ 0}, |
+ {ui::VKEY_UNKNOWN, |
+ ui::DomCode::NONE, |
+ ui::EF_NONE, |
+ ui::DomKey::UNIDENTIFIED, |
+ 0}}, |
// Press Control+Search. Confirm the event is now VKEY_UNKNOWN |
// without any modifiers. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_LWIN, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_UNKNOWN, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_LWIN, |
+ ui::DomCode::OS_LEFT, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::OS, |
+ 0}, |
+ {ui::VKEY_UNKNOWN, |
+ ui::DomCode::NONE, |
+ ui::EF_NONE, |
+ ui::DomKey::UNIDENTIFIED, |
+ 0}}, |
// Press Control+Search+a. Confirm the event is now VKEY_A without any |
// modifiers. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_A, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_A, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ 'a'}}, |
// Press Control+Search+Alt+a. Confirm the event is now VKEY_A only with |
// the Alt modifier. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_A, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN}, |
- {ui::VKEY_A, ui::EF_ALT_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}}, |
}; |
for (size_t i = 0; i < arraysize(disabled_modifier_tests); ++i) { |
@@ -720,15 +1165,33 @@ TEST_F(EventRewriterTest, TestRewriteModifiersDisableSome) { |
KeyTestCase tests[] = { |
// Press left Alt. Confirm the event is now VKEY_CONTROL |
// even though the Control key itself is disabled. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_MENU, ui::EF_ALT_DOWN}, |
- {ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_MENU, |
+ ui::DomCode::ALT_LEFT, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::ALT, |
+ 0}, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CONTROL, |
+ 0}}, |
// Press Alt+a. Confirm the event is now Control+a even though the Control |
// key itself is disabled. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_A, ui::EF_ALT_DOWN}, |
- {ui::VKEY_A, ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}}, |
}; |
for (size_t i = 0; i < arraysize(tests); ++i) { |
@@ -751,9 +1214,18 @@ TEST_F(EventRewriterTest, TestRewriteModifiersRemapToControl) { |
KeyTestCase s_tests[] = { |
// Press Search. Confirm the event is now VKEY_CONTROL. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_LWIN, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_LWIN, |
+ ui::DomCode::OS_LEFT, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::OS, |
+ 0}, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CONTROL, |
+ 0}}, |
}; |
for (size_t i = 0; i < arraysize(s_tests); ++i) { |
@@ -768,34 +1240,78 @@ TEST_F(EventRewriterTest, TestRewriteModifiersRemapToControl) { |
KeyTestCase sa_tests[] = { |
// Press Alt. Confirm the event is now VKEY_CONTROL. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_MENU, ui::EF_ALT_DOWN}, |
- {ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_MENU, |
+ ui::DomCode::ALT_LEFT, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::ALT, |
+ 0}, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CONTROL, |
+ 0}}, |
// Press Alt+Search. Confirm the event is now VKEY_CONTROL. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_LWIN, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_LWIN, |
+ ui::DomCode::OS_LEFT, |
+ ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, |
+ ui::DomKey::OS, |
+ 0}, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CONTROL, |
+ 0}}, |
// Press Control+Alt+Search. Confirm the event is now VKEY_CONTROL. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
{ui::VKEY_LWIN, |
- ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN}}, |
+ ui::DomCode::OS_LEFT, |
+ ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, |
+ ui::DomKey::OS, |
+ 0}, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CONTROL, |
+ 0}}, |
// Press Shift+Control+Alt+Search. Confirm the event is now Control with |
// Shift and Control modifiers. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_LWIN, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | |
- ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_CONTROL, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_LWIN, |
+ ui::DomCode::OS_LEFT, |
+ ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::OS, |
+ 0}, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CONTROL, |
+ 0}}, |
// Press Shift+Control+Alt+Search+B. Confirm the event is now B with Shift |
// and Control modifiers. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_B, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | |
- ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_B, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_B, |
+ ui::DomCode::KEY_B, |
+ ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'B'}, |
+ {ui::VKEY_B, |
+ ui::DomCode::KEY_B, |
+ ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'B'}}, |
}; |
for (size_t i = 0; i < arraysize(sa_tests); ++i) { |
@@ -816,10 +1332,20 @@ TEST_F(EventRewriterTest, TestRewriteModifiersRemapToEscape) { |
rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); |
rewriter.set_pref_service_for_testing(&prefs); |
- KeyTestCase tests[] = {// Press Search. Confirm the event is now VKEY_ESCAPE. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_LWIN, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_ESCAPE, ui::EF_NONE}}, |
+ KeyTestCase tests[] = { |
+ // Press Search. Confirm the event is now VKEY_ESCAPE. |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_LWIN, |
+ ui::DomCode::OS_LEFT, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::OS, |
+ 0}, |
+ {ui::VKEY_ESCAPE, |
+ ui::DomCode::ESCAPE, |
+ ui::EF_NONE, |
+ ui::DomKey::ESCAPE, |
+ 0}}, |
}; |
for (size_t i = 0; i < arraysize(tests); ++i) { |
@@ -842,9 +1368,18 @@ TEST_F(EventRewriterTest, TestRewriteModifiersRemapMany) { |
KeyTestCase s2a_tests[] = { |
// Press Search. Confirm the event is now VKEY_MENU. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_LWIN, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_MENU, ui::EF_ALT_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_LWIN, |
+ ui::DomCode::OS_LEFT, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::OS, |
+ 0}, |
+ {ui::VKEY_MENU, |
+ ui::DomCode::ALT_LEFT, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::ALT, |
+ 0}}, |
}; |
for (size_t i = 0; i < arraysize(s2a_tests); ++i) { |
@@ -859,19 +1394,46 @@ TEST_F(EventRewriterTest, TestRewriteModifiersRemapMany) { |
KeyTestCase a2c_tests[] = { |
// Press left Alt. Confirm the event is now VKEY_CONTROL. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_MENU, ui::EF_ALT_DOWN}, |
- {ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_MENU, |
+ ui::DomCode::ALT_LEFT, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::ALT, |
+ 0}, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CONTROL, |
+ 0}}, |
// Press Shift+comma. Verify that only the flags are changed. |
// The X11 portion of the test addresses crbug.com/390263 by verifying |
// that the X keycode remains that for ',<' and not for 105-key '<>'. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_OEM_COMMA, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN}, |
- {ui::VKEY_OEM_COMMA, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_OEM_COMMA, |
+ ui::DomCode::COMMA, |
+ ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, |
+ ui::DomKey::UNIDENTIFIED, |
+ 0}, |
+ {ui::VKEY_OEM_COMMA, |
+ ui::DomCode::COMMA, |
+ ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, |
+ ui::DomKey::UNIDENTIFIED, |
+ 0}}, |
// Press Shift+9. Verify that only the flags are changed. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_9, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN}, |
- {ui::VKEY_9, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_9, |
+ ui::DomCode::DIGIT9, |
+ ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '9'}, |
+ {ui::VKEY_9, |
+ ui::DomCode::DIGIT9, |
+ ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '9'}}, |
}; |
for (size_t i = 0; i < arraysize(a2c_tests); ++i) { |
@@ -886,30 +1448,64 @@ TEST_F(EventRewriterTest, TestRewriteModifiersRemapMany) { |
KeyTestCase c2s_tests[] = { |
// Press left Control. Confirm the event is now VKEY_LWIN. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_LWIN, ui::EF_COMMAND_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CONTROL, |
+ 0}, |
+ {ui::VKEY_LWIN, |
+ ui::DomCode::OS_LEFT, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::OS, |
+ 0}}, |
// Then, press all of the three, Control+Alt+Search. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
{ui::VKEY_LWIN, |
- ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN}, |
+ ui::DomCode::OS_LEFT, |
+ ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, |
+ ui::DomKey::OS, |
+ 0}, |
{ui::VKEY_MENU, |
- ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN}}, |
+ ui::DomCode::ALT_LEFT, |
+ ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, |
+ ui::DomKey::ALT, |
+ 0}}, |
// Press Shift+Control+Alt+Search. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_LWIN, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | |
- ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_MENU, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | |
- ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_LWIN, |
+ ui::DomCode::OS_LEFT, |
+ ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::OS, |
+ 0}, |
+ {ui::VKEY_MENU, |
+ ui::DomCode::ALT_LEFT, |
+ ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::ALT, |
+ 0}}, |
// Press Shift+Control+Alt+Search+B |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_B, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | |
- ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_B, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | |
- ui::EF_COMMAND_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_B, |
+ ui::DomCode::KEY_B, |
+ ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'B'}, |
+ {ui::VKEY_B, |
+ ui::DomCode::KEY_B, |
+ ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'B'}}, |
}; |
for (size_t i = 0; i < arraysize(c2s_tests); ++i) { |
@@ -934,51 +1530,56 @@ TEST_F(EventRewriterTest, TestRewriteModifiersRemapToCapsLock) { |
EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_); |
// Press Search. |
- EXPECT_EQ( |
- GetExpectedResultAsString(ui::VKEY_CAPITAL, |
- ui::EF_CAPS_LOCK_DOWN | ui::EF_MOD3_DOWN, |
- ui::ET_KEY_PRESSED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_LWIN, ui::EF_COMMAND_DOWN, ui::ET_KEY_PRESSED)); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, |
+ ui::DomCode::CAPS_LOCK, |
+ ui::EF_CAPS_LOCK_DOWN | ui::EF_MOD3_DOWN, |
+ ui::DomKey::CAPS_LOCK, 0), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, |
+ ui::VKEY_LWIN, ui::DomCode::OS_LEFT, |
+ ui::EF_COMMAND_DOWN, ui::DomKey::OS, 0)); |
// Confirm that the Caps Lock status is changed. |
EXPECT_TRUE(ime_keyboard.caps_lock_is_enabled_); |
// Release Search. |
- EXPECT_EQ(GetExpectedResultAsString( |
- ui::VKEY_CAPITAL, ui::EF_NONE, ui::ET_KEY_RELEASED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_LWIN, ui::EF_NONE, ui::ET_KEY_RELEASED)); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CAPITAL, |
+ ui::DomCode::CAPS_LOCK, ui::EF_NONE, |
+ ui::DomKey::CAPS_LOCK, 0), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED, |
+ ui::VKEY_LWIN, ui::DomCode::OS_LEFT, |
+ ui::EF_NONE, ui::DomKey::OS, 0)); |
// Confirm that the Caps Lock status is not changed. |
EXPECT_TRUE(ime_keyboard.caps_lock_is_enabled_); |
// Press Search. |
EXPECT_EQ( |
- GetExpectedResultAsString(ui::VKEY_CAPITAL, |
- ui::EF_CAPS_LOCK_DOWN | ui::EF_MOD3_DOWN, |
- ui::ET_KEY_PRESSED), |
- GetRewrittenEventAsString(&rewriter, |
- ui::VKEY_LWIN, |
- ui::EF_COMMAND_DOWN | ui::EF_CAPS_LOCK_DOWN, |
- ui::ET_KEY_PRESSED)); |
+ GetExpectedResultAsString( |
+ ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK, |
+ ui::EF_CAPS_LOCK_DOWN | ui::EF_MOD3_DOWN, ui::DomKey::CAPS_LOCK, 0), |
+ GetRewrittenEventAsString( |
+ &rewriter, ui::ET_KEY_PRESSED, ui::VKEY_LWIN, ui::DomCode::OS_LEFT, |
+ ui::EF_COMMAND_DOWN | ui::EF_CAPS_LOCK_DOWN, ui::DomKey::OS, 0)); |
// Confirm that the Caps Lock status is changed. |
EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_); |
// Release Search. |
- EXPECT_EQ(GetExpectedResultAsString( |
- ui::VKEY_CAPITAL, ui::EF_NONE, ui::ET_KEY_RELEASED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_LWIN, ui::EF_NONE, ui::ET_KEY_RELEASED)); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CAPITAL, |
+ ui::DomCode::CAPS_LOCK, ui::EF_NONE, |
+ ui::DomKey::CAPS_LOCK, 0), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED, |
+ ui::VKEY_LWIN, ui::DomCode::OS_LEFT, |
+ ui::EF_NONE, ui::DomKey::OS, 0)); |
// Confirm that the Caps Lock status is not changed. |
EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_); |
// Press Caps Lock (on an external keyboard). |
- EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CAPITAL, |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, |
+ ui::DomCode::CAPS_LOCK, |
ui::EF_CAPS_LOCK_DOWN | ui::EF_MOD3_DOWN, |
- ui::ET_KEY_PRESSED), |
- GetRewrittenEventAsString(&rewriter, |
- ui::VKEY_CAPITAL, |
+ ui::DomKey::CAPS_LOCK, 0), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, |
+ ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK, |
ui::EF_CAPS_LOCK_DOWN | ui::EF_MOD3_DOWN, |
- ui::ET_KEY_PRESSED)); |
+ ui::DomKey::CAPS_LOCK, 0)); |
// Confirm that calling RewriteForTesting() does not change the state of |
// |ime_keyboard|. In this case, X Window system itself should change the |
@@ -986,10 +1587,12 @@ TEST_F(EventRewriterTest, TestRewriteModifiersRemapToCapsLock) { |
EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_); |
// Release Caps Lock (on an external keyboard). |
- EXPECT_EQ(GetExpectedResultAsString( |
- ui::VKEY_CAPITAL, ui::EF_NONE, ui::ET_KEY_RELEASED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_CAPITAL, ui::EF_NONE, ui::ET_KEY_RELEASED)); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CAPITAL, |
+ ui::DomCode::CAPS_LOCK, ui::EF_NONE, |
+ ui::DomKey::CAPS_LOCK, 0), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED, |
+ ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK, |
+ ui::EF_NONE, ui::DomKey::CAPS_LOCK, 0)); |
EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_); |
} |
@@ -1005,11 +1608,13 @@ TEST_F(EventRewriterTest, TestRewriteCapsLock) { |
EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_); |
// On Chrome OS, CapsLock is mapped to F16 with Mod3Mask. |
- EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CAPITAL, |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, |
+ ui::DomCode::CAPS_LOCK, |
ui::EF_CAPS_LOCK_DOWN | ui::EF_MOD3_DOWN, |
- ui::ET_KEY_PRESSED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_F16, ui::EF_MOD3_DOWN, ui::ET_KEY_PRESSED)); |
+ ui::DomKey::CAPS_LOCK, 0), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, |
+ ui::VKEY_F16, ui::DomCode::F16, |
+ ui::EF_MOD3_DOWN, ui::DomKey::F16, 0)); |
EXPECT_TRUE(ime_keyboard.caps_lock_is_enabled_); |
} |
@@ -1028,20 +1633,36 @@ TEST_F(EventRewriterTest, TestRewriteDiamondKey) { |
// specified. |
{KeyTestCase::TEST_VKEY, |
ui::ET_KEY_PRESSED, |
- {ui::VKEY_F15, ui::EF_NONE}, |
- {ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN}}, |
+ {ui::VKEY_F15, ui::DomCode::F15, ui::EF_NONE, ui::DomKey::F15, 0}, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CONTROL, |
+ 0}}, |
{KeyTestCase::TEST_VKEY, |
ui::ET_KEY_RELEASED, |
- {ui::VKEY_F15, ui::EF_NONE}, |
- {ui::VKEY_CONTROL, ui::EF_NONE}}, |
+ {ui::VKEY_F15, ui::DomCode::F15, ui::EF_NONE, ui::DomKey::F15, 0}, |
+ {ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, |
+ ui::EF_NONE, |
+ ui::DomKey::CONTROL, |
+ 0}}, |
// However, Mod2Mask should not be rewritten to CtrlMask when |
// --has-chromeos-diamond-key is not specified. |
{KeyTestCase::TEST_VKEY, |
ui::ET_KEY_PRESSED, |
- {ui::VKEY_A, ui::EF_NONE}, |
- {ui::VKEY_A, ui::EF_NONE}}, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ 'a'}, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ 'a'}}, |
}; |
for (size_t i = 0; i < arraysize(tests); ++i) { |
@@ -1066,106 +1687,142 @@ TEST_F(EventRewriterTest, TestRewriteDiamondKeyWithFlag) { |
// By default, F15 should work as Control. |
EXPECT_EQ(GetExpectedResultAsString( |
- ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN, ui::ET_KEY_PRESSED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_F15, ui::EF_NONE, ui::ET_KEY_PRESSED)); |
+ ui::ET_KEY_PRESSED, ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN, ui::DomKey::CONTROL, 0), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, |
+ ui::VKEY_F15, ui::DomCode::F15, |
+ ui::EF_NONE, ui::DomKey::F15, 0)); |
// Check that Control is applied to a subsequent key press. |
- EXPECT_EQ(GetExpectedResultAsString( |
- ui::VKEY_A, ui::EF_CONTROL_DOWN, ui::ET_KEY_PRESSED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_A, ui::EF_NONE, ui::ET_KEY_PRESSED)); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CHARACTER, 'a'), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, ui::EF_NONE, |
+ ui::DomKey::CHARACTER, 'a')); |
// Release F15 |
- EXPECT_EQ(GetExpectedResultAsString( |
- ui::VKEY_CONTROL, ui::EF_NONE, ui::ET_KEY_RELEASED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_F15, ui::EF_NONE, ui::ET_KEY_RELEASED)); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, ui::EF_NONE, |
+ ui::DomKey::CONTROL, 0), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED, |
+ ui::VKEY_F15, ui::DomCode::F15, |
+ ui::EF_NONE, ui::DomKey::F15, 0)); |
// Check that Control is no longer applied to a subsequent key press. |
- EXPECT_EQ( |
- GetExpectedResultAsString(ui::VKEY_A, ui::EF_NONE, ui::ET_KEY_PRESSED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_A, ui::EF_NONE, ui::ET_KEY_PRESSED)); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, ui::EF_NONE, |
+ ui::DomKey::CHARACTER, 'a'), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, ui::EF_NONE, |
+ ui::DomKey::CHARACTER, 'a')); |
IntegerPrefMember diamond; |
diamond.Init(prefs::kLanguageRemapDiamondKeyTo, &prefs); |
diamond.SetValue(chromeos::input_method::kVoidKey); |
- EXPECT_EQ(GetExpectedResultAsString( |
- ui::VKEY_UNKNOWN, ui::EF_NONE, ui::ET_KEY_PRESSED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_F15, ui::EF_NONE, ui::ET_KEY_PRESSED)); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_UNKNOWN, |
+ ui::DomCode::NONE, ui::EF_NONE, |
+ ui::DomKey::NONE, 0), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, |
+ ui::VKEY_F15, ui::DomCode::F15, |
+ ui::EF_NONE, ui::DomKey::F15, 0)); |
// Check that no modifier is applied to another key. |
- EXPECT_EQ( |
- GetExpectedResultAsString(ui::VKEY_A, ui::EF_NONE, ui::ET_KEY_PRESSED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_A, ui::EF_NONE, ui::ET_KEY_PRESSED)); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, ui::EF_NONE, |
+ ui::DomKey::CHARACTER, 'a'), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, ui::EF_NONE, |
+ ui::DomKey::CHARACTER, 'a')); |
diamond.SetValue(chromeos::input_method::kControlKey); |
EXPECT_EQ(GetExpectedResultAsString( |
- ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN, ui::ET_KEY_PRESSED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_F15, ui::EF_NONE, ui::ET_KEY_PRESSED)); |
+ ui::ET_KEY_PRESSED, ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
+ ui::EF_CONTROL_DOWN, ui::DomKey::CONTROL, 0), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, |
+ ui::VKEY_F15, ui::DomCode::F15, |
+ ui::EF_NONE, ui::DomKey::F15, 0)); |
// Check that Control is applied to a subsequent key press. |
- EXPECT_EQ(GetExpectedResultAsString( |
- ui::VKEY_A, ui::EF_CONTROL_DOWN, ui::ET_KEY_PRESSED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_A, ui::EF_NONE, ui::ET_KEY_PRESSED)); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CHARACTER, 'a'), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, ui::EF_NONE, |
+ ui::DomKey::CHARACTER, 'a')); |
// Release F15 |
- EXPECT_EQ(GetExpectedResultAsString( |
- ui::VKEY_CONTROL, ui::EF_NONE, ui::ET_KEY_RELEASED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_F15, ui::EF_NONE, ui::ET_KEY_RELEASED)); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, ui::EF_NONE, |
+ ui::DomKey::CONTROL, 0), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED, |
+ ui::VKEY_F15, ui::DomCode::F15, |
+ ui::EF_NONE, ui::DomKey::F15, 0)); |
// Check that Control is no longer applied to a subsequent key press. |
- EXPECT_EQ( |
- GetExpectedResultAsString(ui::VKEY_A, ui::EF_NONE, ui::ET_KEY_PRESSED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_A, ui::EF_NONE, ui::ET_KEY_PRESSED)); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, ui::EF_NONE, |
+ ui::DomKey::CHARACTER, 'a'), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, ui::EF_NONE, |
+ ui::DomKey::CHARACTER, 'a')); |
diamond.SetValue(chromeos::input_method::kAltKey); |
- EXPECT_EQ(GetExpectedResultAsString( |
- ui::VKEY_MENU, ui::EF_ALT_DOWN, ui::ET_KEY_PRESSED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_F15, ui::EF_NONE, ui::ET_KEY_PRESSED)); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_MENU, |
+ ui::DomCode::ALT_LEFT, ui::EF_ALT_DOWN, |
+ ui::DomKey::ALT, 0), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, |
+ ui::VKEY_F15, ui::DomCode::F15, |
+ ui::EF_NONE, ui::DomKey::F15, 0)); |
// Check that Alt is applied to a subsequent key press. |
- EXPECT_EQ(GetExpectedResultAsString( |
- ui::VKEY_A, ui::EF_ALT_DOWN, ui::ET_KEY_PRESSED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_A, ui::EF_NONE, ui::ET_KEY_PRESSED)); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, ui::EF_ALT_DOWN, |
+ ui::DomKey::CHARACTER, 'a'), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, ui::EF_NONE, |
+ ui::DomKey::CHARACTER, 'a')); |
// Release F15 |
- EXPECT_EQ(GetExpectedResultAsString( |
- ui::VKEY_MENU, ui::EF_NONE, ui::ET_KEY_RELEASED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_F15, ui::EF_NONE, ui::ET_KEY_RELEASED)); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_MENU, |
+ ui::DomCode::ALT_LEFT, ui::EF_NONE, |
+ ui::DomKey::ALT, 0), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED, |
+ ui::VKEY_F15, ui::DomCode::F15, |
+ ui::EF_NONE, ui::DomKey::F15, 0)); |
// Check that Alt is no longer applied to a subsequent key press. |
- EXPECT_EQ( |
- GetExpectedResultAsString(ui::VKEY_A, ui::EF_NONE, ui::ET_KEY_PRESSED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_A, ui::EF_NONE, ui::ET_KEY_PRESSED)); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, ui::EF_NONE, |
+ ui::DomKey::CHARACTER, 'a'), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, ui::EF_NONE, |
+ ui::DomKey::CHARACTER, 'a')); |
diamond.SetValue(chromeos::input_method::kCapsLockKey); |
- EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CAPITAL, |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, |
+ ui::DomCode::CAPS_LOCK, |
ui::EF_CAPS_LOCK_DOWN | ui::EF_MOD3_DOWN, |
- ui::ET_KEY_PRESSED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_F15, ui::EF_NONE, ui::ET_KEY_PRESSED)); |
+ ui::DomKey::CAPS_LOCK, 0), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, |
+ ui::VKEY_F15, ui::DomCode::F15, |
+ ui::EF_NONE, ui::DomKey::F15, 0)); |
// Check that Caps is applied to a subsequent key press. |
- EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_A, |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
ui::EF_CAPS_LOCK_DOWN | ui::EF_MOD3_DOWN, |
- ui::ET_KEY_PRESSED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_A, ui::EF_NONE, ui::ET_KEY_PRESSED)); |
+ ui::DomKey::CHARACTER, 'a'), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, ui::EF_NONE, |
+ ui::DomKey::CHARACTER, 'a')); |
// Release F15 |
- EXPECT_EQ(GetExpectedResultAsString( |
- ui::VKEY_CAPITAL, ui::EF_NONE, ui::ET_KEY_RELEASED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_F15, ui::EF_NONE, ui::ET_KEY_RELEASED)); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CAPITAL, |
+ ui::DomCode::CAPS_LOCK, ui::EF_NONE, |
+ ui::DomKey::CAPS_LOCK, 0), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED, |
+ ui::VKEY_F15, ui::DomCode::F15, |
+ ui::EF_NONE, ui::DomKey::F15, 0)); |
// Check that Control is no longer applied to a subsequent key press. |
- EXPECT_EQ( |
- GetExpectedResultAsString(ui::VKEY_A, ui::EF_NONE, ui::ET_KEY_PRESSED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_A, ui::EF_NONE, ui::ET_KEY_PRESSED)); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, ui::EF_NONE, |
+ ui::DomKey::CHARACTER, 'a'), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, ui::EF_NONE, |
+ ui::DomKey::CHARACTER, 'a')); |
*base::CommandLine::ForCurrentProcess() = original_cl; |
} |
@@ -1185,21 +1842,48 @@ TEST_F(EventRewriterTest, TestRewriteCapsLockToControl) { |
KeyTestCase tests[] = { |
// Press CapsLock+a. Confirm that Mod3Mask is rewritten to ControlMask. |
// On Chrome OS, CapsLock works as a Mod3 modifier. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_A, ui::EF_MOD3_DOWN}, |
- {ui::VKEY_A, ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_MOD3_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}}, |
// Press Control+CapsLock+a. Confirm that Mod3Mask is rewritten to |
// ControlMask |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_A, ui::EF_CONTROL_DOWN | ui::EF_MOD3_DOWN}, |
- {ui::VKEY_A, ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_CONTROL_DOWN | ui::EF_MOD3_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}}, |
// Press Alt+CapsLock+a. Confirm that Mod3Mask is rewritten to |
// ControlMask. |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_A, ui::EF_ALT_DOWN | ui::EF_MOD3_DOWN}, |
- {ui::VKEY_A, ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_ALT_DOWN | ui::EF_MOD3_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}, |
+ {ui::VKEY_A, |
+ ui::DomCode::KEY_A, |
+ ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CHARACTER, |
+ 'a'}}, |
}; |
for (size_t i = 0; i < arraysize(tests); ++i) { |
@@ -1223,10 +1907,12 @@ TEST_F(EventRewriterTest, TestRewriteCapsLockMod3InUse) { |
// Press CapsLock+a. Confirm that Mod3Mask is NOT rewritten to ControlMask |
// when Mod3Mask is already in use by the current XKB layout. |
- EXPECT_EQ( |
- GetExpectedResultAsString(ui::VKEY_A, ui::EF_NONE, ui::ET_KEY_PRESSED), |
- GetRewrittenEventAsString( |
- &rewriter, ui::VKEY_A, ui::EF_NONE, ui::ET_KEY_PRESSED)); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, ui::EF_NONE, |
+ ui::DomKey::CHARACTER, 'a'), |
+ GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, |
+ ui::DomCode::KEY_A, ui::EF_NONE, |
+ ui::DomKey::CHARACTER, 'a')); |
input_method_manager_mock_->set_mod3_used(false); |
} |
@@ -1241,99 +1927,270 @@ TEST_F(EventRewriterTest, TestRewriteExtendedKeys) { |
KeyTestCase tests[] = { |
// Alt+Backspace -> Delete |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_BACK, ui::EF_ALT_DOWN}, |
- {ui::VKEY_DELETE, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_BACK, |
+ ui::DomCode::BACKSPACE, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::BACKSPACE, |
+ 0}, |
+ {ui::VKEY_DELETE, ui::DomCode::DEL, ui::EF_NONE, ui::DomKey::DEL, 0}}, |
// Control+Alt+Backspace -> Control+Delete |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_BACK, ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_DELETE, ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_BACK, |
+ ui::DomCode::BACKSPACE, |
+ ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, |
+ ui::DomKey::BACKSPACE, |
+ 0}, |
+ {ui::VKEY_DELETE, |
+ ui::DomCode::DEL, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::DEL, |
+ 0}}, |
// Search+Alt+Backspace -> Alt+Backspace |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_BACK, ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN}, |
- {ui::VKEY_BACK, ui::EF_ALT_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_BACK, |
+ ui::DomCode::BACKSPACE, |
+ ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, |
+ ui::DomKey::BACKSPACE, |
+ 0}, |
+ {ui::VKEY_BACK, |
+ ui::DomCode::BACKSPACE, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::BACKSPACE, |
+ 0}}, |
// Search+Control+Alt+Backspace -> Control+Alt+Backspace |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_BACK, |
+ ui::DomCode::BACKSPACE, |
+ ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, |
+ ui::DomKey::BACKSPACE, |
+ 0}, |
{ui::VKEY_BACK, |
- ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_BACK, ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN}}, |
+ ui::DomCode::BACKSPACE, |
+ ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, |
+ ui::DomKey::BACKSPACE, |
+ 0}}, |
// Alt+Up -> Prior |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_UP, ui::EF_ALT_DOWN}, |
- {ui::VKEY_PRIOR, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_UP, |
+ ui::DomCode::ARROW_UP, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::ARROW_UP, |
+ 0}, |
+ {ui::VKEY_PRIOR, |
+ ui::DomCode::PAGE_UP, |
+ ui::EF_NONE, |
+ ui::DomKey::PAGE_UP, |
+ 0}}, |
// Alt+Down -> Next |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_DOWN, ui::EF_ALT_DOWN}, |
- {ui::VKEY_NEXT, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_DOWN, |
+ ui::DomCode::ARROW_DOWN, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::ARROW_DOWN, |
+ 0}, |
+ {ui::VKEY_NEXT, |
+ ui::DomCode::PAGE_DOWN, |
+ ui::EF_NONE, |
+ ui::DomKey::PAGE_DOWN, |
+ 0}}, |
// Ctrl+Alt+Up -> Home |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_UP, ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_HOME, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_UP, |
+ ui::DomCode::ARROW_UP, |
+ ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, |
+ ui::DomKey::ARROW_UP, |
+ 0}, |
+ {ui::VKEY_HOME, ui::DomCode::HOME, ui::EF_NONE, ui::DomKey::HOME, 0}}, |
// Ctrl+Alt+Down -> End |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_DOWN, ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_END, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_DOWN, |
+ ui::DomCode::ARROW_DOWN, |
+ ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, |
+ ui::DomKey::ARROW_DOWN, |
+ 0}, |
+ {ui::VKEY_END, ui::DomCode::END, ui::EF_NONE, ui::DomKey::END, 0}}, |
// Search+Alt+Up -> Alt+Up |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_UP, ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN}, |
- {ui::VKEY_UP, ui::EF_ALT_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_UP, |
+ ui::DomCode::ARROW_UP, |
+ ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, |
+ ui::DomKey::ARROW_UP, |
+ 0}, |
+ {ui::VKEY_UP, |
+ ui::DomCode::ARROW_UP, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::ARROW_UP, |
+ 0}}, |
// Search+Alt+Down -> Alt+Down |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_DOWN, ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN}, |
- {ui::VKEY_DOWN, ui::EF_ALT_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_DOWN, |
+ ui::DomCode::ARROW_DOWN, |
+ ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, |
+ ui::DomKey::ARROW_DOWN, |
+ 0}, |
+ {ui::VKEY_DOWN, |
+ ui::DomCode::ARROW_DOWN, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::ARROW_DOWN, |
+ 0}}, |
// Search+Ctrl+Alt+Up -> Search+Ctrl+Alt+Up |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_UP, |
+ ui::DomCode::ARROW_UP, |
+ ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, |
+ ui::DomKey::ARROW_UP, |
+ 0}, |
{ui::VKEY_UP, |
- ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_UP, ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN}}, |
+ ui::DomCode::ARROW_UP, |
+ ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, |
+ ui::DomKey::ARROW_UP, |
+ 0}}, |
// Search+Ctrl+Alt+Down -> Ctrl+Alt+Down |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_DOWN, |
+ ui::DomCode::ARROW_DOWN, |
+ ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, |
+ ui::DomKey::ARROW_DOWN, |
+ 0}, |
{ui::VKEY_DOWN, |
- ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_DOWN, ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN}}, |
+ ui::DomCode::ARROW_DOWN, |
+ ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, |
+ ui::DomKey::ARROW_DOWN, |
+ 0}}, |
// Period -> Period |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_OEM_PERIOD, ui::EF_NONE}, |
- {ui::VKEY_OEM_PERIOD, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_OEM_PERIOD, |
+ ui::DomCode::PERIOD, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '.'}, |
+ {ui::VKEY_OEM_PERIOD, |
+ ui::DomCode::PERIOD, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '.'}}, |
// Search+Backspace -> Delete |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_BACK, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_DELETE, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_BACK, |
+ ui::DomCode::BACKSPACE, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::BACKSPACE, |
+ 0}, |
+ {ui::VKEY_DELETE, ui::DomCode::DEL, ui::EF_NONE, ui::DomKey::DEL, 0}}, |
// Search+Up -> Prior |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_UP, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_PRIOR, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_UP, |
+ ui::DomCode::ARROW_UP, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::ARROW_UP, |
+ 0}, |
+ {ui::VKEY_PRIOR, |
+ ui::DomCode::PAGE_UP, |
+ ui::EF_NONE, |
+ ui::DomKey::PAGE_UP, |
+ 0}}, |
// Search+Down -> Next |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_DOWN, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_NEXT, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_DOWN, |
+ ui::DomCode::ARROW_DOWN, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::ARROW_DOWN, |
+ 0}, |
+ {ui::VKEY_NEXT, |
+ ui::DomCode::PAGE_DOWN, |
+ ui::EF_NONE, |
+ ui::DomKey::PAGE_DOWN, |
+ 0}}, |
// Search+Left -> Home |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_LEFT, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_HOME, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_LEFT, |
+ ui::DomCode::ARROW_LEFT, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::ARROW_LEFT, |
+ 0}, |
+ {ui::VKEY_HOME, ui::DomCode::HOME, ui::EF_NONE, ui::DomKey::HOME, 0}}, |
// Control+Search+Left -> Home |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_LEFT, ui::EF_COMMAND_DOWN | ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_HOME, ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_LEFT, |
+ ui::DomCode::ARROW_LEFT, |
+ ui::EF_COMMAND_DOWN | ui::EF_CONTROL_DOWN, |
+ ui::DomKey::ARROW_LEFT, |
+ 0}, |
+ {ui::VKEY_HOME, |
+ ui::DomCode::HOME, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::HOME, |
+ 0}}, |
// Search+Right -> End |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_RIGHT, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_END, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_RIGHT, |
+ ui::DomCode::ARROW_RIGHT, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::ARROW_RIGHT, |
+ 0}, |
+ {ui::VKEY_END, ui::DomCode::END, ui::EF_NONE, ui::DomKey::END, 0}}, |
// Control+Search+Right -> End |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_RIGHT, ui::EF_COMMAND_DOWN | ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_END, ui::EF_CONTROL_DOWN}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_RIGHT, |
+ ui::DomCode::ARROW_RIGHT, |
+ ui::EF_COMMAND_DOWN | ui::EF_CONTROL_DOWN, |
+ ui::DomKey::ARROW_RIGHT, |
+ 0}, |
+ {ui::VKEY_END, |
+ ui::DomCode::END, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::END, |
+ 0}}, |
// Search+Period -> Insert |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_OEM_PERIOD, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_INSERT, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_OEM_PERIOD, |
+ ui::DomCode::PERIOD, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '.'}, |
+ {ui::VKEY_INSERT, |
+ ui::DomCode::INSERT, |
+ ui::EF_NONE, |
+ ui::DomKey::INSERT, |
+ 0}}, |
// Control+Search+Period -> Control+Insert |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_OEM_PERIOD, ui::EF_COMMAND_DOWN | ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_INSERT, ui::EF_CONTROL_DOWN}}}; |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_OEM_PERIOD, |
+ ui::DomCode::PERIOD, |
+ ui::EF_COMMAND_DOWN | ui::EF_CONTROL_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '.'}, |
+ {ui::VKEY_INSERT, |
+ ui::DomCode::INSERT, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::INSERT, |
+ 0}}}; |
for (size_t i = 0; i < arraysize(tests); ++i) { |
SCOPED_TRACE(i); |
@@ -1348,319 +2205,614 @@ TEST_F(EventRewriterTest, TestRewriteFunctionKeys) { |
rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); |
rewriter.set_pref_service_for_testing(&prefs); |
- FunctionKeyTestCase tests[] = { |
+ KeyTestCase tests[] = { |
// F1 -> Back |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F1, ui::EF_NONE}, |
- {ui::VKEY_BROWSER_BACK, ui::EF_NONE}, |
- {ui::VKEY_BROWSER_BACK, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F1, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_BROWSER_BACK, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_BROWSER_BACK, ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F1, ui::EF_ALT_DOWN}, |
- {ui::VKEY_BROWSER_BACK, ui::EF_ALT_DOWN}, |
- {ui::VKEY_BROWSER_BACK, ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F1, ui::DomCode::F1, ui::EF_NONE, ui::DomKey::F1, 0}, |
+ {ui::VKEY_BROWSER_BACK, |
+ ui::DomCode::BROWSER_BACK, |
+ ui::EF_NONE, |
+ ui::DomKey::BROWSER_BACK, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F1, ui::DomCode::F1, ui::EF_CONTROL_DOWN, ui::DomKey::F1, 0}, |
+ {ui::VKEY_BROWSER_BACK, |
+ ui::DomCode::BROWSER_BACK, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::BROWSER_BACK, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F1, ui::DomCode::F1, ui::EF_ALT_DOWN, ui::DomKey::F1, 0}, |
+ {ui::VKEY_BROWSER_BACK, |
+ ui::DomCode::BROWSER_BACK, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::BROWSER_BACK, |
+ 0}}, |
// F2 -> Forward |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F2, ui::EF_NONE}, |
- {ui::VKEY_BROWSER_FORWARD, ui::EF_NONE}, |
- {ui::VKEY_BROWSER_FORWARD, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F2, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_BROWSER_FORWARD, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_BROWSER_FORWARD, ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F2, ui::EF_ALT_DOWN}, |
- {ui::VKEY_BROWSER_FORWARD, ui::EF_ALT_DOWN}, |
- {ui::VKEY_BROWSER_FORWARD, ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F2, ui::DomCode::F2, ui::EF_NONE, ui::DomKey::F2, 0}, |
+ {ui::VKEY_BROWSER_FORWARD, |
+ ui::DomCode::BROWSER_FORWARD, |
+ ui::EF_NONE, |
+ ui::DomKey::BROWSER_FORWARD, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F2, ui::DomCode::F2, ui::EF_CONTROL_DOWN, ui::DomKey::F2, 0}, |
+ {ui::VKEY_BROWSER_FORWARD, |
+ ui::DomCode::BROWSER_FORWARD, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::BROWSER_FORWARD, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F2, ui::DomCode::F2, ui::EF_ALT_DOWN, ui::DomKey::F2, 0}, |
+ {ui::VKEY_BROWSER_FORWARD, |
+ ui::DomCode::BROWSER_FORWARD, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::BROWSER_FORWARD, |
+ 0}}, |
// F3 -> Refresh |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F3, ui::EF_NONE}, |
- {ui::VKEY_BROWSER_REFRESH, ui::EF_NONE}, |
- {ui::VKEY_BROWSER_REFRESH, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F3, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_BROWSER_REFRESH, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_BROWSER_REFRESH, ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F3, ui::EF_ALT_DOWN}, |
- {ui::VKEY_BROWSER_REFRESH, ui::EF_ALT_DOWN}, |
- {ui::VKEY_BROWSER_REFRESH, ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F3, ui::DomCode::F3, ui::EF_NONE, ui::DomKey::F3, 0}, |
+ {ui::VKEY_BROWSER_REFRESH, |
+ ui::DomCode::BROWSER_REFRESH, |
+ ui::EF_NONE, |
+ ui::DomKey::BROWSER_REFRESH, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F3, ui::DomCode::F3, ui::EF_CONTROL_DOWN, ui::DomKey::F3, 0}, |
+ {ui::VKEY_BROWSER_REFRESH, |
+ ui::DomCode::BROWSER_REFRESH, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::BROWSER_REFRESH, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F3, ui::DomCode::F3, ui::EF_ALT_DOWN, ui::DomKey::F3, 0}, |
+ {ui::VKEY_BROWSER_REFRESH, |
+ ui::DomCode::BROWSER_REFRESH, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::BROWSER_REFRESH, |
+ 0}}, |
// F4 -> Launch App 2 |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F4, ui::EF_NONE}, |
- {ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_NONE}, |
- {ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F4, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F4, ui::EF_ALT_DOWN}, |
- {ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_ALT_DOWN}, |
- {ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F4, ui::DomCode::F4, ui::EF_NONE, ui::DomKey::F4, 0}, |
+ {ui::VKEY_MEDIA_LAUNCH_APP2, |
+ ui::DomCode::ZOOM_TOGGLE, |
+ ui::EF_NONE, |
+ ui::DomKey::ZOOM_TOGGLE, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F4, ui::DomCode::F4, ui::EF_CONTROL_DOWN, ui::DomKey::F4, 0}, |
+ {ui::VKEY_MEDIA_LAUNCH_APP2, |
+ ui::DomCode::ZOOM_TOGGLE, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::ZOOM_TOGGLE, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F4, ui::DomCode::F4, ui::EF_ALT_DOWN, ui::DomKey::F4, 0}, |
+ {ui::VKEY_MEDIA_LAUNCH_APP2, |
+ ui::DomCode::ZOOM_TOGGLE, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::ZOOM_TOGGLE, |
+ 0}}, |
// F5 -> Launch App 1 |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F5, ui::EF_NONE}, |
- {ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_NONE}, |
- {ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F5, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F5, ui::EF_ALT_DOWN}, |
- {ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_ALT_DOWN}, |
- {ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F5, ui::DomCode::F5, ui::EF_NONE, ui::DomKey::F5, 0}, |
+ {ui::VKEY_MEDIA_LAUNCH_APP1, |
+ ui::DomCode::SELECT_TASK, |
+ ui::EF_NONE, |
+ ui::DomKey::LAUNCH_MY_COMPUTER, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F5, ui::DomCode::F5, ui::EF_CONTROL_DOWN, ui::DomKey::F5, 0}, |
+ {ui::VKEY_MEDIA_LAUNCH_APP1, |
+ ui::DomCode::SELECT_TASK, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::LAUNCH_MY_COMPUTER, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F5, ui::DomCode::F5, ui::EF_ALT_DOWN, ui::DomKey::F5, 0}, |
+ {ui::VKEY_MEDIA_LAUNCH_APP1, |
+ ui::DomCode::SELECT_TASK, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::LAUNCH_MY_COMPUTER, |
+ 0}}, |
// F6 -> Brightness down |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F6, ui::EF_NONE}, |
- {ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE}, |
- {ui::VKEY_BRIGHTNESS_DOWN, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F6, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_BRIGHTNESS_DOWN, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_BRIGHTNESS_DOWN, ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F6, ui::EF_ALT_DOWN}, |
- {ui::VKEY_BRIGHTNESS_DOWN, ui::EF_ALT_DOWN}, |
- {ui::VKEY_BRIGHTNESS_DOWN, ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F6, ui::DomCode::F6, ui::EF_NONE, ui::DomKey::F6, 0}, |
+ {ui::VKEY_BRIGHTNESS_DOWN, |
+ ui::DomCode::BRIGHTNESS_DOWN, |
+ ui::EF_NONE, |
+ ui::DomKey::BRIGHTNESS_DOWN, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F6, ui::DomCode::F6, ui::EF_CONTROL_DOWN, ui::DomKey::F6, 0}, |
+ {ui::VKEY_BRIGHTNESS_DOWN, |
+ ui::DomCode::BRIGHTNESS_DOWN, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::BRIGHTNESS_DOWN, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F6, ui::DomCode::F6, ui::EF_ALT_DOWN, ui::DomKey::F6, 0}, |
+ {ui::VKEY_BRIGHTNESS_DOWN, |
+ ui::DomCode::BRIGHTNESS_DOWN, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::BRIGHTNESS_DOWN, |
+ 0}}, |
// F7 -> Brightness up |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F7, ui::EF_NONE}, |
- {ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE}, |
- {ui::VKEY_BRIGHTNESS_UP, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F7, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_BRIGHTNESS_UP, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_BRIGHTNESS_UP, ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F7, ui::EF_ALT_DOWN}, |
- {ui::VKEY_BRIGHTNESS_UP, ui::EF_ALT_DOWN}, |
- {ui::VKEY_BRIGHTNESS_UP, ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F7, ui::DomCode::F7, ui::EF_NONE, ui::DomKey::F7, 0}, |
+ {ui::VKEY_BRIGHTNESS_UP, |
+ ui::DomCode::BRIGHTNESS_UP, |
+ ui::EF_NONE, |
+ ui::DomKey::BRIGHTNESS_UP, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F7, ui::DomCode::F7, ui::EF_CONTROL_DOWN, ui::DomKey::F7, 0}, |
+ {ui::VKEY_BRIGHTNESS_UP, |
+ ui::DomCode::BRIGHTNESS_UP, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::BRIGHTNESS_UP, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F7, ui::DomCode::F7, ui::EF_ALT_DOWN, ui::DomKey::F7, 0}, |
+ {ui::VKEY_BRIGHTNESS_UP, |
+ ui::DomCode::BRIGHTNESS_UP, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::BRIGHTNESS_UP, |
+ 0}}, |
// F8 -> Volume Mute |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F8, ui::EF_NONE}, |
- {ui::VKEY_VOLUME_MUTE, ui::EF_NONE}, |
- {ui::VKEY_VOLUME_MUTE, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F8, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_VOLUME_MUTE, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_VOLUME_MUTE, ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F8, ui::EF_ALT_DOWN}, |
- {ui::VKEY_VOLUME_MUTE, ui::EF_ALT_DOWN}, |
- {ui::VKEY_VOLUME_MUTE, ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F8, ui::DomCode::F8, ui::EF_NONE, ui::DomKey::F8, 0}, |
+ {ui::VKEY_VOLUME_MUTE, |
+ ui::DomCode::VOLUME_MUTE, |
+ ui::EF_NONE, |
+ ui::DomKey::VOLUME_MUTE, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F8, ui::DomCode::F8, ui::EF_CONTROL_DOWN, ui::DomKey::F8, 0}, |
+ {ui::VKEY_VOLUME_MUTE, |
+ ui::DomCode::VOLUME_MUTE, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::VOLUME_MUTE, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F8, ui::DomCode::F8, ui::EF_ALT_DOWN, ui::DomKey::F8, 0}, |
+ {ui::VKEY_VOLUME_MUTE, |
+ ui::DomCode::VOLUME_MUTE, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::VOLUME_MUTE, |
+ 0}}, |
// F9 -> Volume Down |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F9, ui::EF_NONE}, |
- {ui::VKEY_VOLUME_DOWN, ui::EF_NONE}, |
- {ui::VKEY_VOLUME_DOWN, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F9, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_VOLUME_DOWN, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_VOLUME_DOWN, ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F9, ui::EF_ALT_DOWN}, |
- {ui::VKEY_VOLUME_DOWN, ui::EF_ALT_DOWN}, |
- {ui::VKEY_VOLUME_DOWN, ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F9, ui::DomCode::F9, ui::EF_NONE, ui::DomKey::F9, 0}, |
+ {ui::VKEY_VOLUME_DOWN, |
+ ui::DomCode::VOLUME_DOWN, |
+ ui::EF_NONE, |
+ ui::DomKey::VOLUME_DOWN, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F9, ui::DomCode::F9, ui::EF_CONTROL_DOWN, ui::DomKey::F9, 0}, |
+ {ui::VKEY_VOLUME_DOWN, |
+ ui::DomCode::VOLUME_DOWN, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::VOLUME_DOWN, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F9, ui::DomCode::F9, ui::EF_ALT_DOWN, ui::DomKey::F9, 0}, |
+ {ui::VKEY_VOLUME_DOWN, |
+ ui::DomCode::VOLUME_DOWN, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::VOLUME_DOWN, |
+ 0}}, |
// F10 -> Volume Up |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F10, ui::EF_NONE}, |
- {ui::VKEY_VOLUME_UP, ui::EF_NONE}, |
- {ui::VKEY_VOLUME_UP, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F10, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_VOLUME_UP, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_VOLUME_UP, ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F10, ui::EF_ALT_DOWN}, |
- {ui::VKEY_VOLUME_UP, ui::EF_ALT_DOWN}, |
- {ui::VKEY_VOLUME_UP, ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F10, ui::DomCode::F10, ui::EF_NONE, ui::DomKey::F10, 0}, |
+ {ui::VKEY_VOLUME_UP, |
+ ui::DomCode::VOLUME_UP, |
+ ui::EF_NONE, |
+ ui::DomKey::VOLUME_UP, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F10, |
+ ui::DomCode::F10, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::F10, |
+ 0}, |
+ {ui::VKEY_VOLUME_UP, |
+ ui::DomCode::VOLUME_UP, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::VOLUME_UP, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F10, ui::DomCode::F10, ui::EF_ALT_DOWN, ui::DomKey::F10, 0}, |
+ {ui::VKEY_VOLUME_UP, |
+ ui::DomCode::VOLUME_UP, |
+ ui::EF_ALT_DOWN, |
+ ui::DomKey::VOLUME_UP, |
+ 0}}, |
// F11 -> F11 |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F11, ui::EF_NONE}, |
- {ui::VKEY_F11, ui::EF_NONE}, |
- {ui::VKEY_F11, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F11, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_F11, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_F11, ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F11, ui::EF_ALT_DOWN}, |
- {ui::VKEY_F11, ui::EF_ALT_DOWN}, |
- {ui::VKEY_F11, ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F11, ui::DomCode::F11, ui::EF_NONE, ui::DomKey::F11, 0}, |
+ {ui::VKEY_F11, ui::DomCode::F11, ui::EF_NONE, ui::DomKey::F11, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F11, |
+ ui::DomCode::F11, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::F11, |
+ 0}, |
+ {ui::VKEY_F11, |
+ ui::DomCode::F11, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::F11, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F11, ui::DomCode::F11, ui::EF_ALT_DOWN, ui::DomKey::F11, 0}, |
+ {ui::VKEY_F11, ui::DomCode::F11, ui::EF_ALT_DOWN, ui::DomKey::F11, 0}}, |
// F12 -> F12 |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F12, ui::EF_NONE}, |
- {ui::VKEY_F12, ui::EF_NONE}, |
- {ui::VKEY_F12, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F12, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_F12, ui::EF_CONTROL_DOWN}, |
- {ui::VKEY_F12, ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F12, ui::EF_ALT_DOWN}, |
- {ui::VKEY_F12, ui::EF_ALT_DOWN}, |
- {ui::VKEY_F12, ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F12, ui::DomCode::F12, ui::EF_NONE, ui::DomKey::F12, 0}, |
+ {ui::VKEY_F12, ui::DomCode::F12, ui::EF_NONE, ui::DomKey::F12, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F12, |
+ ui::DomCode::F12, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::F12, |
+ 0}, |
+ {ui::VKEY_F12, |
+ ui::DomCode::F12, |
+ ui::EF_CONTROL_DOWN, |
+ ui::DomKey::F12, |
+ 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F12, ui::DomCode::F12, ui::EF_ALT_DOWN, ui::DomKey::F12, 0}, |
+ {ui::VKEY_F12, ui::DomCode::F12, ui::EF_ALT_DOWN, ui::DomKey::F12, 0}}, |
// The number row should not be rewritten without Search key. |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_1, ui::EF_NONE}, |
- {ui::VKEY_1, ui::EF_NONE}, |
- {ui::VKEY_1, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_2, ui::EF_NONE}, |
- {ui::VKEY_2, ui::EF_NONE}, |
- {ui::VKEY_2, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_3, ui::EF_NONE}, |
- {ui::VKEY_3, ui::EF_NONE}, |
- {ui::VKEY_3, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_4, ui::EF_NONE}, |
- {ui::VKEY_4, ui::EF_NONE}, |
- {ui::VKEY_4, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_5, ui::EF_NONE}, |
- {ui::VKEY_5, ui::EF_NONE}, |
- {ui::VKEY_5, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_6, ui::EF_NONE}, |
- {ui::VKEY_6, ui::EF_NONE}, |
- {ui::VKEY_6, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_7, ui::EF_NONE}, |
- {ui::VKEY_7, ui::EF_NONE}, |
- {ui::VKEY_7, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_8, ui::EF_NONE}, |
- {ui::VKEY_8, ui::EF_NONE}, |
- {ui::VKEY_8, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_9, ui::EF_NONE}, |
- {ui::VKEY_9, ui::EF_NONE}, |
- {ui::VKEY_9, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_0, ui::EF_NONE}, |
- {ui::VKEY_0, ui::EF_NONE}, |
- {ui::VKEY_0, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_OEM_MINUS, ui::EF_NONE}, |
- {ui::VKEY_OEM_MINUS, ui::EF_NONE}, |
- {ui::VKEY_OEM_MINUS, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_OEM_PLUS, ui::EF_NONE}, |
- {ui::VKEY_OEM_PLUS, ui::EF_NONE}, |
- {ui::VKEY_OEM_PLUS, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_1, |
+ ui::DomCode::DIGIT1, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '1'}, |
+ {ui::VKEY_1, |
+ ui::DomCode::DIGIT1, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '1'}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_2, |
+ ui::DomCode::DIGIT2, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '2'}, |
+ {ui::VKEY_2, |
+ ui::DomCode::DIGIT2, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '2'}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_3, |
+ ui::DomCode::DIGIT3, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '3'}, |
+ {ui::VKEY_3, |
+ ui::DomCode::DIGIT3, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '3'}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_4, |
+ ui::DomCode::DIGIT4, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '4'}, |
+ {ui::VKEY_4, |
+ ui::DomCode::DIGIT4, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '4'}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_5, |
+ ui::DomCode::DIGIT5, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '5'}, |
+ {ui::VKEY_5, |
+ ui::DomCode::DIGIT5, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '5'}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_6, |
+ ui::DomCode::DIGIT6, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '6'}, |
+ {ui::VKEY_6, |
+ ui::DomCode::DIGIT6, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '6'}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_7, |
+ ui::DomCode::DIGIT7, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '7'}, |
+ {ui::VKEY_7, |
+ ui::DomCode::DIGIT7, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '7'}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_8, |
+ ui::DomCode::DIGIT8, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '8'}, |
+ {ui::VKEY_8, |
+ ui::DomCode::DIGIT8, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '8'}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_9, |
+ ui::DomCode::DIGIT9, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '9'}, |
+ {ui::VKEY_9, |
+ ui::DomCode::DIGIT9, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '9'}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_0, |
+ ui::DomCode::DIGIT0, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '0'}, |
+ {ui::VKEY_0, |
+ ui::DomCode::DIGIT0, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '0'}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_OEM_MINUS, |
+ ui::DomCode::MINUS, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '-'}, |
+ {ui::VKEY_OEM_MINUS, |
+ ui::DomCode::MINUS, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '-'}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_OEM_PLUS, |
+ ui::DomCode::EQUAL, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '='}, |
+ {ui::VKEY_OEM_PLUS, |
+ ui::DomCode::EQUAL, |
+ ui::EF_NONE, |
+ ui::DomKey::CHARACTER, |
+ '='}}, |
// The number row should be rewritten as the F<number> row with Search |
// key. |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_1, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F1, ui::EF_NONE}, |
- {ui::VKEY_F1, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_2, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F2, ui::EF_NONE}, |
- {ui::VKEY_F2, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_3, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F3, ui::EF_NONE}, |
- {ui::VKEY_F3, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_4, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F4, ui::EF_NONE}, |
- {ui::VKEY_F4, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_5, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F5, ui::EF_NONE}, |
- {ui::VKEY_F5, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_6, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F6, ui::EF_NONE}, |
- {ui::VKEY_F6, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_7, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F7, ui::EF_NONE}, |
- {ui::VKEY_F7, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_8, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F8, ui::EF_NONE}, |
- {ui::VKEY_F8, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_9, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F9, ui::EF_NONE}, |
- {ui::VKEY_F9, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_0, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F10, ui::EF_NONE}, |
- {ui::VKEY_F10, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_OEM_MINUS, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F11, ui::EF_NONE}, |
- {ui::VKEY_F11, ui::EF_NONE}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_OEM_PLUS, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F12, ui::EF_NONE}, |
- {ui::VKEY_F12, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_1, |
+ ui::DomCode::DIGIT1, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '1'}, |
+ {ui::VKEY_F1, ui::DomCode::F1, ui::EF_NONE, ui::DomKey::F1, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_2, |
+ ui::DomCode::DIGIT2, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '2'}, |
+ {ui::VKEY_F2, ui::DomCode::F2, ui::EF_NONE, ui::DomKey::F2, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_3, |
+ ui::DomCode::DIGIT3, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '3'}, |
+ {ui::VKEY_F3, ui::DomCode::F3, ui::EF_NONE, ui::DomKey::F3, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_4, |
+ ui::DomCode::DIGIT4, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '4'}, |
+ {ui::VKEY_F4, ui::DomCode::F4, ui::EF_NONE, ui::DomKey::F4, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_5, |
+ ui::DomCode::DIGIT5, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '5'}, |
+ {ui::VKEY_F5, ui::DomCode::F5, ui::EF_NONE, ui::DomKey::F5, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_6, |
+ ui::DomCode::DIGIT6, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '6'}, |
+ {ui::VKEY_F6, ui::DomCode::F6, ui::EF_NONE, ui::DomKey::F6, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_7, |
+ ui::DomCode::DIGIT7, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '7'}, |
+ {ui::VKEY_F7, ui::DomCode::F7, ui::EF_NONE, ui::DomKey::F7, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_8, |
+ ui::DomCode::DIGIT8, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '8'}, |
+ {ui::VKEY_F8, ui::DomCode::F8, ui::EF_NONE, ui::DomKey::F8, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_9, |
+ ui::DomCode::DIGIT9, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '9'}, |
+ {ui::VKEY_F9, ui::DomCode::F9, ui::EF_NONE, ui::DomKey::F9, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_0, |
+ ui::DomCode::DIGIT0, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '0'}, |
+ {ui::VKEY_F10, ui::DomCode::F10, ui::EF_NONE, ui::DomKey::F10, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_OEM_MINUS, |
+ ui::DomCode::MINUS, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '-'}, |
+ {ui::VKEY_F11, ui::DomCode::F11, ui::EF_NONE, ui::DomKey::F11, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_OEM_PLUS, |
+ ui::DomCode::EQUAL, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::CHARACTER, |
+ '='}, |
+ {ui::VKEY_F12, ui::DomCode::F12, ui::EF_NONE, ui::DomKey::F12, 0}}, |
// The function keys should not be rewritten with Search key pressed. |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F1, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F1, ui::EF_NONE}, |
- {ui::VKEY_F1, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F2, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F2, ui::EF_NONE}, |
- {ui::VKEY_F2, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F3, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F3, ui::EF_NONE}, |
- {ui::VKEY_F3, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F4, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F4, ui::EF_NONE}, |
- {ui::VKEY_F4, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F5, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F5, ui::EF_NONE}, |
- {ui::VKEY_F5, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F6, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F6, ui::EF_NONE}, |
- {ui::VKEY_F6, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F7, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F7, ui::EF_NONE}, |
- {ui::VKEY_F7, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F8, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F8, ui::EF_NONE}, |
- {ui::VKEY_F8, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F9, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F9, ui::EF_NONE}, |
- {ui::VKEY_F9, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F10, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F10, ui::EF_NONE}, |
- {ui::VKEY_F10, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F11, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F11, ui::EF_NONE}, |
- {ui::VKEY_F11, ui::EF_FUNCTION_KEY}}, |
- {ui::ET_KEY_PRESSED, |
- {ui::VKEY_F12, ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_F12, ui::EF_NONE}, |
- {ui::VKEY_F12, ui::EF_FUNCTION_KEY}}, |
- }; |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F1, ui::DomCode::F1, ui::EF_COMMAND_DOWN, ui::DomKey::F1, 0}, |
+ {ui::VKEY_F1, ui::DomCode::F1, ui::EF_NONE, ui::DomKey::F1, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F2, ui::DomCode::F2, ui::EF_COMMAND_DOWN, ui::DomKey::F2, 0}, |
+ {ui::VKEY_F2, ui::DomCode::F2, ui::EF_NONE, ui::DomKey::F2, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F3, ui::DomCode::F3, ui::EF_COMMAND_DOWN, ui::DomKey::F3, 0}, |
+ {ui::VKEY_F3, ui::DomCode::F3, ui::EF_NONE, ui::DomKey::F3, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F4, ui::DomCode::F4, ui::EF_COMMAND_DOWN, ui::DomKey::F4, 0}, |
+ {ui::VKEY_F4, ui::DomCode::F4, ui::EF_NONE, ui::DomKey::F4, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F5, ui::DomCode::F5, ui::EF_COMMAND_DOWN, ui::DomKey::F5, 0}, |
+ {ui::VKEY_F5, ui::DomCode::F5, ui::EF_NONE, ui::DomKey::F5, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F6, ui::DomCode::F6, ui::EF_COMMAND_DOWN, ui::DomKey::F6, 0}, |
+ {ui::VKEY_F6, ui::DomCode::F6, ui::EF_NONE, ui::DomKey::F6, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F7, ui::DomCode::F7, ui::EF_COMMAND_DOWN, ui::DomKey::F7, 0}, |
+ {ui::VKEY_F7, ui::DomCode::F7, ui::EF_NONE, ui::DomKey::F7, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F8, ui::DomCode::F8, ui::EF_COMMAND_DOWN, ui::DomKey::F8, 0}, |
+ {ui::VKEY_F8, ui::DomCode::F8, ui::EF_NONE, ui::DomKey::F8, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F9, ui::DomCode::F9, ui::EF_COMMAND_DOWN, ui::DomKey::F9, 0}, |
+ {ui::VKEY_F9, ui::DomCode::F9, ui::EF_NONE, ui::DomKey::F9, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F10, |
+ ui::DomCode::F10, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::F10, |
+ 0}, |
+ {ui::VKEY_F10, ui::DomCode::F10, ui::EF_NONE, ui::DomKey::F10, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F11, |
+ ui::DomCode::F11, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::F11, |
+ 0}, |
+ {ui::VKEY_F11, ui::DomCode::F11, ui::EF_NONE, ui::DomKey::F11, 0}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_F12, |
+ ui::DomCode::F12, |
+ ui::EF_COMMAND_DOWN, |
+ ui::DomKey::F12, |
+ 0}, |
+ {ui::VKEY_F12, ui::DomCode::F12, ui::EF_NONE, ui::DomKey::F12, 0}}}; |
for (size_t i = 0; i < arraysize(tests); ++i) { |
SCOPED_TRACE(i); |
- CheckFunctionKeyTestCase(&rewriter, tests[i]); |
+ CheckKeyTestCase(&rewriter, tests[i]); |
} |
} |
@@ -1683,15 +2835,24 @@ TEST_F(EventRewriterTest, TestRewriteExtendedKeysWithSearchRemapped) { |
KeyTestCase tests[] = { |
// Alt+Search+Down -> End |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
- {ui::VKEY_DOWN, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_END, ui::EF_NONE}}, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
+ {ui::VKEY_DOWN, |
+ ui::DomCode::ARROW_DOWN, |
+ ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, |
+ ui::DomKey::ARROW_DOWN, |
+ 0}, |
+ {ui::VKEY_END, ui::DomCode::END, ui::EF_NONE, ui::DomKey::END, 0}}, |
// Shift+Alt+Search+Down -> Shift+End |
- {KeyTestCase::TEST_ALL, ui::ET_KEY_PRESSED, |
+ {KeyTestCase::TEST_ALL, |
+ ui::ET_KEY_PRESSED, |
{ui::VKEY_DOWN, |
- ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN}, |
- {ui::VKEY_END, ui::EF_SHIFT_DOWN}}, |
+ ui::DomCode::ARROW_DOWN, |
+ ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, |
+ ui::DomKey::ARROW_DOWN, |
+ 0}, |
+ {ui::VKEY_END, ui::DomCode::END, ui::EF_SHIFT_DOWN, ui::DomKey::END, 0}}, |
}; |
for (size_t i = 0; i < arraysize(tests); ++i) { |
@@ -1716,8 +2877,9 @@ TEST_F(EventRewriterTest, TestRewriteKeyEventSentByXSendEvent) { |
// Send left control press. |
{ |
- ui::KeyEvent keyevent( |
- ui::ET_KEY_PRESSED, ui::VKEY_CONTROL, ui::EF_FINAL); |
+ ui::KeyEvent keyevent(ui::ET_KEY_PRESSED, ui::VKEY_CONTROL, |
+ ui::DomCode::CONTROL_LEFT, ui::EF_FINAL, |
+ ui::DomKey::CONTROL, 0, ui::EventTimeForNow()); |
scoped_ptr<ui::Event> new_event; |
// Control should NOT be remapped to Alt if EF_FINAL is set. |
EXPECT_EQ(ui::EVENT_REWRITE_CONTINUE, |
@@ -1757,8 +2919,8 @@ TEST_F(EventRewriterTest, TestRewriteNonNativeEvent) { |
const int kTouchId = 2; |
gfx::Point location(0, 0); |
- ui::TouchEvent press( |
- ui::ET_TOUCH_PRESSED, location, kTouchId, base::TimeDelta()); |
+ ui::TouchEvent press(ui::ET_TOUCH_PRESSED, location, kTouchId, |
+ base::TimeDelta()); |
press.set_flags(ui::EF_CONTROL_DOWN); |
#if defined(USE_X11) |
ui::UpdateX11EventForFlags(&press); |
@@ -1835,23 +2997,29 @@ class EventRewriterAshTest : public ash::test::AshTestBase { |
return source_.Send(event); |
} |
- void SendKeyEvent(ui::EventType type, ui::KeyboardCode key_code) { |
- ui::KeyEvent press(type, key_code, ui::EF_NONE); |
+ void SendKeyEvent(ui::EventType type, |
+ ui::KeyboardCode key_code, |
+ ui::DomCode code, |
+ ui::DomKey key, |
+ base::char16 character) { |
+ ui::KeyEvent press(type, key_code, code, ui::EF_NONE, key, character, |
+ ui::EventTimeForNow()); |
ui::EventDispatchDetails details = Send(&press); |
CHECK(!details.dispatcher_destroyed); |
} |
- void SendActivateStickyKeyPattern(ui::KeyboardCode key_code) { |
- SendKeyEvent(ui::ET_KEY_PRESSED, key_code); |
- SendKeyEvent(ui::ET_KEY_RELEASED, key_code); |
+ void SendActivateStickyKeyPattern(ui::KeyboardCode key_code, |
+ ui::DomCode code, |
+ ui::DomKey key, |
+ base::char16 character) { |
+ SendKeyEvent(ui::ET_KEY_PRESSED, key_code, code, key, character); |
+ SendKeyEvent(ui::ET_KEY_RELEASED, key_code, code, key, character); |
} |
protected: |
TestingPrefServiceSyncable* prefs() { return &prefs_; } |
- void PopEvents(ScopedVector<ui::Event>* events) { |
- buffer_.PopEvents(events); |
- } |
+ void PopEvents(ScopedVector<ui::Event>* events) { buffer_.PopEvents(events); } |
void SetUp() override { |
AshTestBase::SetUp(); |
@@ -1895,7 +3063,8 @@ TEST_F(EventRewriterAshTest, TopRowKeysAreFunctionKeys) { |
ScopedVector<ui::Event> events; |
// Create a simulated keypress of F1 targetted at the window. |
- ui::KeyEvent press_f1(ui::ET_KEY_PRESSED, ui::VKEY_F1, ui::EF_NONE); |
+ ui::KeyEvent press_f1(ui::ET_KEY_PRESSED, ui::VKEY_F1, ui::DomCode::F1, |
+ ui::EF_NONE, ui::DomKey::F1, 0, ui::EventTimeForNow()); |
// Simulate an apps v2 window that has requested top row keys as function |
// keys. The event should not be rewritten. |
@@ -1904,9 +3073,10 @@ TEST_F(EventRewriterAshTest, TopRowKeysAreFunctionKeys) { |
ASSERT_FALSE(details.dispatcher_destroyed); |
PopEvents(&events); |
EXPECT_EQ(1u, events.size()); |
- EXPECT_EQ( |
- GetExpectedResultAsString(ui::VKEY_F1, ui::EF_NONE, ui::ET_KEY_PRESSED), |
- GetKeyEventAsString(*static_cast<ui::KeyEvent*>(events[0]))); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_F1, |
+ ui::DomCode::F1, ui::EF_NONE, |
+ ui::DomKey::F1, 0), |
+ GetKeyEventAsString(*static_cast<ui::KeyEvent*>(events[0]))); |
// The event should also not be rewritten if the send-function-keys pref is |
// additionally set, for both apps v2 and regular windows. |
@@ -1918,9 +3088,10 @@ TEST_F(EventRewriterAshTest, TopRowKeysAreFunctionKeys) { |
ASSERT_FALSE(details.dispatcher_destroyed); |
PopEvents(&events); |
EXPECT_EQ(1u, events.size()); |
- EXPECT_EQ( |
- GetExpectedResultAsString(ui::VKEY_F1, ui::EF_NONE, ui::ET_KEY_PRESSED), |
- GetKeyEventAsString(*static_cast<ui::KeyEvent*>(events[0]))); |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_F1, |
+ ui::DomCode::F1, ui::EF_NONE, |
+ ui::DomKey::F1, 0), |
+ GetKeyEventAsString(*static_cast<ui::KeyEvent*>(events[0]))); |
// If the pref isn't set when an event is sent to a regular window, F1 is |
// rewritten to the back key. |
@@ -1929,12 +3100,14 @@ TEST_F(EventRewriterAshTest, TopRowKeysAreFunctionKeys) { |
ASSERT_FALSE(details.dispatcher_destroyed); |
PopEvents(&events); |
EXPECT_EQ(1u, events.size()); |
- EXPECT_EQ(GetExpectedResultAsString( |
- ui::VKEY_BROWSER_BACK, ui::EF_NONE, ui::ET_KEY_PRESSED), |
+ EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_BROWSER_BACK, |
+ ui::DomCode::BROWSER_BACK, ui::EF_NONE, |
+ ui::DomKey::BROWSER_BACK, 0), |
GetKeyEventAsString(*static_cast<ui::KeyEvent*>(events[0]))); |
} |
TEST_F(EventRewriterTest, TestRewrittenModifierClick) { |
+#if defined(USE_X11) |
std::vector<int> device_list; |
device_list.push_back(10); |
ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list); |
@@ -1953,9 +3126,7 @@ TEST_F(EventRewriterTest, TestRewrittenModifierClick) { |
// Check that Control + Left Button is converted (via Search + Left Button) |
// to Right Button. |
ui::ScopedXI2Event xev; |
- xev.InitGenericButtonEvent(10, |
- ui::ET_MOUSE_PRESSED, |
- gfx::Point(), |
+ xev.InitGenericButtonEvent(10, ui::ET_MOUSE_PRESSED, gfx::Point(), |
ui::EF_LEFT_MOUSE_BUTTON | ui::EF_CONTROL_DOWN); |
ui::MouseEvent press(xev); |
// Sanity check. |
@@ -1969,15 +3140,18 @@ TEST_F(EventRewriterTest, TestRewrittenModifierClick) { |
EXPECT_FALSE(ui::EF_CONTROL_DOWN & result->flags()); |
EXPECT_FALSE(ui::EF_COMMAND_DOWN & result->flags()); |
EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); |
+#endif |
} |
TEST_F(EventRewriterTest, DontRewriteIfNotRewritten) { |
- // TODO(kpschoedel): pending changes for crbug.com/360377 |
- // to |chromeos::EventRewriter::RewriteLocatedEvent() |
+// TODO(kpschoedel): pending changes for crbug.com/360377 |
+// to |chromeos::EventRewriter::RewriteLocatedEvent() |
+#if defined(USE_X11) |
std::vector<int> device_list; |
device_list.push_back(10); |
device_list.push_back(11); |
ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list); |
+#endif |
TestingPrefServiceSyncable prefs; |
EventRewriter rewriter(NULL); |
rewriter.set_pref_service_for_testing(&prefs); |
@@ -2073,8 +3247,8 @@ TEST_F(EventRewriterTest, DontRewriteIfNotRewritten) { |
// No SEARCH in first click, using XI2 native events. |
{ |
ui::ScopedXI2Event xev; |
- xev.InitGenericButtonEvent( |
- 10, ui::ET_MOUSE_PRESSED, gfx::Point(), ui::EF_LEFT_MOUSE_BUTTON); |
+ xev.InitGenericButtonEvent(10, ui::ET_MOUSE_PRESSED, gfx::Point(), |
+ ui::EF_LEFT_MOUSE_BUTTON); |
ui::MouseEvent press(xev); |
scoped_ptr<ui::Event> new_event; |
const ui::MouseEvent* result = |
@@ -2178,7 +3352,8 @@ TEST_F(EventRewriterAshTest, StickyKeyEventDispatchImpl) { |
// Test the actual key event dispatch implementation. |
ScopedVector<ui::Event> events; |
- SendActivateStickyKeyPattern(ui::VKEY_CONTROL); |
+ SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
+ ui::DomKey::CONTROL, 0); |
PopEvents(&events); |
EXPECT_EQ(1u, events.size()); |
EXPECT_EQ(ui::ET_KEY_PRESSED, events[0]->type()); |
@@ -2187,7 +3362,9 @@ TEST_F(EventRewriterAshTest, StickyKeyEventDispatchImpl) { |
// Test key press event is correctly modified and modifier release |
// event is sent. |
- ui::KeyEvent press(ui::ET_KEY_PRESSED, ui::VKEY_C, ui::EF_NONE); |
+ ui::KeyEvent press(ui::ET_KEY_PRESSED, ui::VKEY_C, ui::DomCode::KEY_C, |
+ ui::EF_NONE, ui::DomKey::CHARACTER, 'c', |
+ ui::EventTimeForNow()); |
ui::EventDispatchDetails details = Send(&press); |
PopEvents(&events); |
EXPECT_EQ(2u, events.size()); |
@@ -2199,7 +3376,9 @@ TEST_F(EventRewriterAshTest, StickyKeyEventDispatchImpl) { |
static_cast<ui::KeyEvent*>(events[1])->key_code()); |
// Test key release event is not modified. |
- ui::KeyEvent release(ui::ET_KEY_RELEASED, ui::VKEY_C, ui::EF_NONE); |
+ ui::KeyEvent release(ui::ET_KEY_RELEASED, ui::VKEY_C, ui::DomCode::KEY_C, |
+ ui::EF_NONE, ui::DomKey::CHARACTER, 'c', |
+ ui::EventTimeForNow()); |
details = Send(&release); |
ASSERT_FALSE(details.dispatcher_destroyed); |
PopEvents(&events); |
@@ -2212,7 +3391,8 @@ TEST_F(EventRewriterAshTest, StickyKeyEventDispatchImpl) { |
TEST_F(EventRewriterAshTest, MouseEventDispatchImpl) { |
ScopedVector<ui::Event> events; |
- SendActivateStickyKeyPattern(ui::VKEY_CONTROL); |
+ SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
+ ui::DomKey::CONTROL, 0); |
PopEvents(&events); |
// Test mouse press event is correctly modified. |
@@ -2248,7 +3428,8 @@ TEST_F(EventRewriterAshTest, MouseWheelEventDispatchImpl) { |
// Test positive mouse wheel event is correctly modified and modifier release |
// event is sent. |
- SendActivateStickyKeyPattern(ui::VKEY_CONTROL); |
+ SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
+ ui::DomKey::CONTROL, 0); |
PopEvents(&events); |
gfx::Point location(0, 0); |
ui::MouseEvent mev(ui::ET_MOUSEWHEEL, location, location, |
@@ -2267,7 +3448,8 @@ TEST_F(EventRewriterAshTest, MouseWheelEventDispatchImpl) { |
// Test negative mouse wheel event is correctly modified and modifier release |
// event is sent. |
- SendActivateStickyKeyPattern(ui::VKEY_CONTROL); |
+ SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
+ ui::DomKey::CONTROL, 0); |
PopEvents(&events); |
ui::MouseWheelEvent negative(mev, 0, -ui::MouseWheelEvent::kWheelDelta); |
details = Send(&negative); |
@@ -2302,13 +3484,15 @@ TEST_F(StickyKeysOverlayTest, OneModifierEnabled) { |
overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); |
// Pressing modifier key should show overlay. |
- SendActivateStickyKeyPattern(ui::VKEY_CONTROL); |
+ SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
+ ui::DomKey::CONTROL, 0); |
EXPECT_TRUE(overlay_->is_visible()); |
EXPECT_EQ(ash::STICKY_KEY_STATE_ENABLED, |
overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); |
// Pressing a normal key should hide overlay. |
- SendActivateStickyKeyPattern(ui::VKEY_T); |
+ SendActivateStickyKeyPattern(ui::VKEY_T, ui::DomCode::KEY_T, |
+ ui::DomKey::CHARACTER, 't'); |
EXPECT_FALSE(overlay_->is_visible()); |
EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED, |
overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); |
@@ -2322,8 +3506,10 @@ TEST_F(StickyKeysOverlayTest, TwoModifiersEnabled) { |
overlay_->GetModifierKeyState(ui::EF_SHIFT_DOWN)); |
// Pressing two modifiers should show overlay. |
- SendActivateStickyKeyPattern(ui::VKEY_SHIFT); |
- SendActivateStickyKeyPattern(ui::VKEY_CONTROL); |
+ SendActivateStickyKeyPattern(ui::VKEY_SHIFT, ui::DomCode::SHIFT_LEFT, |
+ ui::DomKey::SHIFT, 0); |
+ SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
+ ui::DomKey::CONTROL, 0); |
EXPECT_TRUE(overlay_->is_visible()); |
EXPECT_EQ(ash::STICKY_KEY_STATE_ENABLED, |
overlay_->GetModifierKeyState(ui::EF_SHIFT_DOWN)); |
@@ -2331,7 +3517,8 @@ TEST_F(StickyKeysOverlayTest, TwoModifiersEnabled) { |
overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); |
// Pressing a normal key should hide overlay. |
- SendActivateStickyKeyPattern(ui::VKEY_N); |
+ SendActivateStickyKeyPattern(ui::VKEY_N, ui::DomCode::KEY_N, |
+ ui::DomKey::CHARACTER, 'n'); |
EXPECT_FALSE(overlay_->is_visible()); |
EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED, |
overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); |
@@ -2345,14 +3532,17 @@ TEST_F(StickyKeysOverlayTest, LockedModifier) { |
overlay_->GetModifierKeyState(ui::EF_ALT_DOWN)); |
// Pressing a modifier key twice should lock modifier and show overlay. |
- SendActivateStickyKeyPattern(ui::VKEY_LMENU); |
- SendActivateStickyKeyPattern(ui::VKEY_LMENU); |
+ SendActivateStickyKeyPattern(ui::VKEY_LMENU, ui::DomCode::ALT_LEFT, |
+ ui::DomKey::ALT, 0); |
+ SendActivateStickyKeyPattern(ui::VKEY_LMENU, ui::DomCode::ALT_LEFT, |
+ ui::DomKey::ALT, 0); |
EXPECT_TRUE(overlay_->is_visible()); |
EXPECT_EQ(ash::STICKY_KEY_STATE_LOCKED, |
overlay_->GetModifierKeyState(ui::EF_ALT_DOWN)); |
// Pressing a normal key should not hide overlay. |
- SendActivateStickyKeyPattern(ui::VKEY_D); |
+ SendActivateStickyKeyPattern(ui::VKEY_D, ui::DomCode::KEY_D, |
+ ui::DomKey::CHARACTER, 'd'); |
EXPECT_TRUE(overlay_->is_visible()); |
EXPECT_EQ(ash::STICKY_KEY_STATE_LOCKED, |
overlay_->GetModifierKeyState(ui::EF_ALT_DOWN)); |
@@ -2366,14 +3556,17 @@ TEST_F(StickyKeysOverlayTest, LockedAndNormalModifier) { |
overlay_->GetModifierKeyState(ui::EF_SHIFT_DOWN)); |
// Pressing a modifier key twice should lock modifier and show overlay. |
- SendActivateStickyKeyPattern(ui::VKEY_CONTROL); |
- SendActivateStickyKeyPattern(ui::VKEY_CONTROL); |
+ SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
+ ui::DomKey::CONTROL, 0); |
+ SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
+ ui::DomKey::CONTROL, 0); |
EXPECT_TRUE(overlay_->is_visible()); |
EXPECT_EQ(ash::STICKY_KEY_STATE_LOCKED, |
overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); |
// Pressing another modifier key should still show overlay. |
- SendActivateStickyKeyPattern(ui::VKEY_SHIFT); |
+ SendActivateStickyKeyPattern(ui::VKEY_SHIFT, ui::DomCode::SHIFT_LEFT, |
+ ui::DomKey::SHIFT, 0); |
EXPECT_TRUE(overlay_->is_visible()); |
EXPECT_EQ(ash::STICKY_KEY_STATE_LOCKED, |
overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); |
@@ -2381,7 +3574,8 @@ TEST_F(StickyKeysOverlayTest, LockedAndNormalModifier) { |
overlay_->GetModifierKeyState(ui::EF_SHIFT_DOWN)); |
// Pressing a normal key should not hide overlay but disable normal modifier. |
- SendActivateStickyKeyPattern(ui::VKEY_D); |
+ SendActivateStickyKeyPattern(ui::VKEY_D, ui::DomCode::KEY_D, |
+ ui::DomKey::CHARACTER, 'd'); |
EXPECT_TRUE(overlay_->is_visible()); |
EXPECT_EQ(ash::STICKY_KEY_STATE_LOCKED, |
overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); |
@@ -2401,12 +3595,18 @@ TEST_F(StickyKeysOverlayTest, ModifiersDisabled) { |
overlay_->GetModifierKeyState(ui::EF_COMMAND_DOWN)); |
// Enable modifiers. |
- SendActivateStickyKeyPattern(ui::VKEY_CONTROL); |
- SendActivateStickyKeyPattern(ui::VKEY_SHIFT); |
- SendActivateStickyKeyPattern(ui::VKEY_SHIFT); |
- SendActivateStickyKeyPattern(ui::VKEY_LMENU); |
- SendActivateStickyKeyPattern(ui::VKEY_COMMAND); |
- SendActivateStickyKeyPattern(ui::VKEY_COMMAND); |
+ SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
+ ui::DomKey::CONTROL, 0); |
+ SendActivateStickyKeyPattern(ui::VKEY_SHIFT, ui::DomCode::SHIFT_LEFT, |
+ ui::DomKey::SHIFT, 0); |
+ SendActivateStickyKeyPattern(ui::VKEY_SHIFT, ui::DomCode::SHIFT_LEFT, |
+ ui::DomKey::SHIFT, 0); |
+ SendActivateStickyKeyPattern(ui::VKEY_LMENU, ui::DomCode::ALT_LEFT, |
+ ui::DomKey::ALT, 0); |
+ SendActivateStickyKeyPattern(ui::VKEY_COMMAND, ui::DomCode::OS_LEFT, |
+ ui::DomKey::OS, 0); |
+ SendActivateStickyKeyPattern(ui::VKEY_COMMAND, ui::DomCode::OS_LEFT, |
+ ui::DomKey::OS, 0); |
EXPECT_TRUE(overlay_->is_visible()); |
EXPECT_EQ(ash::STICKY_KEY_STATE_ENABLED, |
@@ -2419,12 +3619,18 @@ TEST_F(StickyKeysOverlayTest, ModifiersDisabled) { |
overlay_->GetModifierKeyState(ui::EF_COMMAND_DOWN)); |
// Disable modifiers and overlay should be hidden. |
- SendActivateStickyKeyPattern(ui::VKEY_CONTROL); |
- SendActivateStickyKeyPattern(ui::VKEY_CONTROL); |
- SendActivateStickyKeyPattern(ui::VKEY_SHIFT); |
- SendActivateStickyKeyPattern(ui::VKEY_LMENU); |
- SendActivateStickyKeyPattern(ui::VKEY_LMENU); |
- SendActivateStickyKeyPattern(ui::VKEY_COMMAND); |
+ SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
+ ui::DomKey::CONTROL, 0); |
+ SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
+ ui::DomKey::CONTROL, 0); |
+ SendActivateStickyKeyPattern(ui::VKEY_SHIFT, ui::DomCode::SHIFT_LEFT, |
+ ui::DomKey::SHIFT, 0); |
+ SendActivateStickyKeyPattern(ui::VKEY_LMENU, ui::DomCode::ALT_LEFT, |
+ ui::DomKey::ALT, 0); |
+ SendActivateStickyKeyPattern(ui::VKEY_LMENU, ui::DomCode::ALT_LEFT, |
+ ui::DomKey::ALT, 0); |
+ SendActivateStickyKeyPattern(ui::VKEY_COMMAND, ui::DomCode::OS_LEFT, |
+ ui::DomKey::OS, 0); |
EXPECT_FALSE(overlay_->is_visible()); |
EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED, |