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

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

Issue 1560293002: Rename KEY_ constants to avoid conflict with <linux/input.h> (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review comments (Wez) 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
« no previous file with comments | « no previous file | chrome/browser/chromeos/input_method/input_method_engine_browsertests.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 // First, test with a PC keyboard. 162 // First, test with a PC keyboard.
163 syncable_prefs::TestingPrefServiceSyncable prefs; 163 syncable_prefs::TestingPrefServiceSyncable prefs;
164 EventRewriter rewriter(NULL); 164 EventRewriter rewriter(NULL);
165 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 165 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
166 rewriter.set_last_keyboard_device_id_for_testing(kKeyboardDeviceId); 166 rewriter.set_last_keyboard_device_id_for_testing(kKeyboardDeviceId);
167 rewriter.set_pref_service_for_testing(&prefs); 167 rewriter.set_pref_service_for_testing(&prefs);
168 168
169 KeyTestCase pc_keyboard_tests[] = { 169 KeyTestCase pc_keyboard_tests[] = {
170 // VKEY_A, Alt modifier. 170 // VKEY_A, Alt modifier.
171 {ui::ET_KEY_PRESSED, 171 {ui::ET_KEY_PRESSED,
172 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_ALT_DOWN, 172 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN,
173 ui::DomKey::UNIDENTIFIED}, 173 ui::DomKey::UNIDENTIFIED},
174 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_ALT_DOWN, 174 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN,
175 ui::DomKey::UNIDENTIFIED}}, 175 ui::DomKey::UNIDENTIFIED}},
176 176
177 // VKEY_A, Win modifier. 177 // VKEY_A, Win modifier.
178 {ui::ET_KEY_PRESSED, 178 {ui::ET_KEY_PRESSED,
179 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_COMMAND_DOWN, 179 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_COMMAND_DOWN,
180 ui::DomKey::UNIDENTIFIED}, 180 ui::DomKey::UNIDENTIFIED},
181 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_COMMAND_DOWN, 181 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_COMMAND_DOWN,
182 ui::DomKey::UNIDENTIFIED}}, 182 ui::DomKey::UNIDENTIFIED}},
183 183
184 // VKEY_A, Alt+Win modifier. 184 // VKEY_A, Alt+Win modifier.
185 {ui::ET_KEY_PRESSED, 185 {ui::ET_KEY_PRESSED,
186 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, 186 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN,
187 ui::DomKey::UNIDENTIFIED}, 187 ui::DomKey::UNIDENTIFIED},
188 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, 188 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN,
189 ui::DomKey::UNIDENTIFIED}}, 189 ui::DomKey::UNIDENTIFIED}},
190 190
191 // VKEY_LWIN (left Windows key), Alt modifier. 191 // VKEY_LWIN (left Windows key), Alt modifier.
192 {ui::ET_KEY_PRESSED, 192 {ui::ET_KEY_PRESSED,
193 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, 193 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT,
194 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::OS}, 194 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::OS},
195 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, 195 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT,
196 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::OS}}, 196 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::OS}},
197 197
198 // VKEY_RWIN (right Windows key), Alt modifier. 198 // VKEY_RWIN (right Windows key), Alt modifier.
199 {ui::ET_KEY_PRESSED, 199 {ui::ET_KEY_PRESSED,
200 {ui::VKEY_RWIN, ui::DomCode::OS_RIGHT, 200 {ui::VKEY_RWIN, ui::DomCode::OS_RIGHT,
201 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::OS}, 201 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::OS},
202 {ui::VKEY_RWIN, ui::DomCode::OS_RIGHT, 202 {ui::VKEY_RWIN, ui::DomCode::OS_RIGHT,
203 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::OS}}, 203 ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, ui::DomKey::OS}},
204 }; 204 };
205 205
206 for (const auto& test : pc_keyboard_tests) { 206 for (const auto& test : pc_keyboard_tests) {
207 CheckKeyTestCase(&rewriter, test); 207 CheckKeyTestCase(&rewriter, test);
208 } 208 }
209 209
210 // An Apple keyboard reusing the ID, zero. 210 // An Apple keyboard reusing the ID, zero.
211 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "Apple Keyboard"); 211 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "Apple Keyboard");
212 rewriter.set_last_keyboard_device_id_for_testing(kKeyboardDeviceId); 212 rewriter.set_last_keyboard_device_id_for_testing(kKeyboardDeviceId);
213 213
214 KeyTestCase apple_keyboard_tests[] = { 214 KeyTestCase apple_keyboard_tests[] = {
215 // VKEY_A, Alt modifier. 215 // VKEY_A, Alt modifier.
216 {ui::ET_KEY_PRESSED, 216 {ui::ET_KEY_PRESSED,
217 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_ALT_DOWN, 217 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN,
218 ui::DomKey::UNIDENTIFIED}, 218 ui::DomKey::UNIDENTIFIED},
219 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_ALT_DOWN, 219 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN,
220 ui::DomKey::UNIDENTIFIED}}, 220 ui::DomKey::UNIDENTIFIED}},
221 221
222 // VKEY_A, Win modifier. 222 // VKEY_A, Win modifier.
223 {ui::ET_KEY_PRESSED, 223 {ui::ET_KEY_PRESSED,
224 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_COMMAND_DOWN, 224 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_COMMAND_DOWN,
225 ui::DomKey::UNIDENTIFIED}, 225 ui::DomKey::UNIDENTIFIED},
226 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_CONTROL_DOWN, 226 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_CONTROL_DOWN,
227 ui::DomKey::Constant<'a'>::Character}}, 227 ui::DomKey::Constant<'a'>::Character}},
228 228
229 // VKEY_A, Alt+Win modifier. 229 // VKEY_A, Alt+Win modifier.
230 {ui::ET_KEY_PRESSED, 230 {ui::ET_KEY_PRESSED,
231 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN, 231 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN,
232 ui::DomKey::UNIDENTIFIED}, 232 ui::DomKey::UNIDENTIFIED},
233 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, 233 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN,
234 ui::DomKey::Constant<'a'>::Character}}, 234 ui::DomKey::Constant<'a'>::Character}},
235 235
236 // VKEY_LWIN (left Windows key), Alt modifier. 236 // VKEY_LWIN (left Windows key), Alt modifier.
237 {ui::ET_KEY_PRESSED, 237 {ui::ET_KEY_PRESSED,
238 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, 238 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT,
239 ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, ui::DomKey::OS}, 239 ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, ui::DomKey::OS},
240 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, 240 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT,
241 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, ui::DomKey::CONTROL}}, 241 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, ui::DomKey::CONTROL}},
242 242
243 // VKEY_RWIN (right Windows key), Alt modifier. 243 // VKEY_RWIN (right Windows key), Alt modifier.
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after
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_DOWN,
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_DOWN,
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::KEY_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::KEY_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 |
634 ui::EF_COMMAND_DOWN, 634 ui::EF_COMMAND_DOWN,
635 ui::DomKey::Constant<'B'>::Character}}, 635 ui::DomKey::Constant<'B'>::Character}},
636 }; 636 };
637 637
638 for (const auto& test : tests) { 638 for (const auto& test : tests) {
639 CheckKeyTestCase(&rewriter, test); 639 CheckKeyTestCase(&rewriter, test);
640 } 640 }
641 } 641 }
642 642
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 // without any modifiers. 681 // without any modifiers.
682 {ui::ET_KEY_PRESSED, 682 {ui::ET_KEY_PRESSED,
683 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_CONTROL_DOWN, 683 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, ui::EF_CONTROL_DOWN,
684 ui::DomKey::OS}, 684 ui::DomKey::OS},
685 {ui::VKEY_UNKNOWN, ui::DomCode::NONE, ui::EF_NONE, 685 {ui::VKEY_UNKNOWN, ui::DomCode::NONE, ui::EF_NONE,
686 ui::DomKey::UNIDENTIFIED}}, 686 ui::DomKey::UNIDENTIFIED}},
687 687
688 // Press Control+Search+a. Confirm the event is now VKEY_A without any 688 // Press Control+Search+a. Confirm the event is now VKEY_A without any
689 // modifiers. 689 // modifiers.
690 {ui::ET_KEY_PRESSED, 690 {ui::ET_KEY_PRESSED,
691 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_CONTROL_DOWN, 691 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_CONTROL_DOWN,
692 ui::DomKey::Constant<'a'>::Character}, 692 ui::DomKey::Constant<'a'>::Character},
693 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_NONE, 693 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_NONE,
694 ui::DomKey::Constant<'a'>::Character}}, 694 ui::DomKey::Constant<'a'>::Character}},
695 695
696 // Press Control+Search+Alt+a. Confirm the event is now VKEY_A only with 696 // Press Control+Search+Alt+a. Confirm the event is now VKEY_A only with
697 // the Alt modifier. 697 // the Alt modifier.
698 {ui::ET_KEY_PRESSED, 698 {ui::ET_KEY_PRESSED,
699 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, 699 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
700 ui::DomKey::Constant<'a'>::Character}, 700 ui::DomKey::Constant<'a'>::Character},
701 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_ALT_DOWN, 701 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN,
702 ui::DomKey::Constant<'a'>::Character}}, 702 ui::DomKey::Constant<'a'>::Character}},
703 }; 703 };
704 704
705 for (const auto& test : disabled_modifier_tests) { 705 for (const auto& test : disabled_modifier_tests) {
706 CheckKeyTestCase(&rewriter, test); 706 CheckKeyTestCase(&rewriter, test);
707 } 707 }
708 708
709 // Remap Alt to Control. 709 // Remap Alt to Control.
710 IntegerPrefMember alt; 710 IntegerPrefMember alt;
711 alt.Init(prefs::kLanguageRemapAltKeyTo, &prefs); 711 alt.Init(prefs::kLanguageRemapAltKeyTo, &prefs);
712 alt.SetValue(chromeos::input_method::kControlKey); 712 alt.SetValue(chromeos::input_method::kControlKey);
713 713
714 KeyTestCase tests[] = { 714 KeyTestCase tests[] = {
715 // Press left Alt. Confirm the event is now VKEY_CONTROL 715 // Press left Alt. Confirm the event is now VKEY_CONTROL
716 // even though the Control key itself is disabled. 716 // even though the Control key itself is disabled.
717 {ui::ET_KEY_PRESSED, 717 {ui::ET_KEY_PRESSED,
718 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, ui::EF_ALT_DOWN, ui::DomKey::ALT}, 718 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, ui::EF_ALT_DOWN, ui::DomKey::ALT},
719 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_CONTROL_DOWN, 719 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_CONTROL_DOWN,
720 ui::DomKey::CONTROL}}, 720 ui::DomKey::CONTROL}},
721 721
722 // Press Alt+a. Confirm the event is now Control+a even though the Control 722 // Press Alt+a. Confirm the event is now Control+a even though the Control
723 // key itself is disabled. 723 // key itself is disabled.
724 {ui::ET_KEY_PRESSED, 724 {ui::ET_KEY_PRESSED,
725 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_ALT_DOWN, 725 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN,
726 ui::DomKey::Constant<'a'>::Character}, 726 ui::DomKey::Constant<'a'>::Character},
727 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_CONTROL_DOWN, 727 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_CONTROL_DOWN,
728 ui::DomKey::Constant<'a'>::Character}}, 728 ui::DomKey::Constant<'a'>::Character}},
729 }; 729 };
730 730
731 for (const auto& test : tests) { 731 for (const auto& test : tests) {
732 CheckKeyTestCase(&rewriter, test); 732 CheckKeyTestCase(&rewriter, test);
733 } 733 }
734 } 734 }
735 735
736 TEST_F(EventRewriterTest, TestRewriteModifiersRemapToControl) { 736 TEST_F(EventRewriterTest, TestRewriteModifiersRemapToControl) {
737 // Remap Search to Control. 737 // Remap Search to Control.
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
791 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT, 791 {ui::VKEY_LWIN, ui::DomCode::OS_LEFT,
792 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | 792 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN |
793 ui::EF_COMMAND_DOWN, 793 ui::EF_COMMAND_DOWN,
794 ui::DomKey::OS}, 794 ui::DomKey::OS},
795 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, 795 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT,
796 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, ui::DomKey::CONTROL}}, 796 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, ui::DomKey::CONTROL}},
797 797
798 // Press Shift+Control+Alt+Search+B. Confirm the event is now B with Shift 798 // Press Shift+Control+Alt+Search+B. Confirm the event is now B with Shift
799 // and Control modifiers. 799 // and Control modifiers.
800 {ui::ET_KEY_PRESSED, 800 {ui::ET_KEY_PRESSED,
801 {ui::VKEY_B, ui::DomCode::KEY_B, 801 {ui::VKEY_B, ui::DomCode::US_B,
802 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | 802 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN |
803 ui::EF_COMMAND_DOWN, 803 ui::EF_COMMAND_DOWN,
804 ui::DomKey::Constant<'B'>::Character}, 804 ui::DomKey::Constant<'B'>::Character},
805 {ui::VKEY_B, ui::DomCode::KEY_B, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, 805 {ui::VKEY_B, ui::DomCode::US_B, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
806 ui::DomKey::Constant<'B'>::Character}}, 806 ui::DomKey::Constant<'B'>::Character}},
807 }; 807 };
808 808
809 for (const auto& test : sa_tests) { 809 for (const auto& test : sa_tests) {
810 CheckKeyTestCase(&rewriter, test); 810 CheckKeyTestCase(&rewriter, test);
811 } 811 }
812 } 812 }
813 813
814 TEST_F(EventRewriterTest, TestRewriteModifiersRemapToEscape) { 814 TEST_F(EventRewriterTest, TestRewriteModifiersRemapToEscape) {
815 // Remap Search to ESC. 815 // Remap Search to ESC.
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
920 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | 920 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN |
921 ui::EF_COMMAND_DOWN, 921 ui::EF_COMMAND_DOWN,
922 ui::DomKey::OS}, 922 ui::DomKey::OS},
923 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, 923 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT,
924 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | 924 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN |
925 ui::EF_COMMAND_DOWN, 925 ui::EF_COMMAND_DOWN,
926 ui::DomKey::ALT}}, 926 ui::DomKey::ALT}},
927 927
928 // Press Shift+Control+Alt+Search+B 928 // Press Shift+Control+Alt+Search+B
929 {ui::ET_KEY_PRESSED, 929 {ui::ET_KEY_PRESSED,
930 {ui::VKEY_B, ui::DomCode::KEY_B, 930 {ui::VKEY_B, ui::DomCode::US_B,
931 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | 931 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN |
932 ui::EF_COMMAND_DOWN, 932 ui::EF_COMMAND_DOWN,
933 ui::DomKey::Constant<'B'>::Character}, 933 ui::DomKey::Constant<'B'>::Character},
934 {ui::VKEY_B, ui::DomCode::KEY_B, 934 {ui::VKEY_B, ui::DomCode::US_B,
935 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | 935 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN |
936 ui::EF_COMMAND_DOWN, 936 ui::EF_COMMAND_DOWN,
937 ui::DomKey::Constant<'B'>::Character}}, 937 ui::DomKey::Constant<'B'>::Character}},
938 }; 938 };
939 939
940 for (const auto& test : c2s_tests) { 940 for (const auto& test : c2s_tests) {
941 CheckKeyTestCase(&rewriter, test); 941 CheckKeyTestCase(&rewriter, test);
942 } 942 }
943 } 943 }
944 944
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
1076 ui::DomKey::CONTROL}}, 1076 ui::DomKey::CONTROL}},
1077 1077
1078 {ui::ET_KEY_RELEASED, 1078 {ui::ET_KEY_RELEASED,
1079 {ui::VKEY_F15, ui::DomCode::F15, ui::EF_NONE, ui::DomKey::F15}, 1079 {ui::VKEY_F15, ui::DomCode::F15, ui::EF_NONE, ui::DomKey::F15},
1080 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_NONE, 1080 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, ui::EF_NONE,
1081 ui::DomKey::CONTROL}}, 1081 ui::DomKey::CONTROL}},
1082 1082
1083 // However, Mod2Mask should not be rewritten to CtrlMask when 1083 // However, Mod2Mask should not be rewritten to CtrlMask when
1084 // --has-chromeos-diamond-key is not specified. 1084 // --has-chromeos-diamond-key is not specified.
1085 {ui::ET_KEY_PRESSED, 1085 {ui::ET_KEY_PRESSED,
1086 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_NONE, 1086 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_NONE,
1087 ui::DomKey::Constant<'a'>::Character}, 1087 ui::DomKey::Constant<'a'>::Character},
1088 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_NONE, 1088 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_NONE,
1089 ui::DomKey::Constant<'a'>::Character}}, 1089 ui::DomKey::Constant<'a'>::Character}},
1090 }; 1090 };
1091 1091
1092 for (const auto& test : tests) { 1092 for (const auto& test : tests) {
1093 CheckKeyTestCase(&rewriter, test); 1093 CheckKeyTestCase(&rewriter, test);
1094 } 1094 }
1095 } 1095 }
1096 1096
1097 TEST_F(EventRewriterTest, TestRewriteDiamondKeyWithFlag) { 1097 TEST_F(EventRewriterTest, TestRewriteDiamondKeyWithFlag) {
1098 const base::CommandLine original_cl(*base::CommandLine::ForCurrentProcess()); 1098 const base::CommandLine original_cl(*base::CommandLine::ForCurrentProcess());
(...skipping 11 matching lines...) Expand all
1110 1110
1111 // By default, F15 should work as Control. 1111 // By default, F15 should work as Control.
1112 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_CONTROL, 1112 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_CONTROL,
1113 ui::DomCode::CONTROL_LEFT, 1113 ui::DomCode::CONTROL_LEFT,
1114 ui::EF_CONTROL_DOWN, ui::DomKey::CONTROL), 1114 ui::EF_CONTROL_DOWN, ui::DomKey::CONTROL),
1115 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, 1115 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED,
1116 ui::VKEY_F15, ui::DomCode::F15, 1116 ui::VKEY_F15, ui::DomCode::F15,
1117 ui::EF_NONE, ui::DomKey::F15)); 1117 ui::EF_NONE, ui::DomKey::F15));
1118 // Check that Control is applied to a subsequent key press. 1118 // Check that Control is applied to a subsequent key press.
1119 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, 1119 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A,
1120 ui::DomCode::KEY_A, ui::EF_CONTROL_DOWN, 1120 ui::DomCode::US_A, ui::EF_CONTROL_DOWN,
1121 ui::DomKey::Constant<'a'>::Character), 1121 ui::DomKey::Constant<'a'>::Character),
1122 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, 1122 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A,
1123 ui::DomCode::KEY_A, ui::EF_NONE, 1123 ui::DomCode::US_A, ui::EF_NONE,
1124 ui::DomKey::Constant<'a'>::Character)); 1124 ui::DomKey::Constant<'a'>::Character));
1125 // Release F15 1125 // Release F15
1126 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CONTROL, 1126 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CONTROL,
1127 ui::DomCode::CONTROL_LEFT, ui::EF_NONE, 1127 ui::DomCode::CONTROL_LEFT, ui::EF_NONE,
1128 ui::DomKey::CONTROL), 1128 ui::DomKey::CONTROL),
1129 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED, 1129 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED,
1130 ui::VKEY_F15, ui::DomCode::F15, 1130 ui::VKEY_F15, ui::DomCode::F15,
1131 ui::EF_NONE, ui::DomKey::F15)); 1131 ui::EF_NONE, ui::DomKey::F15));
1132 // Check that Control is no longer applied to a subsequent key press. 1132 // Check that Control is no longer applied to a subsequent key press.
1133 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, 1133 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A,
1134 ui::DomCode::KEY_A, ui::EF_NONE, 1134 ui::DomCode::US_A, ui::EF_NONE,
1135 ui::DomKey::Constant<'a'>::Character), 1135 ui::DomKey::Constant<'a'>::Character),
1136 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, 1136 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A,
1137 ui::DomCode::KEY_A, ui::EF_NONE, 1137 ui::DomCode::US_A, ui::EF_NONE,
1138 ui::DomKey::Constant<'a'>::Character)); 1138 ui::DomKey::Constant<'a'>::Character));
1139 1139
1140 IntegerPrefMember diamond; 1140 IntegerPrefMember diamond;
1141 diamond.Init(prefs::kLanguageRemapDiamondKeyTo, &prefs); 1141 diamond.Init(prefs::kLanguageRemapDiamondKeyTo, &prefs);
1142 diamond.SetValue(chromeos::input_method::kVoidKey); 1142 diamond.SetValue(chromeos::input_method::kVoidKey);
1143 1143
1144 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_UNKNOWN, 1144 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_UNKNOWN,
1145 ui::DomCode::NONE, ui::EF_NONE, 1145 ui::DomCode::NONE, ui::EF_NONE,
1146 ui::DomKey::UNIDENTIFIED), 1146 ui::DomKey::UNIDENTIFIED),
1147 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, 1147 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED,
1148 ui::VKEY_F15, ui::DomCode::F15, 1148 ui::VKEY_F15, ui::DomCode::F15,
1149 ui::EF_NONE, ui::DomKey::F15)); 1149 ui::EF_NONE, ui::DomKey::F15));
1150 // Check that no modifier is applied to another key. 1150 // Check that no modifier is applied to another key.
1151 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, 1151 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A,
1152 ui::DomCode::KEY_A, ui::EF_NONE, 1152 ui::DomCode::US_A, ui::EF_NONE,
1153 ui::DomKey::Constant<'a'>::Character), 1153 ui::DomKey::Constant<'a'>::Character),
1154 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, 1154 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A,
1155 ui::DomCode::KEY_A, ui::EF_NONE, 1155 ui::DomCode::US_A, ui::EF_NONE,
1156 ui::DomKey::Constant<'a'>::Character)); 1156 ui::DomKey::Constant<'a'>::Character));
1157 1157
1158 diamond.SetValue(chromeos::input_method::kControlKey); 1158 diamond.SetValue(chromeos::input_method::kControlKey);
1159 1159
1160 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_CONTROL, 1160 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_CONTROL,
1161 ui::DomCode::CONTROL_LEFT, 1161 ui::DomCode::CONTROL_LEFT,
1162 ui::EF_CONTROL_DOWN, ui::DomKey::CONTROL), 1162 ui::EF_CONTROL_DOWN, ui::DomKey::CONTROL),
1163 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, 1163 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED,
1164 ui::VKEY_F15, ui::DomCode::F15, 1164 ui::VKEY_F15, ui::DomCode::F15,
1165 ui::EF_NONE, ui::DomKey::F15)); 1165 ui::EF_NONE, ui::DomKey::F15));
1166 // Check that Control is applied to a subsequent key press. 1166 // Check that Control is applied to a subsequent key press.
1167 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, 1167 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A,
1168 ui::DomCode::KEY_A, ui::EF_CONTROL_DOWN, 1168 ui::DomCode::US_A, ui::EF_CONTROL_DOWN,
1169 ui::DomKey::Constant<'a'>::Character), 1169 ui::DomKey::Constant<'a'>::Character),
1170 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, 1170 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A,
1171 ui::DomCode::KEY_A, ui::EF_NONE, 1171 ui::DomCode::US_A, ui::EF_NONE,
1172 ui::DomKey::Constant<'a'>::Character)); 1172 ui::DomKey::Constant<'a'>::Character));
1173 // Release F15 1173 // Release F15
1174 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CONTROL, 1174 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CONTROL,
1175 ui::DomCode::CONTROL_LEFT, ui::EF_NONE, 1175 ui::DomCode::CONTROL_LEFT, ui::EF_NONE,
1176 ui::DomKey::CONTROL), 1176 ui::DomKey::CONTROL),
1177 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED, 1177 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED,
1178 ui::VKEY_F15, ui::DomCode::F15, 1178 ui::VKEY_F15, ui::DomCode::F15,
1179 ui::EF_NONE, ui::DomKey::F15)); 1179 ui::EF_NONE, ui::DomKey::F15));
1180 // Check that Control is no longer applied to a subsequent key press. 1180 // Check that Control is no longer applied to a subsequent key press.
1181 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, 1181 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A,
1182 ui::DomCode::KEY_A, ui::EF_NONE, 1182 ui::DomCode::US_A, ui::EF_NONE,
1183 ui::DomKey::Constant<'a'>::Character), 1183 ui::DomKey::Constant<'a'>::Character),
1184 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, 1184 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A,
1185 ui::DomCode::KEY_A, ui::EF_NONE, 1185 ui::DomCode::US_A, ui::EF_NONE,
1186 ui::DomKey::Constant<'a'>::Character)); 1186 ui::DomKey::Constant<'a'>::Character));
1187 1187
1188 diamond.SetValue(chromeos::input_method::kAltKey); 1188 diamond.SetValue(chromeos::input_method::kAltKey);
1189 1189
1190 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_MENU, 1190 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_MENU,
1191 ui::DomCode::ALT_LEFT, ui::EF_ALT_DOWN, 1191 ui::DomCode::ALT_LEFT, ui::EF_ALT_DOWN,
1192 ui::DomKey::ALT), 1192 ui::DomKey::ALT),
1193 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, 1193 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED,
1194 ui::VKEY_F15, ui::DomCode::F15, 1194 ui::VKEY_F15, ui::DomCode::F15,
1195 ui::EF_NONE, ui::DomKey::F15)); 1195 ui::EF_NONE, ui::DomKey::F15));
1196 // Check that Alt is applied to a subsequent key press. 1196 // Check that Alt is applied to a subsequent key press.
1197 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, 1197 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A,
1198 ui::DomCode::KEY_A, ui::EF_ALT_DOWN, 1198 ui::DomCode::US_A, ui::EF_ALT_DOWN,
1199 ui::DomKey::Constant<'a'>::Character), 1199 ui::DomKey::Constant<'a'>::Character),
1200 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, 1200 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A,
1201 ui::DomCode::KEY_A, ui::EF_NONE, 1201 ui::DomCode::US_A, ui::EF_NONE,
1202 ui::DomKey::Constant<'a'>::Character)); 1202 ui::DomKey::Constant<'a'>::Character));
1203 // Release F15 1203 // Release F15
1204 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_MENU, 1204 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_MENU,
1205 ui::DomCode::ALT_LEFT, ui::EF_NONE, 1205 ui::DomCode::ALT_LEFT, ui::EF_NONE,
1206 ui::DomKey::ALT), 1206 ui::DomKey::ALT),
1207 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED, 1207 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED,
1208 ui::VKEY_F15, ui::DomCode::F15, 1208 ui::VKEY_F15, ui::DomCode::F15,
1209 ui::EF_NONE, ui::DomKey::F15)); 1209 ui::EF_NONE, ui::DomKey::F15));
1210 // Check that Alt is no longer applied to a subsequent key press. 1210 // Check that Alt is no longer applied to a subsequent key press.
1211 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, 1211 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A,
1212 ui::DomCode::KEY_A, ui::EF_NONE, 1212 ui::DomCode::US_A, ui::EF_NONE,
1213 ui::DomKey::Constant<'a'>::Character), 1213 ui::DomKey::Constant<'a'>::Character),
1214 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, 1214 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A,
1215 ui::DomCode::KEY_A, ui::EF_NONE, 1215 ui::DomCode::US_A, ui::EF_NONE,
1216 ui::DomKey::Constant<'a'>::Character)); 1216 ui::DomKey::Constant<'a'>::Character));
1217 1217
1218 diamond.SetValue(chromeos::input_method::kCapsLockKey); 1218 diamond.SetValue(chromeos::input_method::kCapsLockKey);
1219 1219
1220 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, 1220 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL,
1221 ui::DomCode::CAPS_LOCK, 1221 ui::DomCode::CAPS_LOCK,
1222 ui::EF_CAPS_LOCK_DOWN | ui::EF_MOD3_DOWN, 1222 ui::EF_CAPS_LOCK_DOWN | ui::EF_MOD3_DOWN,
1223 ui::DomKey::CAPS_LOCK), 1223 ui::DomKey::CAPS_LOCK),
1224 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, 1224 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED,
1225 ui::VKEY_F15, ui::DomCode::F15, 1225 ui::VKEY_F15, ui::DomCode::F15,
1226 ui::EF_NONE, ui::DomKey::F15)); 1226 ui::EF_NONE, ui::DomKey::F15));
1227 // Check that Caps is applied to a subsequent key press. 1227 // Check that Caps is applied to a subsequent key press.
1228 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, 1228 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A,
1229 ui::DomCode::KEY_A, 1229 ui::DomCode::US_A,
1230 ui::EF_CAPS_LOCK_DOWN | ui::EF_MOD3_DOWN, 1230 ui::EF_CAPS_LOCK_DOWN | ui::EF_MOD3_DOWN,
1231 ui::DomKey::Constant<'A'>::Character), 1231 ui::DomKey::Constant<'A'>::Character),
1232 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, 1232 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A,
1233 ui::DomCode::KEY_A, ui::EF_NONE, 1233 ui::DomCode::US_A, ui::EF_NONE,
1234 ui::DomKey::Constant<'a'>::Character)); 1234 ui::DomKey::Constant<'a'>::Character));
1235 // Release F15 1235 // Release F15
1236 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CAPITAL, 1236 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_RELEASED, ui::VKEY_CAPITAL,
1237 ui::DomCode::CAPS_LOCK, ui::EF_NONE, 1237 ui::DomCode::CAPS_LOCK, ui::EF_NONE,
1238 ui::DomKey::CAPS_LOCK), 1238 ui::DomKey::CAPS_LOCK),
1239 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED, 1239 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_RELEASED,
1240 ui::VKEY_F15, ui::DomCode::F15, 1240 ui::VKEY_F15, ui::DomCode::F15,
1241 ui::EF_NONE, ui::DomKey::F15)); 1241 ui::EF_NONE, ui::DomKey::F15));
1242 // Check that Control is no longer applied to a subsequent key press. 1242 // Check that Control is no longer applied to a subsequent key press.
1243 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, 1243 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A,
1244 ui::DomCode::KEY_A, ui::EF_NONE, 1244 ui::DomCode::US_A, ui::EF_NONE,
1245 ui::DomKey::Constant<'a'>::Character), 1245 ui::DomKey::Constant<'a'>::Character),
1246 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, 1246 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A,
1247 ui::DomCode::KEY_A, ui::EF_NONE, 1247 ui::DomCode::US_A, ui::EF_NONE,
1248 ui::DomKey::Constant<'a'>::Character)); 1248 ui::DomKey::Constant<'a'>::Character));
1249 1249
1250 *base::CommandLine::ForCurrentProcess() = original_cl; 1250 *base::CommandLine::ForCurrentProcess() = original_cl;
1251 } 1251 }
1252 1252
1253 TEST_F(EventRewriterTest, TestRewriteCapsLockToControl) { 1253 TEST_F(EventRewriterTest, TestRewriteCapsLockToControl) {
1254 // Remap CapsLock to Control. 1254 // Remap CapsLock to Control.
1255 syncable_prefs::TestingPrefServiceSyncable prefs; 1255 syncable_prefs::TestingPrefServiceSyncable prefs;
1256 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 1256 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1257 IntegerPrefMember control; 1257 IntegerPrefMember control;
1258 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); 1258 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs);
1259 control.SetValue(chromeos::input_method::kControlKey); 1259 control.SetValue(chromeos::input_method::kControlKey);
1260 1260
1261 EventRewriter rewriter(NULL); 1261 EventRewriter rewriter(NULL);
1262 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 1262 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
1263 rewriter.set_pref_service_for_testing(&prefs); 1263 rewriter.set_pref_service_for_testing(&prefs);
1264 1264
1265 KeyTestCase tests[] = { 1265 KeyTestCase tests[] = {
1266 // Press CapsLock+a. Confirm that Mod3Mask is rewritten to ControlMask. 1266 // Press CapsLock+a. Confirm that Mod3Mask is rewritten to ControlMask.
1267 // On Chrome OS, CapsLock works as a Mod3 modifier. 1267 // On Chrome OS, CapsLock works as a Mod3 modifier.
1268 {ui::ET_KEY_PRESSED, 1268 {ui::ET_KEY_PRESSED,
1269 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_MOD3_DOWN, 1269 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_MOD3_DOWN,
1270 ui::DomKey::Constant<'a'>::Character}, 1270 ui::DomKey::Constant<'a'>::Character},
1271 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_CONTROL_DOWN, 1271 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_CONTROL_DOWN,
1272 ui::DomKey::Constant<'a'>::Character}}, 1272 ui::DomKey::Constant<'a'>::Character}},
1273 1273
1274 // Press Control+CapsLock+a. Confirm that Mod3Mask is rewritten to 1274 // Press Control+CapsLock+a. Confirm that Mod3Mask is rewritten to
1275 // ControlMask 1275 // ControlMask
1276 {ui::ET_KEY_PRESSED, 1276 {ui::ET_KEY_PRESSED,
1277 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_CONTROL_DOWN | ui::EF_MOD3_DOWN, 1277 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_CONTROL_DOWN | ui::EF_MOD3_DOWN,
1278 ui::DomKey::Constant<'a'>::Character}, 1278 ui::DomKey::Constant<'a'>::Character},
1279 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_CONTROL_DOWN, 1279 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_CONTROL_DOWN,
1280 ui::DomKey::Constant<'a'>::Character}}, 1280 ui::DomKey::Constant<'a'>::Character}},
1281 1281
1282 // Press Alt+CapsLock+a. Confirm that Mod3Mask is rewritten to 1282 // Press Alt+CapsLock+a. Confirm that Mod3Mask is rewritten to
1283 // ControlMask. 1283 // ControlMask.
1284 {ui::ET_KEY_PRESSED, 1284 {ui::ET_KEY_PRESSED,
1285 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_ALT_DOWN | ui::EF_MOD3_DOWN, 1285 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN | ui::EF_MOD3_DOWN,
1286 ui::DomKey::Constant<'a'>::Character}, 1286 ui::DomKey::Constant<'a'>::Character},
1287 {ui::VKEY_A, ui::DomCode::KEY_A, ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, 1287 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN,
1288 ui::DomKey::Constant<'a'>::Character}}, 1288 ui::DomKey::Constant<'a'>::Character}},
1289 }; 1289 };
1290 1290
1291 for (const auto& test : tests) { 1291 for (const auto& test : tests) {
1292 CheckKeyTestCase(&rewriter, test); 1292 CheckKeyTestCase(&rewriter, test);
1293 } 1293 }
1294 } 1294 }
1295 1295
1296 TEST_F(EventRewriterTest, TestRewriteCapsLockMod3InUse) { 1296 TEST_F(EventRewriterTest, TestRewriteCapsLockMod3InUse) {
1297 // Remap CapsLock to Control. 1297 // Remap CapsLock to Control.
1298 syncable_prefs::TestingPrefServiceSyncable prefs; 1298 syncable_prefs::TestingPrefServiceSyncable prefs;
1299 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 1299 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1300 IntegerPrefMember control; 1300 IntegerPrefMember control;
1301 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); 1301 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs);
1302 control.SetValue(chromeos::input_method::kControlKey); 1302 control.SetValue(chromeos::input_method::kControlKey);
1303 1303
1304 EventRewriter rewriter(NULL); 1304 EventRewriter rewriter(NULL);
1305 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 1305 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
1306 rewriter.set_pref_service_for_testing(&prefs); 1306 rewriter.set_pref_service_for_testing(&prefs);
1307 input_method_manager_mock_->set_mod3_used(true); 1307 input_method_manager_mock_->set_mod3_used(true);
1308 1308
1309 // Press CapsLock+a. Confirm that Mod3Mask is NOT rewritten to ControlMask 1309 // Press CapsLock+a. Confirm that Mod3Mask is NOT rewritten to ControlMask
1310 // when Mod3Mask is already in use by the current XKB layout. 1310 // when Mod3Mask is already in use by the current XKB layout.
1311 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, 1311 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A,
1312 ui::DomCode::KEY_A, ui::EF_NONE, 1312 ui::DomCode::US_A, ui::EF_NONE,
1313 ui::DomKey::Constant<'a'>::Character), 1313 ui::DomKey::Constant<'a'>::Character),
1314 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, 1314 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A,
1315 ui::DomCode::KEY_A, ui::EF_NONE, 1315 ui::DomCode::US_A, ui::EF_NONE,
1316 ui::DomKey::Constant<'a'>::Character)); 1316 ui::DomKey::Constant<'a'>::Character));
1317 1317
1318 input_method_manager_mock_->set_mod3_used(false); 1318 input_method_manager_mock_->set_mod3_used(false);
1319 } 1319 }
1320 1320
1321 TEST_F(EventRewriterTest, TestRewriteExtendedKeys) { 1321 TEST_F(EventRewriterTest, TestRewriteExtendedKeys) {
1322 syncable_prefs::TestingPrefServiceSyncable prefs; 1322 syncable_prefs::TestingPrefServiceSyncable prefs;
1323 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 1323 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1324 EventRewriter rewriter(NULL); 1324 EventRewriter rewriter(NULL);
1325 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 1325 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
(...skipping 975 matching lines...) Expand 10 before | Expand all | Expand 10 after
2301 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, 2301 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT,
2302 ui::DomKey::CONTROL); 2302 ui::DomKey::CONTROL);
2303 PopEvents(&events); 2303 PopEvents(&events);
2304 EXPECT_EQ(1u, events.size()); 2304 EXPECT_EQ(1u, events.size());
2305 EXPECT_EQ(ui::ET_KEY_PRESSED, events[0]->type()); 2305 EXPECT_EQ(ui::ET_KEY_PRESSED, events[0]->type());
2306 EXPECT_EQ(ui::VKEY_CONTROL, 2306 EXPECT_EQ(ui::VKEY_CONTROL,
2307 static_cast<ui::KeyEvent*>(events[0])->key_code()); 2307 static_cast<ui::KeyEvent*>(events[0])->key_code());
2308 2308
2309 // Test key press event is correctly modified and modifier release 2309 // Test key press event is correctly modified and modifier release
2310 // event is sent. 2310 // event is sent.
2311 ui::KeyEvent press(ui::ET_KEY_PRESSED, ui::VKEY_C, ui::DomCode::KEY_C, 2311 ui::KeyEvent press(ui::ET_KEY_PRESSED, ui::VKEY_C, ui::DomCode::US_C,
2312 ui::EF_NONE, ui::DomKey::Constant<'c'>::Character, 2312 ui::EF_NONE, ui::DomKey::Constant<'c'>::Character,
2313 ui::EventTimeForNow()); 2313 ui::EventTimeForNow());
2314 ui::EventDispatchDetails details = Send(&press); 2314 ui::EventDispatchDetails details = Send(&press);
2315 PopEvents(&events); 2315 PopEvents(&events);
2316 EXPECT_EQ(2u, events.size()); 2316 EXPECT_EQ(2u, events.size());
2317 EXPECT_EQ(ui::ET_KEY_PRESSED, events[0]->type()); 2317 EXPECT_EQ(ui::ET_KEY_PRESSED, events[0]->type());
2318 EXPECT_EQ(ui::VKEY_C, static_cast<ui::KeyEvent*>(events[0])->key_code()); 2318 EXPECT_EQ(ui::VKEY_C, static_cast<ui::KeyEvent*>(events[0])->key_code());
2319 EXPECT_TRUE(events[0]->flags() & ui::EF_CONTROL_DOWN); 2319 EXPECT_TRUE(events[0]->flags() & ui::EF_CONTROL_DOWN);
2320 EXPECT_EQ(ui::ET_KEY_RELEASED, events[1]->type()); 2320 EXPECT_EQ(ui::ET_KEY_RELEASED, events[1]->type());
2321 EXPECT_EQ(ui::VKEY_CONTROL, 2321 EXPECT_EQ(ui::VKEY_CONTROL,
2322 static_cast<ui::KeyEvent*>(events[1])->key_code()); 2322 static_cast<ui::KeyEvent*>(events[1])->key_code());
2323 2323
2324 // Test key release event is not modified. 2324 // Test key release event is not modified.
2325 ui::KeyEvent release(ui::ET_KEY_RELEASED, ui::VKEY_C, ui::DomCode::KEY_C, 2325 ui::KeyEvent release(ui::ET_KEY_RELEASED, ui::VKEY_C, ui::DomCode::US_C,
2326 ui::EF_NONE, ui::DomKey::Constant<'c'>::Character, 2326 ui::EF_NONE, ui::DomKey::Constant<'c'>::Character,
2327 ui::EventTimeForNow()); 2327 ui::EventTimeForNow());
2328 details = Send(&release); 2328 details = Send(&release);
2329 ASSERT_FALSE(details.dispatcher_destroyed); 2329 ASSERT_FALSE(details.dispatcher_destroyed);
2330 PopEvents(&events); 2330 PopEvents(&events);
2331 EXPECT_EQ(1u, events.size()); 2331 EXPECT_EQ(1u, events.size());
2332 EXPECT_EQ(ui::ET_KEY_RELEASED, events[0]->type()); 2332 EXPECT_EQ(ui::ET_KEY_RELEASED, events[0]->type());
2333 EXPECT_EQ(ui::VKEY_C, static_cast<ui::KeyEvent*>(events[0])->key_code()); 2333 EXPECT_EQ(ui::VKEY_C, static_cast<ui::KeyEvent*>(events[0])->key_code());
2334 EXPECT_FALSE(events[0]->flags() & ui::EF_CONTROL_DOWN); 2334 EXPECT_FALSE(events[0]->flags() & ui::EF_CONTROL_DOWN);
2335 } 2335 }
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
2430 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); 2430 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN));
2431 2431
2432 // Pressing modifier key should show overlay. 2432 // Pressing modifier key should show overlay.
2433 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, 2433 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT,
2434 ui::DomKey::CONTROL); 2434 ui::DomKey::CONTROL);
2435 EXPECT_TRUE(overlay_->is_visible()); 2435 EXPECT_TRUE(overlay_->is_visible());
2436 EXPECT_EQ(ash::STICKY_KEY_STATE_ENABLED, 2436 EXPECT_EQ(ash::STICKY_KEY_STATE_ENABLED,
2437 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); 2437 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN));
2438 2438
2439 // Pressing a normal key should hide overlay. 2439 // Pressing a normal key should hide overlay.
2440 SendActivateStickyKeyPattern(ui::VKEY_T, ui::DomCode::KEY_T, 2440 SendActivateStickyKeyPattern(ui::VKEY_T, ui::DomCode::US_T,
2441 ui::DomKey::Constant<'t'>::Character); 2441 ui::DomKey::Constant<'t'>::Character);
2442 EXPECT_FALSE(overlay_->is_visible()); 2442 EXPECT_FALSE(overlay_->is_visible());
2443 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED, 2443 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED,
2444 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); 2444 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN));
2445 } 2445 }
2446 2446
2447 TEST_F(StickyKeysOverlayTest, TwoModifiersEnabled) { 2447 TEST_F(StickyKeysOverlayTest, TwoModifiersEnabled) {
2448 EXPECT_FALSE(overlay_->is_visible()); 2448 EXPECT_FALSE(overlay_->is_visible());
2449 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED, 2449 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED,
2450 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); 2450 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN));
2451 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED, 2451 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED,
2452 overlay_->GetModifierKeyState(ui::EF_SHIFT_DOWN)); 2452 overlay_->GetModifierKeyState(ui::EF_SHIFT_DOWN));
2453 2453
2454 // Pressing two modifiers should show overlay. 2454 // Pressing two modifiers should show overlay.
2455 SendActivateStickyKeyPattern(ui::VKEY_SHIFT, ui::DomCode::SHIFT_LEFT, 2455 SendActivateStickyKeyPattern(ui::VKEY_SHIFT, ui::DomCode::SHIFT_LEFT,
2456 ui::DomKey::SHIFT); 2456 ui::DomKey::SHIFT);
2457 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, 2457 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT,
2458 ui::DomKey::CONTROL); 2458 ui::DomKey::CONTROL);
2459 EXPECT_TRUE(overlay_->is_visible()); 2459 EXPECT_TRUE(overlay_->is_visible());
2460 EXPECT_EQ(ash::STICKY_KEY_STATE_ENABLED, 2460 EXPECT_EQ(ash::STICKY_KEY_STATE_ENABLED,
2461 overlay_->GetModifierKeyState(ui::EF_SHIFT_DOWN)); 2461 overlay_->GetModifierKeyState(ui::EF_SHIFT_DOWN));
2462 EXPECT_EQ(ash::STICKY_KEY_STATE_ENABLED, 2462 EXPECT_EQ(ash::STICKY_KEY_STATE_ENABLED,
2463 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); 2463 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN));
2464 2464
2465 // Pressing a normal key should hide overlay. 2465 // Pressing a normal key should hide overlay.
2466 SendActivateStickyKeyPattern(ui::VKEY_N, ui::DomCode::KEY_N, 2466 SendActivateStickyKeyPattern(ui::VKEY_N, ui::DomCode::US_N,
2467 ui::DomKey::Constant<'n'>::Character); 2467 ui::DomKey::Constant<'n'>::Character);
2468 EXPECT_FALSE(overlay_->is_visible()); 2468 EXPECT_FALSE(overlay_->is_visible());
2469 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED, 2469 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED,
2470 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); 2470 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN));
2471 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED, 2471 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED,
2472 overlay_->GetModifierKeyState(ui::EF_SHIFT_DOWN)); 2472 overlay_->GetModifierKeyState(ui::EF_SHIFT_DOWN));
2473 } 2473 }
2474 2474
2475 TEST_F(StickyKeysOverlayTest, LockedModifier) { 2475 TEST_F(StickyKeysOverlayTest, LockedModifier) {
2476 EXPECT_FALSE(overlay_->is_visible()); 2476 EXPECT_FALSE(overlay_->is_visible());
2477 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED, 2477 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED,
2478 overlay_->GetModifierKeyState(ui::EF_ALT_DOWN)); 2478 overlay_->GetModifierKeyState(ui::EF_ALT_DOWN));
2479 2479
2480 // Pressing a modifier key twice should lock modifier and show overlay. 2480 // Pressing a modifier key twice should lock modifier and show overlay.
2481 SendActivateStickyKeyPattern(ui::VKEY_LMENU, ui::DomCode::ALT_LEFT, 2481 SendActivateStickyKeyPattern(ui::VKEY_LMENU, ui::DomCode::ALT_LEFT,
2482 ui::DomKey::ALT); 2482 ui::DomKey::ALT);
2483 SendActivateStickyKeyPattern(ui::VKEY_LMENU, ui::DomCode::ALT_LEFT, 2483 SendActivateStickyKeyPattern(ui::VKEY_LMENU, ui::DomCode::ALT_LEFT,
2484 ui::DomKey::ALT); 2484 ui::DomKey::ALT);
2485 EXPECT_TRUE(overlay_->is_visible()); 2485 EXPECT_TRUE(overlay_->is_visible());
2486 EXPECT_EQ(ash::STICKY_KEY_STATE_LOCKED, 2486 EXPECT_EQ(ash::STICKY_KEY_STATE_LOCKED,
2487 overlay_->GetModifierKeyState(ui::EF_ALT_DOWN)); 2487 overlay_->GetModifierKeyState(ui::EF_ALT_DOWN));
2488 2488
2489 // Pressing a normal key should not hide overlay. 2489 // Pressing a normal key should not hide overlay.
2490 SendActivateStickyKeyPattern(ui::VKEY_D, ui::DomCode::KEY_D, 2490 SendActivateStickyKeyPattern(ui::VKEY_D, ui::DomCode::US_D,
2491 ui::DomKey::Constant<'d'>::Character); 2491 ui::DomKey::Constant<'d'>::Character);
2492 EXPECT_TRUE(overlay_->is_visible()); 2492 EXPECT_TRUE(overlay_->is_visible());
2493 EXPECT_EQ(ash::STICKY_KEY_STATE_LOCKED, 2493 EXPECT_EQ(ash::STICKY_KEY_STATE_LOCKED,
2494 overlay_->GetModifierKeyState(ui::EF_ALT_DOWN)); 2494 overlay_->GetModifierKeyState(ui::EF_ALT_DOWN));
2495 } 2495 }
2496 2496
2497 TEST_F(StickyKeysOverlayTest, LockedAndNormalModifier) { 2497 TEST_F(StickyKeysOverlayTest, LockedAndNormalModifier) {
2498 EXPECT_FALSE(overlay_->is_visible()); 2498 EXPECT_FALSE(overlay_->is_visible());
2499 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED, 2499 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED,
2500 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); 2500 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN));
(...skipping 12 matching lines...) Expand all
2513 // Pressing another modifier key should still show overlay. 2513 // Pressing another modifier key should still show overlay.
2514 SendActivateStickyKeyPattern(ui::VKEY_SHIFT, ui::DomCode::SHIFT_LEFT, 2514 SendActivateStickyKeyPattern(ui::VKEY_SHIFT, ui::DomCode::SHIFT_LEFT,
2515 ui::DomKey::SHIFT); 2515 ui::DomKey::SHIFT);
2516 EXPECT_TRUE(overlay_->is_visible()); 2516 EXPECT_TRUE(overlay_->is_visible());
2517 EXPECT_EQ(ash::STICKY_KEY_STATE_LOCKED, 2517 EXPECT_EQ(ash::STICKY_KEY_STATE_LOCKED,
2518 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); 2518 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN));
2519 EXPECT_EQ(ash::STICKY_KEY_STATE_ENABLED, 2519 EXPECT_EQ(ash::STICKY_KEY_STATE_ENABLED,
2520 overlay_->GetModifierKeyState(ui::EF_SHIFT_DOWN)); 2520 overlay_->GetModifierKeyState(ui::EF_SHIFT_DOWN));
2521 2521
2522 // Pressing a normal key should not hide overlay but disable normal modifier. 2522 // Pressing a normal key should not hide overlay but disable normal modifier.
2523 SendActivateStickyKeyPattern(ui::VKEY_D, ui::DomCode::KEY_D, 2523 SendActivateStickyKeyPattern(ui::VKEY_D, ui::DomCode::US_D,
2524 ui::DomKey::Constant<'d'>::Character); 2524 ui::DomKey::Constant<'d'>::Character);
2525 EXPECT_TRUE(overlay_->is_visible()); 2525 EXPECT_TRUE(overlay_->is_visible());
2526 EXPECT_EQ(ash::STICKY_KEY_STATE_LOCKED, 2526 EXPECT_EQ(ash::STICKY_KEY_STATE_LOCKED,
2527 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN)); 2527 overlay_->GetModifierKeyState(ui::EF_CONTROL_DOWN));
2528 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED, 2528 EXPECT_EQ(ash::STICKY_KEY_STATE_DISABLED,
2529 overlay_->GetModifierKeyState(ui::EF_SHIFT_DOWN)); 2529 overlay_->GetModifierKeyState(ui::EF_SHIFT_DOWN));
2530 } 2530 }
2531 2531
2532 TEST_F(StickyKeysOverlayTest, ModifiersDisabled) { 2532 TEST_F(StickyKeysOverlayTest, ModifiersDisabled) {
2533 EXPECT_FALSE(overlay_->is_visible()); 2533 EXPECT_FALSE(overlay_->is_visible());
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
2617 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); 2617 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN));
2618 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); 2618 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN));
2619 2619
2620 // Turn off AltGr and Mod3. 2620 // Turn off AltGr and Mod3.
2621 sticky_keys_controller_->SetModifiersEnabled(false, false); 2621 sticky_keys_controller_->SetModifiersEnabled(false, false);
2622 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); 2622 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN));
2623 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); 2623 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN));
2624 } 2624 }
2625 2625
2626 } // namespace chromeos 2626 } // namespace chromeos
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/chromeos/input_method/input_method_engine_browsertests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698