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

Side by Side Diff: chrome/browser/chromeos/events/event_rewriter_unittest.cc

Issue 1559163002: Clean up event flags a bit: (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review comment Created 4 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/events/event_rewriter.h" 5 #include "chrome/browser/chromeos/events/event_rewriter.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "ash/shell.h" 9 #include "ash/shell.h"
10 #include "ash/sticky_keys/sticky_keys_controller.h" 10 #include "ash/sticky_keys/sticky_keys_controller.h"
(...skipping 594 matching lines...) Expand 10 before | Expand all | Expand 10 after
605 // Press Alt with Shift. Confirm the event is not rewritten. 605 // Press Alt with Shift. Confirm the event is not rewritten.
606 {ui::ET_KEY_PRESSED, 606 {ui::ET_KEY_PRESSED,
607 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, 607 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT,
608 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, ui::DomKey::ALT}, 608 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, ui::DomKey::ALT},
609 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, 609 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT,
610 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, ui::DomKey::ALT}}, 610 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, ui::DomKey::ALT}},
611 611
612 // Press Search with Caps Lock mask. Confirm the event is not rewritten. 612 // Press Search with Caps Lock mask. Confirm the event is not rewritten.
613 {ui::ET_KEY_PRESSED, 613 {ui::ET_KEY_PRESSED,
614 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, 614 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT,
615 ui::EF_CAPS_LOCK_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::OS}, 615 ui::EF_CAPS_LOCK_ON | ui::EF_COMMAND_DOWN, ui::DomKey::OS},
616 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, 616 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT,
617 ui::EF_CAPS_LOCK_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::OS}}, 617 ui::EF_CAPS_LOCK_ON | ui::EF_COMMAND_DOWN, ui::DomKey::OS}},
618 618
619 // Release Search with Caps Lock mask. Confirm the event is not rewritten. 619 // Release Search with Caps Lock mask. Confirm the event is not rewritten.
620 {ui::ET_KEY_RELEASED, 620 {ui::ET_KEY_RELEASED,
621 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_CAPS_LOCK_DOWN, 621 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_CAPS_LOCK_ON,
622 ui::DomKey::OS}, 622 ui::DomKey::OS},
623 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_CAPS_LOCK_DOWN, 623 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_CAPS_LOCK_ON,
624 ui::DomKey::OS}}, 624 ui::DomKey::OS}},
625 625
626 // Press Shift+Ctrl+Alt+Search+A. Confirm the event is not rewritten. 626 // Press Shift+Ctrl+Alt+Search+A. Confirm the event is not rewritten.
627 {ui::ET_KEY_PRESSED, 627 {ui::ET_KEY_PRESSED,
628 {ui::VKEY_B, ui::DomCode::US_B, 628 {ui::VKEY_B, ui::DomCode::US_B,
629 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | 629 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN |
630 ui::EF_COMMAND_DOWN, 630 ui::EF_COMMAND_DOWN,
631 ui::DomKey::Constant<'B'>::Character}, 631 ui::DomKey::Constant<'B'>::Character},
632 {ui::VKEY_B, ui::DomCode::US_B, 632 {ui::VKEY_B, ui::DomCode::US_B,
633 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | 633 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN |
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
951 search.SetValue(chromeos::input_method::kCapsLockKey); 951 search.SetValue(chromeos::input_method::kCapsLockKey);
952 952
953 chromeos::input_method::FakeImeKeyboard ime_keyboard; 953 chromeos::input_method::FakeImeKeyboard ime_keyboard;
954 EventRewriter rewriter(NULL); 954 EventRewriter rewriter(NULL);
955 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 955 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
956 rewriter.set_pref_service_for_testing(&prefs); 956 rewriter.set_pref_service_for_testing(&prefs);
957 rewriter.set_ime_keyboard_for_testing(&ime_keyboard); 957 rewriter.set_ime_keyboard_for_testing(&ime_keyboard);
958 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_); 958 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_);
959 959
960 // Press Search. 960 // Press Search.
961 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, 961 EXPECT_EQ(GetExpectedResultAsString(
962 ui::DomCode::CAPS_LOCK, 962 ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK,
963 ui::EF_MOD3_DOWN | ui::EF_CAPS_LOCK_DOWN, 963 ui::EF_MOD3_DOWN | ui::EF_CAPS_LOCK_ON, ui::DomKey::CAPS_LOCK),
964 ui::DomKey::CAPS_LOCK),
965 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, 964 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED,
966 ui::VKEY_LWIN, ui::DomCode::OS_LEFT, 965 ui::VKEY_LWIN, ui::DomCode::OS_LEFT,
967 ui::EF_COMMAND_DOWN, ui::DomKey::OS)); 966 ui::EF_COMMAND_DOWN, ui::DomKey::OS));
968 // Confirm that the Caps Lock status is changed. 967 // Confirm that the Caps Lock status is changed.
969 EXPECT_TRUE(ime_keyboard.caps_lock_is_enabled_); 968 EXPECT_TRUE(ime_keyboard.caps_lock_is_enabled_);
970 969
971 // Release Search. 970 // Release Search.
972 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CAPITAL, 971 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CAPITAL,
973 ui::DomCode::CAPS_LOCK, ui::EF_NONE, 972 ui::DomCode::CAPS_LOCK, ui::EF_NONE,
974 ui::DomKey::CAPS_LOCK), 973 ui::DomKey::CAPS_LOCK),
975 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED, 974 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED,
976 ui::VKEY_LWIN, ui::DomCode::OS_LEFT, 975 ui::VKEY_LWIN, ui::DomCode::OS_LEFT,
977 ui::EF_NONE, ui::DomKey::OS)); 976 ui::EF_NONE, ui::DomKey::OS));
978 // Confirm that the Caps Lock status is not changed. 977 // Confirm that the Caps Lock status is not changed.
979 EXPECT_TRUE(ime_keyboard.caps_lock_is_enabled_); 978 EXPECT_TRUE(ime_keyboard.caps_lock_is_enabled_);
980 979
981 // Press Search. 980 // Press Search.
982 EXPECT_EQ( 981 EXPECT_EQ(GetExpectedResultAsString(
983 GetExpectedResultAsString( 982 ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK,
984 ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK, 983 ui::EF_CAPS_LOCK_ON | ui::EF_MOD3_DOWN, ui::DomKey::CAPS_LOCK),
985 ui::EF_CAPS_LOCK_DOWN | ui::EF_MOD3_DOWN, ui::DomKey::CAPS_LOCK), 984 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED,
986 GetRewrittenEventAsString( 985 ui::VKEY_LWIN, ui::DomCode::OS_LEFT,
987 &rewriter, ui::ET_KEY_PRESSED, ui::VKEY_LWIN, ui::DomCode::OS_LEFT, 986 ui::EF_COMMAND_DOWN | ui::EF_CAPS_LOCK_ON,
988 ui::EF_COMMAND_DOWN | ui::EF_CAPS_LOCK_DOWN, ui::DomKey::OS)); 987 ui::DomKey::OS));
989 // Confirm that the Caps Lock status is changed. 988 // Confirm that the Caps Lock status is changed.
990 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_); 989 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_);
991 990
992 // Release Search. 991 // Release Search.
993 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CAPITAL, 992 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CAPITAL,
994 ui::DomCode::CAPS_LOCK, ui::EF_NONE, 993 ui::DomCode::CAPS_LOCK, ui::EF_NONE,
995 ui::DomKey::CAPS_LOCK), 994 ui::DomKey::CAPS_LOCK),
996 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED, 995 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED,
997 ui::VKEY_LWIN, ui::DomCode::OS_LEFT, 996 ui::VKEY_LWIN, ui::DomCode::OS_LEFT,
998 ui::EF_NONE, ui::DomKey::OS)); 997 ui::EF_NONE, ui::DomKey::OS));
999 // Confirm that the Caps Lock status is not changed. 998 // Confirm that the Caps Lock status is not changed.
1000 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_); 999 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_);
1001 1000
1002 // Press Caps Lock (on an external keyboard). 1001 // Press Caps Lock (on an external keyboard).
1003 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, 1002 EXPECT_EQ(GetExpectedResultAsString(
1004 ui::DomCode::CAPS_LOCK, 1003 ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK,
1005 ui::EF_CAPS_LOCK_DOWN | ui::EF_MOD3_DOWN, 1004 ui::EF_CAPS_LOCK_ON | ui::EF_MOD3_DOWN, ui::DomKey::CAPS_LOCK),
1006 ui::DomKey::CAPS_LOCK),
1007 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, 1005 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED,
1008 ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK, 1006 ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK,
1009 ui::EF_CAPS_LOCK_DOWN | ui::EF_MOD3_DOWN, 1007 ui::EF_CAPS_LOCK_ON | ui::EF_MOD3_DOWN,
1010 ui::DomKey::CAPS_LOCK)); 1008 ui::DomKey::CAPS_LOCK));
1011 1009
1012 #if defined(USE_X11) 1010 #if defined(USE_X11)
1013 // Confirm that calling RewriteForTesting() does not change the state of 1011 // Confirm that calling RewriteForTesting() does not change the state of
1014 // |ime_keyboard|. In this case, X Window system itself should change the 1012 // |ime_keyboard|. In this case, X Window system itself should change the
1015 // Caps Lock state, not ash::EventRewriter. 1013 // Caps Lock state, not ash::EventRewriter.
1016 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_); 1014 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_);
1017 #elif defined(USE_OZONE) 1015 #elif defined(USE_OZONE)
1018 // Under Ozone the rewriter is responsible for changing the caps lock 1016 // Under Ozone the rewriter is responsible for changing the caps lock
1019 // state when the final key is Caps Lock, regardless of whether the 1017 // state when the final key is Caps Lock, regardless of whether the
(...skipping 20 matching lines...) Expand all
1040 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 1038 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1041 1039
1042 chromeos::input_method::FakeImeKeyboard ime_keyboard; 1040 chromeos::input_method::FakeImeKeyboard ime_keyboard;
1043 EventRewriter rewriter(NULL); 1041 EventRewriter rewriter(NULL);
1044 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 1042 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
1045 rewriter.set_pref_service_for_testing(&prefs); 1043 rewriter.set_pref_service_for_testing(&prefs);
1046 rewriter.set_ime_keyboard_for_testing(&ime_keyboard); 1044 rewriter.set_ime_keyboard_for_testing(&ime_keyboard);
1047 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_); 1045 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_);
1048 1046
1049 // On Chrome OS, CapsLock is mapped to F16 with Mod3Mask. 1047 // On Chrome OS, CapsLock is mapped to F16 with Mod3Mask.
1050 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, 1048 EXPECT_EQ(GetExpectedResultAsString(
1051 ui::DomCode::CAPS_LOCK, 1049 ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK,
1052 ui::EF_CAPS_LOCK_DOWN | ui::EF_MOD3_DOWN, 1050 ui::EF_CAPS_LOCK_ON | ui::EF_MOD3_DOWN, ui::DomKey::CAPS_LOCK),
1053 ui::DomKey::CAPS_LOCK),
1054 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, 1051 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED,
1055 ui::VKEY_F16, ui::DomCode::F16, 1052 ui::VKEY_F16, ui::DomCode::F16,
1056 ui::EF_MOD3_DOWN, ui::DomKey::F16)); 1053 ui::EF_MOD3_DOWN, ui::DomKey::F16));
1057 EXPECT_TRUE(ime_keyboard.caps_lock_is_enabled_); 1054 EXPECT_TRUE(ime_keyboard.caps_lock_is_enabled_);
1058 } 1055 }
1059 1056
1060 TEST_F(EventRewriterTest, TestRewriteDiamondKey) { 1057 TEST_F(EventRewriterTest, TestRewriteDiamondKey) {
1061 syncable_prefs::TestingPrefServiceSyncable prefs; 1058 syncable_prefs::TestingPrefServiceSyncable prefs;
1062 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 1059 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1063 1060
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
1210 // Check that Alt is no longer applied to a subsequent key press. 1207 // Check that Alt is no longer applied to a subsequent key press.
1211 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, 1208 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A,
1212 ui::DomCode::US_A, ui::EF_NONE, 1209 ui::DomCode::US_A, ui::EF_NONE,
1213 ui::DomKey::Constant<'a'>::Character), 1210 ui::DomKey::Constant<'a'>::Character),
1214 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, 1211 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A,
1215 ui::DomCode::US_A, ui::EF_NONE, 1212 ui::DomCode::US_A, ui::EF_NONE,
1216 ui::DomKey::Constant<'a'>::Character)); 1213 ui::DomKey::Constant<'a'>::Character));
1217 1214
1218 diamond.SetValue(chromeos::input_method::kCapsLockKey); 1215 diamond.SetValue(chromeos::input_method::kCapsLockKey);
1219 1216
1220 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, 1217 EXPECT_EQ(GetExpectedResultAsString(
1221 ui::DomCode::CAPS_LOCK, 1218 ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK,
1222 ui::EF_CAPS_LOCK_DOWN | ui::EF_MOD3_DOWN, 1219 ui::EF_CAPS_LOCK_ON | ui::EF_MOD3_DOWN, ui::DomKey::CAPS_LOCK),
1223 ui::DomKey::CAPS_LOCK),
1224 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, 1220 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED,
1225 ui::VKEY_F15, ui::DomCode::F15, 1221 ui::VKEY_F15, ui::DomCode::F15,
1226 ui::EF_NONE, ui::DomKey::F15)); 1222 ui::EF_NONE, ui::DomKey::F15));
1227 // Check that Caps is applied to a subsequent key press. 1223 // Check that Caps is applied to a subsequent key press.
1228 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, 1224 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A,
1229 ui::DomCode::US_A, 1225 ui::DomCode::US_A,
1230 ui::EF_CAPS_LOCK_DOWN | ui::EF_MOD3_DOWN, 1226 ui::EF_CAPS_LOCK_ON | ui::EF_MOD3_DOWN,
1231 ui::DomKey::Constant<'A'>::Character), 1227 ui::DomKey::Constant<'A'>::Character),
1232 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, 1228 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A,
1233 ui::DomCode::US_A, ui::EF_NONE, 1229 ui::DomCode::US_A, ui::EF_NONE,
1234 ui::DomKey::Constant<'a'>::Character)); 1230 ui::DomKey::Constant<'a'>::Character));
1235 // Release F15 1231 // Release F15
1236 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CAPITAL, 1232 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CAPITAL,
1237 ui::DomCode::CAPS_LOCK, ui::EF_NONE, 1233 ui::DomCode::CAPS_LOCK, ui::EF_NONE,
1238 ui::DomKey::CAPS_LOCK), 1234 ui::DomKey::CAPS_LOCK),
1239 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED, 1235 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED,
1240 ui::VKEY_F15, ui::DomCode::F15, 1236 ui::VKEY_F15, ui::DomCode::F15,
(...skipping 1376 matching lines...) Expand 10 before | Expand all | Expand 10 after
2617 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); 2613 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN));
2618 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); 2614 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN));
2619 2615
2620 // Turn off AltGr and Mod3. 2616 // Turn off AltGr and Mod3.
2621 sticky_keys_controller_->SetModifiersEnabled(false, false); 2617 sticky_keys_controller_->SetModifiersEnabled(false, false);
2622 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); 2618 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN));
2623 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); 2619 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN));
2624 } 2620 }
2625 2621
2626 } // namespace chromeos 2622 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/events/event_rewriter.cc ('k') | chrome/browser/chromeos/input_method/input_method_engine.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698