Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(787)

Unified Diff: chrome/browser/chromeos/events/event_rewriter_unittest.cc

Issue 2250473006: Settings to remap Backspace and Escape keys (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@KeyboardRemapToCapsLockBackspace
Patch Set: rebase Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/chromeos/events/event_rewriter.cc ('k') | chrome/browser/chromeos/preferences.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 a4ed9395059cbeea75b83f45ad49fbd3c1664a2f..37eb1299fcc3f401ebd08b466337405b20792469 100644
--- a/chrome/browser/chromeos/events/event_rewriter_unittest.cc
+++ b/chrome/browser/chromeos/events/event_rewriter_unittest.cc
@@ -605,6 +605,13 @@ TEST_F(EventRewriterTest, TestRewriteModifiersNoRemapMultipleKeys) {
{ui::VKEY_MENU, ui::DomCode::ALT_LEFT,
ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, ui::DomKey::ALT}},
+ // Press Escape with Alt and Shift. Confirm the event is not rewritten.
+ {ui::ET_KEY_PRESSED,
+ {ui::VKEY_ESCAPE, ui::DomCode::ESCAPE,
+ ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, ui::DomKey::ESCAPE},
+ {ui::VKEY_ESCAPE, ui::DomCode::ESCAPE,
+ ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, ui::DomKey::ESCAPE}},
+
// Press Search with Caps Lock mask. Confirm the event is not rewritten.
{ui::ET_KEY_PRESSED,
{ui::VKEY_LWIN, ui::DomCode::META_LEFT,
@@ -619,7 +626,18 @@ TEST_F(EventRewriterTest, TestRewriteModifiersNoRemapMultipleKeys) {
{ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_CAPS_LOCK_ON,
ui::DomKey::META}},
- // Press Shift+Ctrl+Alt+Search+A. Confirm the event is not rewritten.
+ // Press Shift+Ctrl+Alt+Search+Escape. Confirm the event is not rewritten.
+ {ui::ET_KEY_PRESSED,
+ {ui::VKEY_ESCAPE, ui::DomCode::ESCAPE,
+ ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN |
+ ui::EF_COMMAND_DOWN,
+ ui::DomKey::ESCAPE},
+ {ui::VKEY_ESCAPE, ui::DomCode::ESCAPE,
+ ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN |
+ ui::EF_COMMAND_DOWN,
+ ui::DomKey::ESCAPE}},
+
+ // Press Shift+Ctrl+Alt+Search+B. Confirm the event is not rewritten.
{ui::ET_KEY_PRESSED,
{ui::VKEY_B, ui::DomCode::US_B,
ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN |
@@ -637,7 +655,7 @@ TEST_F(EventRewriterTest, TestRewriteModifiersNoRemapMultipleKeys) {
}
TEST_F(EventRewriterTest, TestRewriteModifiersDisableSome) {
- // Disable Search and Control keys.
+ // Disable Search, Control and Escape keys.
syncable_prefs::TestingPrefServiceSyncable prefs;
chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
IntegerPrefMember search;
@@ -646,6 +664,9 @@ TEST_F(EventRewriterTest, TestRewriteModifiersDisableSome) {
IntegerPrefMember control;
control.Init(prefs::kLanguageRemapControlKeyTo, &prefs);
control.SetValue(chromeos::input_method::kVoidKey);
+ IntegerPrefMember escape;
+ escape.Init(prefs::kLanguageRemapEscapeKeyTo, &prefs);
+ escape.SetValue(chromeos::input_method::kVoidKey);
EventRewriter rewriter(NULL);
rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
@@ -673,6 +694,12 @@ TEST_F(EventRewriterTest, TestRewriteModifiersDisableSome) {
{ui::VKEY_UNKNOWN, ui::DomCode::NONE, ui::EF_NONE,
ui::DomKey::UNIDENTIFIED}},
+ // Press Escape. Confirm the event is now VKEY_UNKNOWN.
+ {ui::ET_KEY_PRESSED,
+ {ui::VKEY_ESCAPE, ui::DomCode::ESCAPE, ui::EF_NONE, ui::DomKey::ESCAPE},
+ {ui::VKEY_UNKNOWN, ui::DomCode::NONE, ui::EF_NONE,
+ ui::DomKey::UNIDENTIFIED}},
+
// Press Control+Search. Confirm the event is now VKEY_UNKNOWN
// without any modifiers.
{ui::ET_KEY_PRESSED,
@@ -808,7 +835,7 @@ TEST_F(EventRewriterTest, TestRewriteModifiersRemapToControl) {
}
TEST_F(EventRewriterTest, TestRewriteModifiersRemapToEscape) {
- // Remap Search to ESC.
+ // Remap Search to Escape.
syncable_prefs::TestingPrefServiceSyncable prefs;
chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
IntegerPrefMember search;
@@ -833,27 +860,30 @@ TEST_F(EventRewriterTest, TestRewriteModifiersRemapToEscape) {
}
TEST_F(EventRewriterTest, TestRewriteModifiersRemapMany) {
- // Remap Search to Alt.
+ // Remap Escape to Alt.
syncable_prefs::TestingPrefServiceSyncable prefs;
chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
- IntegerPrefMember search;
- search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs);
- search.SetValue(chromeos::input_method::kAltKey);
+ IntegerPrefMember escape;
+ escape.Init(prefs::kLanguageRemapEscapeKeyTo, &prefs);
+ escape.SetValue(chromeos::input_method::kAltKey);
EventRewriter rewriter(NULL);
rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
rewriter.set_pref_service_for_testing(&prefs);
- KeyTestCase s2a_tests[] = {
- // Press Search. Confirm the event is now VKEY_MENU.
+ KeyTestCase e2a_tests[] = {
+ // Press Escape. Confirm the event is now VKEY_MENU.
{ui::ET_KEY_PRESSED,
- {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_COMMAND_DOWN,
- ui::DomKey::META},
+ {ui::VKEY_ESCAPE, ui::DomCode::ESCAPE, ui::EF_NONE, ui::DomKey::ESCAPE},
{ui::VKEY_MENU, ui::DomCode::ALT_LEFT, ui::EF_ALT_DOWN,
ui::DomKey::ALT}},
+ // Release Escape to clear flags.
+ {ui::ET_KEY_RELEASED,
+ {ui::VKEY_ESCAPE, ui::DomCode::ESCAPE, ui::EF_NONE, ui::DomKey::ESCAPE},
+ {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, ui::EF_NONE, ui::DomKey::ALT}},
};
- for (const auto& test : s2a_tests) {
+ for (const auto& test : e2a_tests) {
CheckKeyTestCase(&rewriter, test);
}
@@ -901,31 +931,28 @@ TEST_F(EventRewriterTest, TestRewriteModifiersRemapMany) {
{ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_COMMAND_DOWN,
ui::DomKey::META}},
- // Then, press all of the three, Control+Alt+Search.
+ // Then, press all of the three, Control+Alt+Escape.
{ui::ET_KEY_PRESSED,
- {ui::VKEY_LWIN, ui::DomCode::META_LEFT,
- ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN,
- ui::DomKey::META},
+ {ui::VKEY_ESCAPE, ui::DomCode::ESCAPE,
+ ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, ui::DomKey::CONTROL},
{ui::VKEY_MENU, ui::DomCode::ALT_LEFT,
ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN,
ui::DomKey::ALT}},
- // Press Shift+Control+Alt+Search.
+ // Press Shift+Control+Alt+Escape.
{ui::ET_KEY_PRESSED,
- {ui::VKEY_LWIN, ui::DomCode::META_LEFT,
- ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN |
- ui::EF_COMMAND_DOWN,
- ui::DomKey::META},
+ {ui::VKEY_ESCAPE, ui::DomCode::ESCAPE,
+ ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
+ ui::DomKey::ESCAPE},
{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}},
- // Press Shift+Control+Alt+Search+B
+ // Press Shift+Control+Alt+B
{ui::ET_KEY_PRESSED,
{ui::VKEY_B, ui::DomCode::US_B,
- ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN |
- ui::EF_COMMAND_DOWN,
+ ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
ui::DomKey::Constant<'B'>::Character},
{ui::VKEY_B, ui::DomCode::US_B,
ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN |
@@ -936,6 +963,51 @@ TEST_F(EventRewriterTest, TestRewriteModifiersRemapMany) {
for (const auto& test : c2s_tests) {
CheckKeyTestCase(&rewriter, test);
}
+
+ // Remap Search to Backspace.
+ IntegerPrefMember search;
+ search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs);
+ search.SetValue(chromeos::input_method::kBackspaceKey);
+
+ KeyTestCase s2b_tests[] = {
+ // Release Control and Escape, as Search and Alt would transform Backspace
+ // to Delete.
+ {ui::ET_KEY_RELEASED,
+ {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_NONE,
+ ui::DomKey::CONTROL},
+ {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_ALT_DOWN,
+ ui::DomKey::META}},
+ {ui::ET_KEY_RELEASED,
+ {ui::VKEY_ESCAPE, ui::DomCode::ESCAPE, ui::EF_NONE, ui::DomKey::ESCAPE},
+ {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, ui::EF_NONE, ui::DomKey::ALT}},
+ // Press Search. Confirm the event is now VKEY_BACK.
+ {ui::ET_KEY_PRESSED,
+ {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_COMMAND_DOWN,
+ ui::DomKey::META},
+ {ui::VKEY_BACK, ui::DomCode::BACKSPACE, ui::EF_NONE,
+ ui::DomKey::BACKSPACE}},
+ };
+
+ for (const auto& test : s2b_tests) {
+ CheckKeyTestCase(&rewriter, test);
+ }
+
+ // Remap Backspace to Escape.
+ IntegerPrefMember backspace;
+ backspace.Init(prefs::kLanguageRemapBackspaceKeyTo, &prefs);
+ backspace.SetValue(chromeos::input_method::kEscapeKey);
+
+ KeyTestCase b2e_tests[] = {
+ // Press Backspace. Confirm the event is now VKEY_ESCAPE.
+ {ui::ET_KEY_PRESSED,
+ {ui::VKEY_BACK, ui::DomCode::BACKSPACE, ui::EF_NONE,
+ ui::DomKey::BACKSPACE},
+ {ui::VKEY_ESCAPE, ui::DomCode::ESCAPE, ui::EF_NONE, ui::DomKey::ESCAPE}},
+ };
+
+ for (const auto& test : b2e_tests) {
+ CheckKeyTestCase(&rewriter, test);
+ }
}
TEST_F(EventRewriterTest, TestRewriteModifiersRemapToCapsLock) {
« no previous file with comments | « chrome/browser/chromeos/events/event_rewriter.cc ('k') | chrome/browser/chromeos/preferences.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698