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

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

Issue 2459823002: [Sync] Rename syncable_prefs to sync_preferences. (Closed)
Patch Set: Created 4 years, 1 month 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/common/wm/window_state.h" 9 #include "ash/common/wm/window_state.h"
10 #include "ash/shell.h" 10 #include "ash/shell.h"
11 #include "ash/sticky_keys/sticky_keys_controller.h" 11 #include "ash/sticky_keys/sticky_keys_controller.h"
12 #include "ash/sticky_keys/sticky_keys_overlay.h" 12 #include "ash/sticky_keys/sticky_keys_overlay.h"
13 #include "ash/test/ash_test_base.h" 13 #include "ash/test/ash_test_base.h"
14 #include "ash/wm/window_state_aura.h" 14 #include "ash/wm/window_state_aura.h"
15 #include "base/command_line.h" 15 #include "base/command_line.h"
16 #include "base/macros.h" 16 #include "base/macros.h"
17 #include "base/strings/stringprintf.h" 17 #include "base/strings/stringprintf.h"
18 #include "chrome/browser/chromeos/input_method/input_method_configuration.h" 18 #include "chrome/browser/chromeos/input_method/input_method_configuration.h"
19 #include "chrome/browser/chromeos/input_method/mock_input_method_manager.h" 19 #include "chrome/browser/chromeos/input_method/mock_input_method_manager.h"
20 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" 20 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h"
21 #include "chrome/browser/chromeos/preferences.h" 21 #include "chrome/browser/chromeos/preferences.h"
22 #include "chrome/common/pref_names.h" 22 #include "chrome/common/pref_names.h"
23 #include "chromeos/chromeos_switches.h" 23 #include "chromeos/chromeos_switches.h"
24 #include "components/prefs/pref_member.h" 24 #include "components/prefs/pref_member.h"
25 #include "components/syncable_prefs/testing_pref_service_syncable.h" 25 #include "components/sync_preferences/testing_pref_service_syncable.h"
26 #include "components/user_manager/fake_user_manager.h" 26 #include "components/user_manager/fake_user_manager.h"
27 #include "testing/gtest/include/gtest/gtest.h" 27 #include "testing/gtest/include/gtest/gtest.h"
28 #include "ui/aura/window.h" 28 #include "ui/aura/window.h"
29 #include "ui/aura/window_tree_host.h" 29 #include "ui/aura/window_tree_host.h"
30 #include "ui/base/ime/chromeos/fake_ime_keyboard.h" 30 #include "ui/base/ime/chromeos/fake_ime_keyboard.h"
31 #include "ui/events/event.h" 31 #include "ui/events/event.h"
32 #include "ui/events/event_rewriter.h" 32 #include "ui/events/event_rewriter.h"
33 #include "ui/events/event_utils.h" 33 #include "ui/events/event_utils.h"
34 #include "ui/events/keycodes/dom/dom_code.h" 34 #include "ui/events/keycodes/dom/dom_code.h"
35 #include "ui/events/keycodes/dom/dom_key.h" 35 #include "ui/events/keycodes/dom/dom_key.h"
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 return *new_event ? new_event->get()->AsMouseEvent() : &event; 152 return *new_event ? new_event->get()->AsMouseEvent() : &event;
153 } 153 }
154 154
155 user_manager::FakeUserManager* fake_user_manager_; // Not owned. 155 user_manager::FakeUserManager* fake_user_manager_; // Not owned.
156 chromeos::ScopedUserManagerEnabler user_manager_enabler_; 156 chromeos::ScopedUserManagerEnabler user_manager_enabler_;
157 chromeos::input_method::MockInputMethodManager* input_method_manager_mock_; 157 chromeos::input_method::MockInputMethodManager* input_method_manager_mock_;
158 }; 158 };
159 159
160 TEST_F(EventRewriterTest, TestRewriteCommandToControl) { 160 TEST_F(EventRewriterTest, TestRewriteCommandToControl) {
161 // First, test with a PC keyboard. 161 // First, test with a PC keyboard.
162 syncable_prefs::TestingPrefServiceSyncable prefs; 162 sync_preferences::TestingPrefServiceSyncable prefs;
163 EventRewriter rewriter(NULL); 163 EventRewriter rewriter(NULL);
164 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 164 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
165 rewriter.set_last_keyboard_device_id_for_testing(kKeyboardDeviceId); 165 rewriter.set_last_keyboard_device_id_for_testing(kKeyboardDeviceId);
166 rewriter.set_pref_service_for_testing(&prefs); 166 rewriter.set_pref_service_for_testing(&prefs);
167 167
168 KeyTestCase pc_keyboard_tests[] = { 168 KeyTestCase pc_keyboard_tests[] = {
169 // VKEY_A, Alt modifier. 169 // VKEY_A, Alt modifier.
170 {ui::ET_KEY_PRESSED, 170 {ui::ET_KEY_PRESSED,
171 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN, 171 {ui::VKEY_A, ui::DomCode::US_A, ui::EF_ALT_DOWN,
172 ui::DomKey::UNIDENTIFIED}, 172 ui::DomKey::UNIDENTIFIED},
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 }; 248 };
249 249
250 for (const auto& test : apple_keyboard_tests) { 250 for (const auto& test : apple_keyboard_tests) {
251 CheckKeyTestCase(&rewriter, test); 251 CheckKeyTestCase(&rewriter, test);
252 } 252 }
253 } 253 }
254 254
255 // For crbug.com/133896. 255 // For crbug.com/133896.
256 TEST_F(EventRewriterTest, TestRewriteCommandToControlWithControlRemapped) { 256 TEST_F(EventRewriterTest, TestRewriteCommandToControlWithControlRemapped) {
257 // Remap Control to Alt. 257 // Remap Control to Alt.
258 syncable_prefs::TestingPrefServiceSyncable prefs; 258 sync_preferences::TestingPrefServiceSyncable prefs;
259 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 259 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
260 IntegerPrefMember control; 260 IntegerPrefMember control;
261 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); 261 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs);
262 control.SetValue(chromeos::input_method::kAltKey); 262 control.SetValue(chromeos::input_method::kAltKey);
263 263
264 EventRewriter rewriter(NULL); 264 EventRewriter rewriter(NULL);
265 rewriter.set_pref_service_for_testing(&prefs); 265 rewriter.set_pref_service_for_testing(&prefs);
266 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 266 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
267 rewriter.set_last_keyboard_device_id_for_testing(kKeyboardDeviceId); 267 rewriter.set_last_keyboard_device_id_for_testing(kKeyboardDeviceId);
268 268
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_RIGHT, 300 {ui::VKEY_CONTROL, ui::DomCode::CONTROL_RIGHT,
301 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, ui::DomKey::CONTROL}}, 301 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, ui::DomKey::CONTROL}},
302 }; 302 };
303 303
304 for (const auto& test : apple_keyboard_tests) { 304 for (const auto& test : apple_keyboard_tests) {
305 CheckKeyTestCase(&rewriter, test); 305 CheckKeyTestCase(&rewriter, test);
306 } 306 }
307 } 307 }
308 308
309 void EventRewriterTest::TestRewriteNumPadKeys() { 309 void EventRewriterTest::TestRewriteNumPadKeys() {
310 syncable_prefs::TestingPrefServiceSyncable prefs; 310 sync_preferences::TestingPrefServiceSyncable prefs;
311 EventRewriter rewriter(NULL); 311 EventRewriter rewriter(NULL);
312 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 312 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
313 rewriter.set_last_keyboard_device_id_for_testing(kKeyboardDeviceId); 313 rewriter.set_last_keyboard_device_id_for_testing(kKeyboardDeviceId);
314 rewriter.set_pref_service_for_testing(&prefs); 314 rewriter.set_pref_service_for_testing(&prefs);
315 315
316 KeyTestCase tests[] = { 316 KeyTestCase tests[] = {
317 // XK_KP_Insert (= NumPad 0 without Num Lock), no modifier. 317 // XK_KP_Insert (= NumPad 0 without Num Lock), no modifier.
318 {ui::ET_KEY_PRESSED, 318 {ui::ET_KEY_PRESSED,
319 {ui::VKEY_INSERT, ui::DomCode::NUMPAD0, ui::EF_NONE, ui::DomKey::INSERT}, 319 {ui::VKEY_INSERT, ui::DomCode::NUMPAD0, ui::EF_NONE, ui::DomKey::INSERT},
320 {ui::VKEY_NUMPAD0, ui::DomCode::NUMPAD0, ui::EF_NONE, 320 {ui::VKEY_NUMPAD0, ui::DomCode::NUMPAD0, ui::EF_NONE,
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 489
490 TEST_F(EventRewriterTest, TestRewriteNumPadKeysWithDiamondKeyFlag) { 490 TEST_F(EventRewriterTest, TestRewriteNumPadKeysWithDiamondKeyFlag) {
491 // Make sure the num lock works correctly even when Diamond key exists. 491 // Make sure the num lock works correctly even when Diamond key exists.
492 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( 492 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
493 chromeos::switches::kHasChromeOSDiamondKey, ""); 493 chromeos::switches::kHasChromeOSDiamondKey, "");
494 TestRewriteNumPadKeys(); 494 TestRewriteNumPadKeys();
495 } 495 }
496 496
497 // Tests if the rewriter can handle a Command + Num Pad event. 497 // Tests if the rewriter can handle a Command + Num Pad event.
498 void EventRewriterTest::TestRewriteNumPadKeysOnAppleKeyboard() { 498 void EventRewriterTest::TestRewriteNumPadKeysOnAppleKeyboard() {
499 syncable_prefs::TestingPrefServiceSyncable prefs; 499 sync_preferences::TestingPrefServiceSyncable prefs;
500 EventRewriter rewriter(NULL); 500 EventRewriter rewriter(NULL);
501 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "Apple Keyboard"); 501 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "Apple Keyboard");
502 rewriter.set_last_keyboard_device_id_for_testing(kKeyboardDeviceId); 502 rewriter.set_last_keyboard_device_id_for_testing(kKeyboardDeviceId);
503 rewriter.set_pref_service_for_testing(&prefs); 503 rewriter.set_pref_service_for_testing(&prefs);
504 504
505 KeyTestCase tests[] = { 505 KeyTestCase tests[] = {
506 // XK_KP_End (= NumPad 1 without Num Lock), Win modifier. 506 // XK_KP_End (= NumPad 1 without Num Lock), Win modifier.
507 // The result should be "Num Pad 1 with Control + Num Lock modifiers". 507 // The result should be "Num Pad 1 with Control + Num Lock modifiers".
508 {ui::ET_KEY_PRESSED, 508 {ui::ET_KEY_PRESSED,
509 {ui::VKEY_END, ui::DomCode::NUMPAD1, ui::EF_COMMAND_DOWN, 509 {ui::VKEY_END, ui::DomCode::NUMPAD1, ui::EF_COMMAND_DOWN,
(...skipping 24 matching lines...) Expand all
534 // Makes sure the num lock works correctly even when Diamond key exists. 534 // Makes sure the num lock works correctly even when Diamond key exists.
535 const base::CommandLine original_cl(*base::CommandLine::ForCurrentProcess()); 535 const base::CommandLine original_cl(*base::CommandLine::ForCurrentProcess());
536 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( 536 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
537 chromeos::switches::kHasChromeOSDiamondKey, ""); 537 chromeos::switches::kHasChromeOSDiamondKey, "");
538 538
539 TestRewriteNumPadKeysOnAppleKeyboard(); 539 TestRewriteNumPadKeysOnAppleKeyboard();
540 *base::CommandLine::ForCurrentProcess() = original_cl; 540 *base::CommandLine::ForCurrentProcess() = original_cl;
541 } 541 }
542 542
543 TEST_F(EventRewriterTest, TestRewriteModifiersNoRemap) { 543 TEST_F(EventRewriterTest, TestRewriteModifiersNoRemap) {
544 syncable_prefs::TestingPrefServiceSyncable prefs; 544 sync_preferences::TestingPrefServiceSyncable prefs;
545 EventRewriter rewriter(NULL); 545 EventRewriter rewriter(NULL);
546 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 546 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
547 rewriter.set_pref_service_for_testing(&prefs); 547 rewriter.set_pref_service_for_testing(&prefs);
548 548
549 KeyTestCase tests[] = { 549 KeyTestCase tests[] = {
550 // Press Search. Confirm the event is not rewritten. 550 // Press Search. Confirm the event is not rewritten.
551 {ui::ET_KEY_PRESSED, 551 {ui::ET_KEY_PRESSED,
552 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_NONE, ui::DomKey::META}, 552 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_NONE, ui::DomKey::META},
553 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_COMMAND_DOWN, 553 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_COMMAND_DOWN,
554 ui::DomKey::META}}, 554 ui::DomKey::META}},
(...skipping 30 matching lines...) Expand all
585 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_NONE, ui::DomKey::META}, 585 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_NONE, ui::DomKey::META},
586 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_NONE, ui::DomKey::META}}, 586 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_NONE, ui::DomKey::META}},
587 }; 587 };
588 588
589 for (const auto& test : tests) { 589 for (const auto& test : tests) {
590 CheckKeyTestCase(&rewriter, test); 590 CheckKeyTestCase(&rewriter, test);
591 } 591 }
592 } 592 }
593 593
594 TEST_F(EventRewriterTest, TestRewriteModifiersNoRemapMultipleKeys) { 594 TEST_F(EventRewriterTest, TestRewriteModifiersNoRemapMultipleKeys) {
595 syncable_prefs::TestingPrefServiceSyncable prefs; 595 sync_preferences::TestingPrefServiceSyncable prefs;
596 EventRewriter rewriter(NULL); 596 EventRewriter rewriter(NULL);
597 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 597 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
598 rewriter.set_pref_service_for_testing(&prefs); 598 rewriter.set_pref_service_for_testing(&prefs);
599 599
600 KeyTestCase tests[] = { 600 KeyTestCase tests[] = {
601 // Press Alt with Shift. Confirm the event is not rewritten. 601 // Press Alt with Shift. Confirm the event is not rewritten.
602 {ui::ET_KEY_PRESSED, 602 {ui::ET_KEY_PRESSED,
603 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, 603 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT,
604 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, ui::DomKey::ALT}, 604 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, ui::DomKey::ALT},
605 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT, 605 {ui::VKEY_MENU, ui::DomCode::ALT_LEFT,
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
649 ui::DomKey::Constant<'B'>::Character}}, 649 ui::DomKey::Constant<'B'>::Character}},
650 }; 650 };
651 651
652 for (const auto& test : tests) { 652 for (const auto& test : tests) {
653 CheckKeyTestCase(&rewriter, test); 653 CheckKeyTestCase(&rewriter, test);
654 } 654 }
655 } 655 }
656 656
657 TEST_F(EventRewriterTest, TestRewriteModifiersDisableSome) { 657 TEST_F(EventRewriterTest, TestRewriteModifiersDisableSome) {
658 // Disable Search, Control and Escape keys. 658 // Disable Search, Control and Escape keys.
659 syncable_prefs::TestingPrefServiceSyncable prefs; 659 sync_preferences::TestingPrefServiceSyncable prefs;
660 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 660 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
661 IntegerPrefMember search; 661 IntegerPrefMember search;
662 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); 662 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs);
663 search.SetValue(chromeos::input_method::kVoidKey); 663 search.SetValue(chromeos::input_method::kVoidKey);
664 IntegerPrefMember control; 664 IntegerPrefMember control;
665 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); 665 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs);
666 control.SetValue(chromeos::input_method::kVoidKey); 666 control.SetValue(chromeos::input_method::kVoidKey);
667 IntegerPrefMember escape; 667 IntegerPrefMember escape;
668 escape.Init(prefs::kLanguageRemapEscapeKeyTo, &prefs); 668 escape.Init(prefs::kLanguageRemapEscapeKeyTo, &prefs);
669 escape.SetValue(chromeos::input_method::kVoidKey); 669 escape.SetValue(chromeos::input_method::kVoidKey);
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
751 ui::DomKey::Constant<'a'>::Character}}, 751 ui::DomKey::Constant<'a'>::Character}},
752 }; 752 };
753 753
754 for (const auto& test : tests) { 754 for (const auto& test : tests) {
755 CheckKeyTestCase(&rewriter, test); 755 CheckKeyTestCase(&rewriter, test);
756 } 756 }
757 } 757 }
758 758
759 TEST_F(EventRewriterTest, TestRewriteModifiersRemapToControl) { 759 TEST_F(EventRewriterTest, TestRewriteModifiersRemapToControl) {
760 // Remap Search to Control. 760 // Remap Search to Control.
761 syncable_prefs::TestingPrefServiceSyncable prefs; 761 sync_preferences::TestingPrefServiceSyncable prefs;
762 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 762 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
763 IntegerPrefMember search; 763 IntegerPrefMember search;
764 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); 764 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs);
765 search.SetValue(chromeos::input_method::kControlKey); 765 search.SetValue(chromeos::input_method::kControlKey);
766 766
767 EventRewriter rewriter(NULL); 767 EventRewriter rewriter(NULL);
768 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 768 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
769 rewriter.set_pref_service_for_testing(&prefs); 769 rewriter.set_pref_service_for_testing(&prefs);
770 770
771 KeyTestCase s_tests[] = { 771 KeyTestCase s_tests[] = {
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
829 ui::DomKey::Constant<'B'>::Character}}, 829 ui::DomKey::Constant<'B'>::Character}},
830 }; 830 };
831 831
832 for (const auto& test : sa_tests) { 832 for (const auto& test : sa_tests) {
833 CheckKeyTestCase(&rewriter, test); 833 CheckKeyTestCase(&rewriter, test);
834 } 834 }
835 } 835 }
836 836
837 TEST_F(EventRewriterTest, TestRewriteModifiersRemapToEscape) { 837 TEST_F(EventRewriterTest, TestRewriteModifiersRemapToEscape) {
838 // Remap Search to Escape. 838 // Remap Search to Escape.
839 syncable_prefs::TestingPrefServiceSyncable prefs; 839 sync_preferences::TestingPrefServiceSyncable prefs;
840 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 840 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
841 IntegerPrefMember search; 841 IntegerPrefMember search;
842 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); 842 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs);
843 search.SetValue(chromeos::input_method::kEscapeKey); 843 search.SetValue(chromeos::input_method::kEscapeKey);
844 844
845 EventRewriter rewriter(NULL); 845 EventRewriter rewriter(NULL);
846 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 846 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
847 rewriter.set_pref_service_for_testing(&prefs); 847 rewriter.set_pref_service_for_testing(&prefs);
848 848
849 KeyTestCase tests[] = { 849 KeyTestCase tests[] = {
850 // Press Search. Confirm the event is now VKEY_ESCAPE. 850 // Press Search. Confirm the event is now VKEY_ESCAPE.
851 {ui::ET_KEY_PRESSED, 851 {ui::ET_KEY_PRESSED,
852 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_COMMAND_DOWN, 852 {ui::VKEY_LWIN, ui::DomCode::META_LEFT, ui::EF_COMMAND_DOWN,
853 ui::DomKey::META}, 853 ui::DomKey::META},
854 {ui::VKEY_ESCAPE, ui::DomCode::ESCAPE, ui::EF_NONE, ui::DomKey::ESCAPE}}, 854 {ui::VKEY_ESCAPE, ui::DomCode::ESCAPE, ui::EF_NONE, ui::DomKey::ESCAPE}},
855 }; 855 };
856 856
857 for (const auto& test : tests) { 857 for (const auto& test : tests) {
858 CheckKeyTestCase(&rewriter, test); 858 CheckKeyTestCase(&rewriter, test);
859 } 859 }
860 } 860 }
861 861
862 TEST_F(EventRewriterTest, TestRewriteModifiersRemapMany) { 862 TEST_F(EventRewriterTest, TestRewriteModifiersRemapMany) {
863 // Remap Escape to Alt. 863 // Remap Escape to Alt.
864 syncable_prefs::TestingPrefServiceSyncable prefs; 864 sync_preferences::TestingPrefServiceSyncable prefs;
865 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 865 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
866 IntegerPrefMember escape; 866 IntegerPrefMember escape;
867 escape.Init(prefs::kLanguageRemapEscapeKeyTo, &prefs); 867 escape.Init(prefs::kLanguageRemapEscapeKeyTo, &prefs);
868 escape.SetValue(chromeos::input_method::kAltKey); 868 escape.SetValue(chromeos::input_method::kAltKey);
869 869
870 EventRewriter rewriter(NULL); 870 EventRewriter rewriter(NULL);
871 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 871 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
872 rewriter.set_pref_service_for_testing(&prefs); 872 rewriter.set_pref_service_for_testing(&prefs);
873 873
874 KeyTestCase e2a_tests[] = { 874 KeyTestCase e2a_tests[] = {
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
1005 {ui::VKEY_ESCAPE, ui::DomCode::ESCAPE, ui::EF_NONE, ui::DomKey::ESCAPE}}, 1005 {ui::VKEY_ESCAPE, ui::DomCode::ESCAPE, ui::EF_NONE, ui::DomKey::ESCAPE}},
1006 }; 1006 };
1007 1007
1008 for (const auto& test : b2e_tests) { 1008 for (const auto& test : b2e_tests) {
1009 CheckKeyTestCase(&rewriter, test); 1009 CheckKeyTestCase(&rewriter, test);
1010 } 1010 }
1011 } 1011 }
1012 1012
1013 TEST_F(EventRewriterTest, TestRewriteModifiersRemapToCapsLock) { 1013 TEST_F(EventRewriterTest, TestRewriteModifiersRemapToCapsLock) {
1014 // Remap Search to Caps Lock. 1014 // Remap Search to Caps Lock.
1015 syncable_prefs::TestingPrefServiceSyncable prefs; 1015 sync_preferences::TestingPrefServiceSyncable prefs;
1016 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 1016 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1017 IntegerPrefMember search; 1017 IntegerPrefMember search;
1018 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); 1018 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs);
1019 search.SetValue(chromeos::input_method::kCapsLockKey); 1019 search.SetValue(chromeos::input_method::kCapsLockKey);
1020 1020
1021 chromeos::input_method::FakeImeKeyboard ime_keyboard; 1021 chromeos::input_method::FakeImeKeyboard ime_keyboard;
1022 EventRewriter rewriter(NULL); 1022 EventRewriter rewriter(NULL);
1023 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 1023 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
1024 rewriter.set_pref_service_for_testing(&prefs); 1024 rewriter.set_pref_service_for_testing(&prefs);
1025 rewriter.set_ime_keyboard_for_testing(&ime_keyboard); 1025 rewriter.set_ime_keyboard_for_testing(&ime_keyboard);
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
1095 ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK, 1095 ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK,
1096 ui::EF_NONE, ui::DomKey::CAPS_LOCK)); 1096 ui::EF_NONE, ui::DomKey::CAPS_LOCK));
1097 #if defined(USE_X11) 1097 #if defined(USE_X11)
1098 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_); 1098 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_);
1099 #elif defined(USE_OZONE) 1099 #elif defined(USE_OZONE)
1100 EXPECT_TRUE(ime_keyboard.caps_lock_is_enabled_); 1100 EXPECT_TRUE(ime_keyboard.caps_lock_is_enabled_);
1101 #endif 1101 #endif
1102 } 1102 }
1103 1103
1104 TEST_F(EventRewriterTest, TestRewriteCapsLock) { 1104 TEST_F(EventRewriterTest, TestRewriteCapsLock) {
1105 syncable_prefs::TestingPrefServiceSyncable prefs; 1105 sync_preferences::TestingPrefServiceSyncable prefs;
1106 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 1106 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1107 1107
1108 chromeos::input_method::FakeImeKeyboard ime_keyboard; 1108 chromeos::input_method::FakeImeKeyboard ime_keyboard;
1109 EventRewriter rewriter(NULL); 1109 EventRewriter rewriter(NULL);
1110 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 1110 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
1111 rewriter.set_pref_service_for_testing(&prefs); 1111 rewriter.set_pref_service_for_testing(&prefs);
1112 rewriter.set_ime_keyboard_for_testing(&ime_keyboard); 1112 rewriter.set_ime_keyboard_for_testing(&ime_keyboard);
1113 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_); 1113 EXPECT_FALSE(ime_keyboard.caps_lock_is_enabled_);
1114 1114
1115 // On Chrome OS, CapsLock is mapped to F16 with Mod3Mask. 1115 // On Chrome OS, CapsLock is mapped to F16 with Mod3Mask.
1116 EXPECT_EQ(GetExpectedResultAsString( 1116 EXPECT_EQ(GetExpectedResultAsString(
1117 ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK, 1117 ui::ET_KEY_PRESSED, ui::VKEY_CAPITAL, ui::DomCode::CAPS_LOCK,
1118 ui::EF_CAPS_LOCK_ON | ui::EF_MOD3_DOWN, ui::DomKey::CAPS_LOCK), 1118 ui::EF_CAPS_LOCK_ON | ui::EF_MOD3_DOWN, ui::DomKey::CAPS_LOCK),
1119 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, 1119 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED,
1120 ui::VKEY_F16, ui::DomCode::F16, 1120 ui::VKEY_F16, ui::DomCode::F16,
1121 ui::EF_MOD3_DOWN, ui::DomKey::F16)); 1121 ui::EF_MOD3_DOWN, ui::DomKey::F16));
1122 EXPECT_TRUE(ime_keyboard.caps_lock_is_enabled_); 1122 EXPECT_TRUE(ime_keyboard.caps_lock_is_enabled_);
1123 } 1123 }
1124 1124
1125 TEST_F(EventRewriterTest, TestRewriteDiamondKey) { 1125 TEST_F(EventRewriterTest, TestRewriteDiamondKey) {
1126 syncable_prefs::TestingPrefServiceSyncable prefs; 1126 sync_preferences::TestingPrefServiceSyncable prefs;
1127 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 1127 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1128 1128
1129 chromeos::input_method::FakeImeKeyboard ime_keyboard; 1129 chromeos::input_method::FakeImeKeyboard ime_keyboard;
1130 EventRewriter rewriter(NULL); 1130 EventRewriter rewriter(NULL);
1131 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 1131 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
1132 rewriter.set_pref_service_for_testing(&prefs); 1132 rewriter.set_pref_service_for_testing(&prefs);
1133 rewriter.set_ime_keyboard_for_testing(&ime_keyboard); 1133 rewriter.set_ime_keyboard_for_testing(&ime_keyboard);
1134 1134
1135 KeyTestCase tests[] = { 1135 KeyTestCase tests[] = {
1136 // F15 should work as Ctrl when --has-chromeos-diamond-key is not 1136 // F15 should work as Ctrl when --has-chromeos-diamond-key is not
(...skipping 20 matching lines...) Expand all
1157 for (const auto& test : tests) { 1157 for (const auto& test : tests) {
1158 CheckKeyTestCase(&rewriter, test); 1158 CheckKeyTestCase(&rewriter, test);
1159 } 1159 }
1160 } 1160 }
1161 1161
1162 TEST_F(EventRewriterTest, TestRewriteDiamondKeyWithFlag) { 1162 TEST_F(EventRewriterTest, TestRewriteDiamondKeyWithFlag) {
1163 const base::CommandLine original_cl(*base::CommandLine::ForCurrentProcess()); 1163 const base::CommandLine original_cl(*base::CommandLine::ForCurrentProcess());
1164 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( 1164 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
1165 chromeos::switches::kHasChromeOSDiamondKey, ""); 1165 chromeos::switches::kHasChromeOSDiamondKey, "");
1166 1166
1167 syncable_prefs::TestingPrefServiceSyncable prefs; 1167 sync_preferences::TestingPrefServiceSyncable prefs;
1168 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 1168 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1169 1169
1170 chromeos::input_method::FakeImeKeyboard ime_keyboard; 1170 chromeos::input_method::FakeImeKeyboard ime_keyboard;
1171 EventRewriter rewriter(NULL); 1171 EventRewriter rewriter(NULL);
1172 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 1172 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
1173 rewriter.set_pref_service_for_testing(&prefs); 1173 rewriter.set_pref_service_for_testing(&prefs);
1174 rewriter.set_ime_keyboard_for_testing(&ime_keyboard); 1174 rewriter.set_ime_keyboard_for_testing(&ime_keyboard);
1175 1175
1176 // By default, F15 should work as Control. 1176 // By default, F15 should work as Control.
1177 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_CONTROL, 1177 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_CONTROL,
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
1309 ui::DomKey::Constant<'a'>::Character), 1309 ui::DomKey::Constant<'a'>::Character),
1310 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, 1310 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A,
1311 ui::DomCode::US_A, ui::EF_NONE, 1311 ui::DomCode::US_A, ui::EF_NONE,
1312 ui::DomKey::Constant<'a'>::Character)); 1312 ui::DomKey::Constant<'a'>::Character));
1313 1313
1314 *base::CommandLine::ForCurrentProcess() = original_cl; 1314 *base::CommandLine::ForCurrentProcess() = original_cl;
1315 } 1315 }
1316 1316
1317 TEST_F(EventRewriterTest, TestRewriteCapsLockToControl) { 1317 TEST_F(EventRewriterTest, TestRewriteCapsLockToControl) {
1318 // Remap CapsLock to Control. 1318 // Remap CapsLock to Control.
1319 syncable_prefs::TestingPrefServiceSyncable prefs; 1319 sync_preferences::TestingPrefServiceSyncable prefs;
1320 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 1320 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1321 IntegerPrefMember control; 1321 IntegerPrefMember control;
1322 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); 1322 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs);
1323 control.SetValue(chromeos::input_method::kControlKey); 1323 control.SetValue(chromeos::input_method::kControlKey);
1324 1324
1325 EventRewriter rewriter(NULL); 1325 EventRewriter rewriter(NULL);
1326 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 1326 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
1327 rewriter.set_pref_service_for_testing(&prefs); 1327 rewriter.set_pref_service_for_testing(&prefs);
1328 1328
1329 KeyTestCase tests[] = { 1329 KeyTestCase tests[] = {
(...skipping 22 matching lines...) Expand all
1352 ui::DomKey::Constant<'a'>::Character}}, 1352 ui::DomKey::Constant<'a'>::Character}},
1353 }; 1353 };
1354 1354
1355 for (const auto& test : tests) { 1355 for (const auto& test : tests) {
1356 CheckKeyTestCase(&rewriter, test); 1356 CheckKeyTestCase(&rewriter, test);
1357 } 1357 }
1358 } 1358 }
1359 1359
1360 TEST_F(EventRewriterTest, TestRewriteCapsLockMod3InUse) { 1360 TEST_F(EventRewriterTest, TestRewriteCapsLockMod3InUse) {
1361 // Remap CapsLock to Control. 1361 // Remap CapsLock to Control.
1362 syncable_prefs::TestingPrefServiceSyncable prefs; 1362 sync_preferences::TestingPrefServiceSyncable prefs;
1363 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 1363 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1364 IntegerPrefMember control; 1364 IntegerPrefMember control;
1365 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); 1365 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs);
1366 control.SetValue(chromeos::input_method::kControlKey); 1366 control.SetValue(chromeos::input_method::kControlKey);
1367 1367
1368 EventRewriter rewriter(NULL); 1368 EventRewriter rewriter(NULL);
1369 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 1369 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
1370 rewriter.set_pref_service_for_testing(&prefs); 1370 rewriter.set_pref_service_for_testing(&prefs);
1371 input_method_manager_mock_->set_mod3_used(true); 1371 input_method_manager_mock_->set_mod3_used(true);
1372 1372
1373 // Press CapsLock+a. Confirm that Mod3Mask is NOT rewritten to ControlMask 1373 // Press CapsLock+a. Confirm that Mod3Mask is NOT rewritten to ControlMask
1374 // when Mod3Mask is already in use by the current XKB layout. 1374 // when Mod3Mask is already in use by the current XKB layout.
1375 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A, 1375 EXPECT_EQ(GetExpectedResultAsString(ui::ET_KEY_PRESSED, ui::VKEY_A,
1376 ui::DomCode::US_A, ui::EF_NONE, 1376 ui::DomCode::US_A, ui::EF_NONE,
1377 ui::DomKey::Constant<'a'>::Character), 1377 ui::DomKey::Constant<'a'>::Character),
1378 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A, 1378 GetRewrittenEventAsString(&rewriter, ui::ET_KEY_PRESSED, ui::VKEY_A,
1379 ui::DomCode::US_A, ui::EF_NONE, 1379 ui::DomCode::US_A, ui::EF_NONE,
1380 ui::DomKey::Constant<'a'>::Character)); 1380 ui::DomKey::Constant<'a'>::Character));
1381 1381
1382 input_method_manager_mock_->set_mod3_used(false); 1382 input_method_manager_mock_->set_mod3_used(false);
1383 } 1383 }
1384 1384
1385 TEST_F(EventRewriterTest, TestRewriteExtendedKeys) { 1385 TEST_F(EventRewriterTest, TestRewriteExtendedKeys) {
1386 syncable_prefs::TestingPrefServiceSyncable prefs; 1386 sync_preferences::TestingPrefServiceSyncable prefs;
1387 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 1387 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1388 EventRewriter rewriter(NULL); 1388 EventRewriter rewriter(NULL);
1389 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 1389 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
1390 rewriter.set_last_keyboard_device_id_for_testing(kKeyboardDeviceId); 1390 rewriter.set_last_keyboard_device_id_for_testing(kKeyboardDeviceId);
1391 rewriter.set_pref_service_for_testing(&prefs); 1391 rewriter.set_pref_service_for_testing(&prefs);
1392 1392
1393 KeyTestCase tests[] = { 1393 KeyTestCase tests[] = {
1394 // Alt+Backspace -> Delete 1394 // Alt+Backspace -> Delete
1395 {ui::ET_KEY_PRESSED, 1395 {ui::ET_KEY_PRESSED,
1396 {ui::VKEY_BACK, ui::DomCode::BACKSPACE, ui::EF_ALT_DOWN, 1396 {ui::VKEY_BACK, ui::DomCode::BACKSPACE, ui::EF_ALT_DOWN,
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
1522 ui::DomKey::Constant<'.'>::Character}, 1522 ui::DomKey::Constant<'.'>::Character},
1523 {ui::VKEY_INSERT, ui::DomCode::INSERT, ui::EF_CONTROL_DOWN, 1523 {ui::VKEY_INSERT, ui::DomCode::INSERT, ui::EF_CONTROL_DOWN,
1524 ui::DomKey::INSERT}}}; 1524 ui::DomKey::INSERT}}};
1525 1525
1526 for (const auto& test : tests) { 1526 for (const auto& test : tests) {
1527 CheckKeyTestCase(&rewriter, test); 1527 CheckKeyTestCase(&rewriter, test);
1528 } 1528 }
1529 } 1529 }
1530 1530
1531 TEST_F(EventRewriterTest, TestRewriteFunctionKeys) { 1531 TEST_F(EventRewriterTest, TestRewriteFunctionKeys) {
1532 syncable_prefs::TestingPrefServiceSyncable prefs; 1532 sync_preferences::TestingPrefServiceSyncable prefs;
1533 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 1533 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1534 EventRewriter rewriter(NULL); 1534 EventRewriter rewriter(NULL);
1535 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 1535 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
1536 rewriter.set_pref_service_for_testing(&prefs); 1536 rewriter.set_pref_service_for_testing(&prefs);
1537 1537
1538 KeyTestCase tests[] = { 1538 KeyTestCase tests[] = {
1539 // F1 -> Back 1539 // F1 -> Back
1540 {ui::ET_KEY_PRESSED, 1540 {ui::ET_KEY_PRESSED,
1541 {ui::VKEY_F1, ui::DomCode::F1, ui::EF_NONE, ui::DomKey::F1}, 1541 {ui::VKEY_F1, ui::DomCode::F1, ui::EF_NONE, ui::DomKey::F1},
1542 {ui::VKEY_BROWSER_BACK, ui::DomCode::BROWSER_BACK, ui::EF_NONE, 1542 {ui::VKEY_BROWSER_BACK, ui::DomCode::BROWSER_BACK, ui::EF_NONE,
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
1838 {ui::VKEY_F12, ui::DomCode::F12, ui::EF_COMMAND_DOWN, ui::DomKey::F12}, 1838 {ui::VKEY_F12, ui::DomCode::F12, ui::EF_COMMAND_DOWN, ui::DomKey::F12},
1839 {ui::VKEY_F12, ui::DomCode::F12, ui::EF_NONE, ui::DomKey::F12}}}; 1839 {ui::VKEY_F12, ui::DomCode::F12, ui::EF_NONE, ui::DomKey::F12}}};
1840 1840
1841 for (const auto& test : tests) { 1841 for (const auto& test : tests) {
1842 CheckKeyTestCase(&rewriter, test); 1842 CheckKeyTestCase(&rewriter, test);
1843 } 1843 }
1844 } 1844 }
1845 1845
1846 TEST_F(EventRewriterTest, TestRewriteExtendedKeysWithSearchRemapped) { 1846 TEST_F(EventRewriterTest, TestRewriteExtendedKeysWithSearchRemapped) {
1847 // Remap Search to Control. 1847 // Remap Search to Control.
1848 syncable_prefs::TestingPrefServiceSyncable prefs; 1848 sync_preferences::TestingPrefServiceSyncable prefs;
1849 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 1849 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1850 IntegerPrefMember search; 1850 IntegerPrefMember search;
1851 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); 1851 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs);
1852 search.SetValue(chromeos::input_method::kControlKey); 1852 search.SetValue(chromeos::input_method::kControlKey);
1853 1853
1854 EventRewriter rewriter(NULL); 1854 EventRewriter rewriter(NULL);
1855 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 1855 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
1856 rewriter.set_pref_service_for_testing(&prefs); 1856 rewriter.set_pref_service_for_testing(&prefs);
1857 1857
1858 KeyTestCase tests[] = { 1858 KeyTestCase tests[] = {
(...skipping 11 matching lines...) Expand all
1870 {ui::VKEY_END, ui::DomCode::END, ui::EF_SHIFT_DOWN, ui::DomKey::END}}, 1870 {ui::VKEY_END, ui::DomCode::END, ui::EF_SHIFT_DOWN, ui::DomKey::END}},
1871 }; 1871 };
1872 1872
1873 for (const auto& test : tests) { 1873 for (const auto& test : tests) {
1874 CheckKeyTestCase(&rewriter, test); 1874 CheckKeyTestCase(&rewriter, test);
1875 } 1875 }
1876 } 1876 }
1877 1877
1878 TEST_F(EventRewriterTest, TestRewriteKeyEventSentByXSendEvent) { 1878 TEST_F(EventRewriterTest, TestRewriteKeyEventSentByXSendEvent) {
1879 // Remap Control to Alt. 1879 // Remap Control to Alt.
1880 syncable_prefs::TestingPrefServiceSyncable prefs; 1880 sync_preferences::TestingPrefServiceSyncable prefs;
1881 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 1881 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1882 IntegerPrefMember control; 1882 IntegerPrefMember control;
1883 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); 1883 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs);
1884 control.SetValue(chromeos::input_method::kAltKey); 1884 control.SetValue(chromeos::input_method::kAltKey);
1885 1885
1886 EventRewriter rewriter(NULL); 1886 EventRewriter rewriter(NULL);
1887 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 1887 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
1888 rewriter.set_pref_service_for_testing(&prefs); 1888 rewriter.set_pref_service_for_testing(&prefs);
1889 1889
1890 // Send left control press. 1890 // Send left control press.
(...skipping 21 matching lines...) Expand all
1912 // flag in the event is True. 1912 // flag in the event is True.
1913 EXPECT_EQ(ui::EVENT_REWRITE_CONTINUE, 1913 EXPECT_EQ(ui::EVENT_REWRITE_CONTINUE,
1914 rewriter.RewriteEvent(keyevent, &new_event)); 1914 rewriter.RewriteEvent(keyevent, &new_event));
1915 EXPECT_FALSE(new_event); 1915 EXPECT_FALSE(new_event);
1916 } 1916 }
1917 #endif 1917 #endif
1918 } 1918 }
1919 1919
1920 TEST_F(EventRewriterTest, TestRewriteNonNativeEvent) { 1920 TEST_F(EventRewriterTest, TestRewriteNonNativeEvent) {
1921 // Remap Control to Alt. 1921 // Remap Control to Alt.
1922 syncable_prefs::TestingPrefServiceSyncable prefs; 1922 sync_preferences::TestingPrefServiceSyncable prefs;
1923 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 1923 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1924 IntegerPrefMember control; 1924 IntegerPrefMember control;
1925 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); 1925 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs);
1926 control.SetValue(chromeos::input_method::kAltKey); 1926 control.SetValue(chromeos::input_method::kAltKey);
1927 1927
1928 EventRewriter rewriter(NULL); 1928 EventRewriter rewriter(NULL);
1929 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 1929 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
1930 rewriter.set_pref_service_for_testing(&prefs); 1930 rewriter.set_pref_service_for_testing(&prefs);
1931 1931
1932 const int kTouchId = 2; 1932 const int kTouchId = 2;
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
2012 } 2012 }
2013 2013
2014 void SendActivateStickyKeyPattern(ui::KeyboardCode key_code, 2014 void SendActivateStickyKeyPattern(ui::KeyboardCode key_code,
2015 ui::DomCode code, 2015 ui::DomCode code,
2016 ui::DomKey key) { 2016 ui::DomKey key) {
2017 SendKeyEvent(ui::ET_KEY_PRESSED, key_code, code, key); 2017 SendKeyEvent(ui::ET_KEY_PRESSED, key_code, code, key);
2018 SendKeyEvent(ui::ET_KEY_RELEASED, key_code, code, key); 2018 SendKeyEvent(ui::ET_KEY_RELEASED, key_code, code, key);
2019 } 2019 }
2020 2020
2021 protected: 2021 protected:
2022 syncable_prefs::TestingPrefServiceSyncable* prefs() { return &prefs_; } 2022 sync_preferences::TestingPrefServiceSyncable* prefs() { return &prefs_; }
2023 2023
2024 void PopEvents(ScopedVector<ui::Event>* events) { buffer_.PopEvents(events); } 2024 void PopEvents(ScopedVector<ui::Event>* events) { buffer_.PopEvents(events); }
2025 2025
2026 void SetUp() override { 2026 void SetUp() override {
2027 AshTestBase::SetUp(); 2027 AshTestBase::SetUp();
2028 sticky_keys_controller_ = 2028 sticky_keys_controller_ =
2029 ash::Shell::GetInstance()->sticky_keys_controller(); 2029 ash::Shell::GetInstance()->sticky_keys_controller();
2030 rewriter_.reset(new EventRewriter(sticky_keys_controller_)); 2030 rewriter_.reset(new EventRewriter(sticky_keys_controller_));
2031 chromeos::Preferences::RegisterProfilePrefs(prefs_.registry()); 2031 chromeos::Preferences::RegisterProfilePrefs(prefs_.registry());
2032 rewriter_->set_pref_service_for_testing(&prefs_); 2032 rewriter_->set_pref_service_for_testing(&prefs_);
(...skipping 13 matching lines...) Expand all
2046 ash::StickyKeysController* sticky_keys_controller_; 2046 ash::StickyKeysController* sticky_keys_controller_;
2047 2047
2048 private: 2048 private:
2049 std::unique_ptr<EventRewriter> rewriter_; 2049 std::unique_ptr<EventRewriter> rewriter_;
2050 2050
2051 EventBuffer buffer_; 2051 EventBuffer buffer_;
2052 TestEventSource source_; 2052 TestEventSource source_;
2053 2053
2054 user_manager::FakeUserManager* fake_user_manager_; // Not owned. 2054 user_manager::FakeUserManager* fake_user_manager_; // Not owned.
2055 chromeos::ScopedUserManagerEnabler user_manager_enabler_; 2055 chromeos::ScopedUserManagerEnabler user_manager_enabler_;
2056 syncable_prefs::TestingPrefServiceSyncable prefs_; 2056 sync_preferences::TestingPrefServiceSyncable prefs_;
2057 2057
2058 DISALLOW_COPY_AND_ASSIGN(EventRewriterAshTest); 2058 DISALLOW_COPY_AND_ASSIGN(EventRewriterAshTest);
2059 }; 2059 };
2060 2060
2061 TEST_F(EventRewriterAshTest, TopRowKeysAreFunctionKeys) { 2061 TEST_F(EventRewriterAshTest, TopRowKeysAreFunctionKeys) {
2062 std::unique_ptr<aura::Window> window(CreateTestWindowInShellWithId(1)); 2062 std::unique_ptr<aura::Window> window(CreateTestWindowInShellWithId(1));
2063 ash::wm::WindowState* window_state = ash::wm::GetWindowState(window.get()); 2063 ash::wm::WindowState* window_state = ash::wm::GetWindowState(window.get());
2064 window_state->Activate(); 2064 window_state->Activate();
2065 ScopedVector<ui::Event> events; 2065 ScopedVector<ui::Event> events;
2066 2066
(...skipping 28 matching lines...) Expand all
2095 GetKeyEventAsString(*static_cast<ui::KeyEvent*>(events[0]))); 2095 GetKeyEventAsString(*static_cast<ui::KeyEvent*>(events[0])));
2096 } 2096 }
2097 2097
2098 TEST_F(EventRewriterTest, TestRewrittenModifierClick) { 2098 TEST_F(EventRewriterTest, TestRewrittenModifierClick) {
2099 #if defined(USE_X11) 2099 #if defined(USE_X11)
2100 std::vector<int> device_list; 2100 std::vector<int> device_list;
2101 device_list.push_back(10); 2101 device_list.push_back(10);
2102 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list); 2102 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list);
2103 2103
2104 // Remap Control to Alt. 2104 // Remap Control to Alt.
2105 syncable_prefs::TestingPrefServiceSyncable prefs; 2105 sync_preferences::TestingPrefServiceSyncable prefs;
2106 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 2106 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
2107 IntegerPrefMember control; 2107 IntegerPrefMember control;
2108 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); 2108 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs);
2109 control.SetValue(chromeos::input_method::kAltKey); 2109 control.SetValue(chromeos::input_method::kAltKey);
2110 2110
2111 EventRewriter rewriter(NULL); 2111 EventRewriter rewriter(NULL);
2112 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 2112 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
2113 rewriter.set_pref_service_for_testing(&prefs); 2113 rewriter.set_pref_service_for_testing(&prefs);
2114 2114
2115 // Check that Control + Left Button is converted (via Alt + Left Button) 2115 // Check that Control + Left Button is converted (via Alt + Left Button)
(...skipping 18 matching lines...) Expand all
2134 2134
2135 TEST_F(EventRewriterTest, DontRewriteIfNotRewritten) { 2135 TEST_F(EventRewriterTest, DontRewriteIfNotRewritten) {
2136 // TODO(kpschoedel): pending changes for crbug.com/360377 2136 // TODO(kpschoedel): pending changes for crbug.com/360377
2137 // to |chromeos::EventRewriter::RewriteLocatedEvent() 2137 // to |chromeos::EventRewriter::RewriteLocatedEvent()
2138 #if defined(USE_X11) 2138 #if defined(USE_X11)
2139 std::vector<int> device_list; 2139 std::vector<int> device_list;
2140 device_list.push_back(10); 2140 device_list.push_back(10);
2141 device_list.push_back(11); 2141 device_list.push_back(11);
2142 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list); 2142 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list);
2143 #endif 2143 #endif
2144 syncable_prefs::TestingPrefServiceSyncable prefs; 2144 sync_preferences::TestingPrefServiceSyncable prefs;
2145 EventRewriter rewriter(NULL); 2145 EventRewriter rewriter(NULL);
2146 rewriter.set_pref_service_for_testing(&prefs); 2146 rewriter.set_pref_service_for_testing(&prefs);
2147 const int kLeftAndAltFlag = ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN; 2147 const int kLeftAndAltFlag = ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN;
2148 2148
2149 // Test Alt + Left click. 2149 // Test Alt + Left click.
2150 { 2150 {
2151 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), 2151 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
2152 ui::EventTimeForNow(), kLeftAndAltFlag, 2152 ui::EventTimeForNow(), kLeftAndAltFlag,
2153 ui::EF_LEFT_MOUSE_BUTTON); 2153 ui::EF_LEFT_MOUSE_BUTTON);
2154 ui::EventTestApi test_press(&press); 2154 ui::EventTestApi test_press(&press);
(...skipping 533 matching lines...) Expand 10 before | Expand all | Expand 10 after
2688 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); 2688 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN));
2689 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); 2689 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN));
2690 2690
2691 // Turn off AltGr and Mod3. 2691 // Turn off AltGr and Mod3.
2692 sticky_keys_controller_->SetModifiersEnabled(false, false); 2692 sticky_keys_controller_->SetModifiersEnabled(false, false);
2693 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); 2693 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN));
2694 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); 2694 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN));
2695 } 2695 }
2696 2696
2697 } // namespace chromeos 2697 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698