OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/ui/ash/event_rewriter.h" | 5 #include "chrome/browser/ui/ash/event_rewriter.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/prefs/public/pref_member.h" | 9 #include "base/prefs/public/pref_member.h" |
10 #include "base/stringprintf.h" | 10 #include "base/stringprintf.h" |
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
484 ui::EF_ALT_DOWN, | 484 ui::EF_ALT_DOWN, |
485 ui::ET_KEY_PRESSED, | 485 ui::ET_KEY_PRESSED, |
486 keycode_super_r_, | 486 keycode_super_r_, |
487 Mod1Mask)); | 487 Mod1Mask)); |
488 } | 488 } |
489 | 489 |
490 // For crbug.com/133896. | 490 // For crbug.com/133896. |
491 TEST_F(EventRewriterTest, TestRewriteCommandToControlWithControlRemapped) { | 491 TEST_F(EventRewriterTest, TestRewriteCommandToControlWithControlRemapped) { |
492 // Remap Control to Alt. | 492 // Remap Control to Alt. |
493 TestingPrefServiceSyncable prefs; | 493 TestingPrefServiceSyncable prefs; |
494 chromeos::Preferences::RegisterUserPrefs(&prefs); | 494 chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); |
495 IntegerPrefMember control; | 495 IntegerPrefMember control; |
496 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); | 496 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); |
497 control.SetValue(chromeos::input_method::kAltKey); | 497 control.SetValue(chromeos::input_method::kAltKey); |
498 | 498 |
499 EventRewriter rewriter; | 499 EventRewriter rewriter; |
500 rewriter.set_pref_service_for_testing(&prefs); | 500 rewriter.set_pref_service_for_testing(&prefs); |
501 rewriter.DeviceAddedForTesting(0, "PC Keyboard"); | 501 rewriter.DeviceAddedForTesting(0, "PC Keyboard"); |
502 rewriter.set_last_device_id_for_testing(0); | 502 rewriter.set_last_device_id_for_testing(0); |
503 | 503 |
504 // XK_Control_L (left Control key) should be remapped to Alt. | 504 // XK_Control_L (left Control key) should be remapped to Alt. |
(...skipping 608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1113 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 1113 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
1114 ui::ET_KEY_PRESSED, | 1114 ui::ET_KEY_PRESSED, |
1115 keycode_b_, | 1115 keycode_b_, |
1116 ShiftMask | ControlMask | Mod1Mask | | 1116 ShiftMask | ControlMask | Mod1Mask | |
1117 Mod4Mask)); | 1117 Mod4Mask)); |
1118 } | 1118 } |
1119 | 1119 |
1120 TEST_F(EventRewriterTest, TestRewriteModifiersDisableSome) { | 1120 TEST_F(EventRewriterTest, TestRewriteModifiersDisableSome) { |
1121 // Disable Search and Control keys. | 1121 // Disable Search and Control keys. |
1122 TestingPrefServiceSyncable prefs; | 1122 TestingPrefServiceSyncable prefs; |
1123 chromeos::Preferences::RegisterUserPrefs(&prefs); | 1123 chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); |
1124 IntegerPrefMember search; | 1124 IntegerPrefMember search; |
1125 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); | 1125 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); |
1126 search.SetValue(chromeos::input_method::kVoidKey); | 1126 search.SetValue(chromeos::input_method::kVoidKey); |
1127 IntegerPrefMember control; | 1127 IntegerPrefMember control; |
1128 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); | 1128 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); |
1129 control.SetValue(chromeos::input_method::kVoidKey); | 1129 control.SetValue(chromeos::input_method::kVoidKey); |
1130 | 1130 |
1131 EventRewriter rewriter; | 1131 EventRewriter rewriter; |
1132 rewriter.set_pref_service_for_testing(&prefs); | 1132 rewriter.set_pref_service_for_testing(&prefs); |
1133 | 1133 |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1251 ui::VKEY_A, | 1251 ui::VKEY_A, |
1252 ui::EF_ALT_DOWN, | 1252 ui::EF_ALT_DOWN, |
1253 ui::ET_KEY_PRESSED, | 1253 ui::ET_KEY_PRESSED, |
1254 keycode_a_, | 1254 keycode_a_, |
1255 Mod1Mask)); | 1255 Mod1Mask)); |
1256 } | 1256 } |
1257 | 1257 |
1258 TEST_F(EventRewriterTest, TestRewriteModifiersRemapToControl) { | 1258 TEST_F(EventRewriterTest, TestRewriteModifiersRemapToControl) { |
1259 // Remap Search to Control. | 1259 // Remap Search to Control. |
1260 TestingPrefServiceSyncable prefs; | 1260 TestingPrefServiceSyncable prefs; |
1261 chromeos::Preferences::RegisterUserPrefs(&prefs); | 1261 chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); |
1262 IntegerPrefMember search; | 1262 IntegerPrefMember search; |
1263 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); | 1263 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); |
1264 search.SetValue(chromeos::input_method::kControlKey); | 1264 search.SetValue(chromeos::input_method::kControlKey); |
1265 | 1265 |
1266 EventRewriter rewriter; | 1266 EventRewriter rewriter; |
1267 rewriter.set_pref_service_for_testing(&prefs); | 1267 rewriter.set_pref_service_for_testing(&prefs); |
1268 | 1268 |
1269 // Press Search. Confirm the event is now VKEY_CONTROL + XK_Control_L. | 1269 // Press Search. Confirm the event is now VKEY_CONTROL + XK_Control_L. |
1270 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, | 1270 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, |
1271 ui::EF_CONTROL_DOWN, | 1271 ui::EF_CONTROL_DOWN, |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1371 ui::EF_SHIFT_DOWN | | 1371 ui::EF_SHIFT_DOWN | |
1372 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 1372 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
1373 ui::ET_KEY_PRESSED, | 1373 ui::ET_KEY_PRESSED, |
1374 keycode_b_, | 1374 keycode_b_, |
1375 ShiftMask | ControlMask | Mod1Mask)); | 1375 ShiftMask | ControlMask | Mod1Mask)); |
1376 } | 1376 } |
1377 | 1377 |
1378 TEST_F(EventRewriterTest, TestRewriteModifiersRemapMany) { | 1378 TEST_F(EventRewriterTest, TestRewriteModifiersRemapMany) { |
1379 // Remap Search to Alt. | 1379 // Remap Search to Alt. |
1380 TestingPrefServiceSyncable prefs; | 1380 TestingPrefServiceSyncable prefs; |
1381 chromeos::Preferences::RegisterUserPrefs(&prefs); | 1381 chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); |
1382 IntegerPrefMember search; | 1382 IntegerPrefMember search; |
1383 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); | 1383 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); |
1384 search.SetValue(chromeos::input_method::kAltKey); | 1384 search.SetValue(chromeos::input_method::kAltKey); |
1385 | 1385 |
1386 EventRewriter rewriter; | 1386 EventRewriter rewriter; |
1387 rewriter.set_pref_service_for_testing(&prefs); | 1387 rewriter.set_pref_service_for_testing(&prefs); |
1388 | 1388 |
1389 // Press Search. Confirm the event is now VKEY_MENU + XK_Alt_L. | 1389 // Press Search. Confirm the event is now VKEY_MENU + XK_Alt_L. |
1390 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_MENU, | 1390 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_MENU, |
1391 ui::EF_ALT_DOWN, | 1391 ui::EF_ALT_DOWN, |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1483 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 1483 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
1484 ui::ET_KEY_PRESSED, | 1484 ui::ET_KEY_PRESSED, |
1485 keycode_b_, | 1485 keycode_b_, |
1486 ShiftMask | ControlMask | Mod1Mask | | 1486 ShiftMask | ControlMask | Mod1Mask | |
1487 Mod4Mask)); | 1487 Mod4Mask)); |
1488 } | 1488 } |
1489 | 1489 |
1490 TEST_F(EventRewriterTest, TestRewriteModifiersRemapToCapsLock) { | 1490 TEST_F(EventRewriterTest, TestRewriteModifiersRemapToCapsLock) { |
1491 // Remap Search to Caps Lock. | 1491 // Remap Search to Caps Lock. |
1492 TestingPrefServiceSyncable prefs; | 1492 TestingPrefServiceSyncable prefs; |
1493 chromeos::Preferences::RegisterUserPrefs(&prefs); | 1493 chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); |
1494 IntegerPrefMember search; | 1494 IntegerPrefMember search; |
1495 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); | 1495 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); |
1496 search.SetValue(chromeos::input_method::kCapsLockKey); | 1496 search.SetValue(chromeos::input_method::kCapsLockKey); |
1497 | 1497 |
1498 chromeos::input_method::MockXKeyboard xkeyboard; | 1498 chromeos::input_method::MockXKeyboard xkeyboard; |
1499 EventRewriter rewriter; | 1499 EventRewriter rewriter; |
1500 rewriter.set_pref_service_for_testing(&prefs); | 1500 rewriter.set_pref_service_for_testing(&prefs); |
1501 rewriter.set_xkeyboard_for_testing(&xkeyboard); | 1501 rewriter.set_xkeyboard_for_testing(&xkeyboard); |
1502 EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_); | 1502 EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_); |
1503 | 1503 |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1599 LockMask)); | 1599 LockMask)); |
1600 EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_); | 1600 EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_); |
1601 } | 1601 } |
1602 | 1602 |
1603 TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLock) { | 1603 TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLock) { |
1604 // It seems that the X server running on build servers is too old and does not | 1604 // It seems that the X server running on build servers is too old and does not |
1605 // support F16 (i.e. 'XKeysymToKeycode(display_, XF86XK_Launch7)' call). | 1605 // support F16 (i.e. 'XKeysymToKeycode(display_, XF86XK_Launch7)' call). |
1606 // TODO(yusukes): Reenable the test once build servers are upgraded. | 1606 // TODO(yusukes): Reenable the test once build servers are upgraded. |
1607 | 1607 |
1608 TestingPrefServiceSyncable prefs; | 1608 TestingPrefServiceSyncable prefs; |
1609 chromeos::Preferences::RegisterUserPrefs(&prefs); | 1609 chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); |
1610 | 1610 |
1611 chromeos::input_method::MockXKeyboard xkeyboard; | 1611 chromeos::input_method::MockXKeyboard xkeyboard; |
1612 EventRewriter rewriter; | 1612 EventRewriter rewriter; |
1613 rewriter.set_pref_service_for_testing(&prefs); | 1613 rewriter.set_pref_service_for_testing(&prefs); |
1614 rewriter.set_xkeyboard_for_testing(&xkeyboard); | 1614 rewriter.set_xkeyboard_for_testing(&xkeyboard); |
1615 EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_); | 1615 EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_); |
1616 | 1616 |
1617 // On Chrome OS, CapsLock is mapped to F16 with Mod3Mask. | 1617 // On Chrome OS, CapsLock is mapped to F16 with Mod3Mask. |
1618 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CAPITAL, | 1618 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CAPITAL, |
1619 ui::EF_CAPS_LOCK_DOWN, | 1619 ui::EF_CAPS_LOCK_DOWN, |
1620 ui::ET_KEY_PRESSED, | 1620 ui::ET_KEY_PRESSED, |
1621 keycode_caps_lock_, | 1621 keycode_caps_lock_, |
1622 0U, | 1622 0U, |
1623 KeyPress), | 1623 KeyPress), |
1624 GetRewrittenEventAsString(&rewriter, | 1624 GetRewrittenEventAsString(&rewriter, |
1625 ui::VKEY_F16, | 1625 ui::VKEY_F16, |
1626 0, | 1626 0, |
1627 ui::ET_KEY_PRESSED, | 1627 ui::ET_KEY_PRESSED, |
1628 keycode_launch7_, | 1628 keycode_launch7_, |
1629 0U)); | 1629 0U)); |
1630 EXPECT_TRUE(xkeyboard.caps_lock_is_enabled_); | 1630 EXPECT_TRUE(xkeyboard.caps_lock_is_enabled_); |
1631 } | 1631 } |
1632 | 1632 |
1633 TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLockWithFlag) { | 1633 TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLockWithFlag) { |
1634 // TODO(yusukes): Reenable the test once build servers are upgraded. | 1634 // TODO(yusukes): Reenable the test once build servers are upgraded. |
1635 TestingPrefServiceSyncable prefs; | 1635 TestingPrefServiceSyncable prefs; |
1636 chromeos::Preferences::RegisterUserPrefs(&prefs); | 1636 chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); |
1637 | 1637 |
1638 chromeos::input_method::MockXKeyboard xkeyboard; | 1638 chromeos::input_method::MockXKeyboard xkeyboard; |
1639 EventRewriter rewriter; | 1639 EventRewriter rewriter; |
1640 rewriter.set_pref_service_for_testing(&prefs); | 1640 rewriter.set_pref_service_for_testing(&prefs); |
1641 rewriter.set_xkeyboard_for_testing(&xkeyboard); | 1641 rewriter.set_xkeyboard_for_testing(&xkeyboard); |
1642 EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_); | 1642 EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_); |
1643 | 1643 |
1644 // F16 should work as CapsLock even when --has-chromeos-keyboard is specified. | 1644 // F16 should work as CapsLock even when --has-chromeos-keyboard is specified. |
1645 const CommandLine original_cl(*CommandLine::ForCurrentProcess()); | 1645 const CommandLine original_cl(*CommandLine::ForCurrentProcess()); |
1646 CommandLine::ForCurrentProcess()->AppendSwitchASCII( | 1646 CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
(...skipping 13 matching lines...) Expand all Loading... |
1660 0U)); | 1660 0U)); |
1661 EXPECT_TRUE(xkeyboard.caps_lock_is_enabled_); | 1661 EXPECT_TRUE(xkeyboard.caps_lock_is_enabled_); |
1662 | 1662 |
1663 *CommandLine::ForCurrentProcess() = original_cl; | 1663 *CommandLine::ForCurrentProcess() = original_cl; |
1664 } | 1664 } |
1665 | 1665 |
1666 TEST_F(EventRewriterTest, DISABLED_TestRewriteDiamondKey) { | 1666 TEST_F(EventRewriterTest, DISABLED_TestRewriteDiamondKey) { |
1667 // TODO(yusukes): Reenable the test once build servers are upgraded. | 1667 // TODO(yusukes): Reenable the test once build servers are upgraded. |
1668 | 1668 |
1669 TestingPrefServiceSyncable prefs; | 1669 TestingPrefServiceSyncable prefs; |
1670 chromeos::Preferences::RegisterUserPrefs(&prefs); | 1670 chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); |
1671 | 1671 |
1672 chromeos::input_method::MockXKeyboard xkeyboard; | 1672 chromeos::input_method::MockXKeyboard xkeyboard; |
1673 EventRewriter rewriter; | 1673 EventRewriter rewriter; |
1674 rewriter.set_pref_service_for_testing(&prefs); | 1674 rewriter.set_pref_service_for_testing(&prefs); |
1675 rewriter.set_xkeyboard_for_testing(&xkeyboard); | 1675 rewriter.set_xkeyboard_for_testing(&xkeyboard); |
1676 | 1676 |
1677 // F15 should work as Ctrl when --has-chromeos-diamond-key is not specified. | 1677 // F15 should work as Ctrl when --has-chromeos-diamond-key is not specified. |
1678 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, | 1678 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, |
1679 ui::EF_CONTROL_DOWN, | 1679 ui::EF_CONTROL_DOWN, |
1680 ui::ET_KEY_PRESSED, | 1680 ui::ET_KEY_PRESSED, |
(...skipping 24 matching lines...) Expand all Loading... |
1705 } | 1705 } |
1706 | 1706 |
1707 TEST_F(EventRewriterTest, DISABLED_TestRewriteDiamondKeyWithFlag) { | 1707 TEST_F(EventRewriterTest, DISABLED_TestRewriteDiamondKeyWithFlag) { |
1708 // TODO(yusukes): Reenable the test once build servers are upgraded. | 1708 // TODO(yusukes): Reenable the test once build servers are upgraded. |
1709 | 1709 |
1710 const CommandLine original_cl(*CommandLine::ForCurrentProcess()); | 1710 const CommandLine original_cl(*CommandLine::ForCurrentProcess()); |
1711 CommandLine::ForCurrentProcess()->AppendSwitchASCII( | 1711 CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
1712 switches::kHasChromeOSDiamondKey, ""); | 1712 switches::kHasChromeOSDiamondKey, ""); |
1713 | 1713 |
1714 TestingPrefServiceSyncable prefs; | 1714 TestingPrefServiceSyncable prefs; |
1715 chromeos::Preferences::RegisterUserPrefs(&prefs); | 1715 chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); |
1716 | 1716 |
1717 chromeos::input_method::MockXKeyboard xkeyboard; | 1717 chromeos::input_method::MockXKeyboard xkeyboard; |
1718 EventRewriter rewriter; | 1718 EventRewriter rewriter; |
1719 rewriter.set_pref_service_for_testing(&prefs); | 1719 rewriter.set_pref_service_for_testing(&prefs); |
1720 rewriter.set_xkeyboard_for_testing(&xkeyboard); | 1720 rewriter.set_xkeyboard_for_testing(&xkeyboard); |
1721 | 1721 |
1722 // By default, F15 should work as Control. | 1722 // By default, F15 should work as Control. |
1723 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, | 1723 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, |
1724 ui::EF_CONTROL_DOWN, | 1724 ui::EF_CONTROL_DOWN, |
1725 ui::ET_KEY_PRESSED, | 1725 ui::ET_KEY_PRESSED, |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1793 0, | 1793 0, |
1794 ui::ET_KEY_PRESSED, | 1794 ui::ET_KEY_PRESSED, |
1795 keycode_launch6_, | 1795 keycode_launch6_, |
1796 0U)); | 1796 0U)); |
1797 | 1797 |
1798 *CommandLine::ForCurrentProcess() = original_cl; | 1798 *CommandLine::ForCurrentProcess() = original_cl; |
1799 } | 1799 } |
1800 | 1800 |
1801 TEST_F(EventRewriterTest, TestRewriteCapsLockToControl) { | 1801 TEST_F(EventRewriterTest, TestRewriteCapsLockToControl) { |
1802 TestingPrefServiceSyncable prefs; | 1802 TestingPrefServiceSyncable prefs; |
1803 chromeos::Preferences::RegisterUserPrefs(&prefs); | 1803 chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); |
1804 IntegerPrefMember control; | 1804 IntegerPrefMember control; |
1805 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); | 1805 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); |
1806 control.SetValue(chromeos::input_method::kControlKey); | 1806 control.SetValue(chromeos::input_method::kControlKey); |
1807 | 1807 |
1808 EventRewriter rewriter; | 1808 EventRewriter rewriter; |
1809 rewriter.set_pref_service_for_testing(&prefs); | 1809 rewriter.set_pref_service_for_testing(&prefs); |
1810 | 1810 |
1811 // Press CapsLock+a. Confirm that Mod3Mask is rewritten to ControlMask. | 1811 // Press CapsLock+a. Confirm that Mod3Mask is rewritten to ControlMask. |
1812 // On Chrome OS, CapsLock works as a Mod3 modifier. | 1812 // On Chrome OS, CapsLock works as a Mod3 modifier. |
1813 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_A, | 1813 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_A, |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1848 ui::VKEY_A, | 1848 ui::VKEY_A, |
1849 ui::EF_ALT_DOWN, | 1849 ui::EF_ALT_DOWN, |
1850 ui::ET_KEY_PRESSED, | 1850 ui::ET_KEY_PRESSED, |
1851 keycode_a_, | 1851 keycode_a_, |
1852 Mod1Mask | Mod3Mask)); | 1852 Mod1Mask | Mod3Mask)); |
1853 } | 1853 } |
1854 | 1854 |
1855 TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLockToControlWithFlag) { | 1855 TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLockToControlWithFlag) { |
1856 // TODO(yusukes): Reenable the test once build servers are upgraded. | 1856 // TODO(yusukes): Reenable the test once build servers are upgraded. |
1857 TestingPrefServiceSyncable prefs; | 1857 TestingPrefServiceSyncable prefs; |
1858 chromeos::Preferences::RegisterUserPrefs(&prefs); | 1858 chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); |
1859 IntegerPrefMember control; | 1859 IntegerPrefMember control; |
1860 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); | 1860 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); |
1861 control.SetValue(chromeos::input_method::kControlKey); | 1861 control.SetValue(chromeos::input_method::kControlKey); |
1862 | 1862 |
1863 EventRewriter rewriter; | 1863 EventRewriter rewriter; |
1864 rewriter.set_pref_service_for_testing(&prefs); | 1864 rewriter.set_pref_service_for_testing(&prefs); |
1865 | 1865 |
1866 // The prefs::kLanguageRemapCapsLockKeyTo pref should be ignored when | 1866 // The prefs::kLanguageRemapCapsLockKeyTo pref should be ignored when |
1867 // --has-chromeos-keyboard is set. | 1867 // --has-chromeos-keyboard is set. |
1868 const CommandLine original_cl(*CommandLine::ForCurrentProcess()); | 1868 const CommandLine original_cl(*CommandLine::ForCurrentProcess()); |
(...skipping 25 matching lines...) Expand all Loading... |
1894 ui::ET_KEY_PRESSED, | 1894 ui::ET_KEY_PRESSED, |
1895 keycode_a_, | 1895 keycode_a_, |
1896 Mod3Mask)); | 1896 Mod3Mask)); |
1897 | 1897 |
1898 *CommandLine::ForCurrentProcess() = original_cl; | 1898 *CommandLine::ForCurrentProcess() = original_cl; |
1899 } | 1899 } |
1900 | 1900 |
1901 TEST_F(EventRewriterTest, TestRewriteCapsLockMod3InUse) { | 1901 TEST_F(EventRewriterTest, TestRewriteCapsLockMod3InUse) { |
1902 // Remap CapsLock to Control. | 1902 // Remap CapsLock to Control. |
1903 TestingPrefServiceSyncable prefs; | 1903 TestingPrefServiceSyncable prefs; |
1904 chromeos::Preferences::RegisterUserPrefs(&prefs); | 1904 chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); |
1905 IntegerPrefMember control; | 1905 IntegerPrefMember control; |
1906 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); | 1906 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); |
1907 control.SetValue(chromeos::input_method::kControlKey); | 1907 control.SetValue(chromeos::input_method::kControlKey); |
1908 | 1908 |
1909 EventRewriter rewriter; | 1909 EventRewriter rewriter; |
1910 rewriter.set_pref_service_for_testing(&prefs); | 1910 rewriter.set_pref_service_for_testing(&prefs); |
1911 input_method_manager_mock_->SetCurrentInputMethodId("xkb:de:neo:ger"); | 1911 input_method_manager_mock_->SetCurrentInputMethodId("xkb:de:neo:ger"); |
1912 | 1912 |
1913 // Press CapsLock+a. Confirm that Mod3Mask is NOT rewritten to ControlMask | 1913 // Press CapsLock+a. Confirm that Mod3Mask is NOT rewritten to ControlMask |
1914 // when Mod3Mask is already in use by the current XKB layout. | 1914 // when Mod3Mask is already in use by the current XKB layout. |
1915 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_A, | 1915 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_A, |
1916 0, | 1916 0, |
1917 ui::ET_KEY_PRESSED, | 1917 ui::ET_KEY_PRESSED, |
1918 keycode_a_, | 1918 keycode_a_, |
1919 Mod3Mask, | 1919 Mod3Mask, |
1920 KeyPress), | 1920 KeyPress), |
1921 GetRewrittenEventAsString(&rewriter, | 1921 GetRewrittenEventAsString(&rewriter, |
1922 ui::VKEY_A, | 1922 ui::VKEY_A, |
1923 0, | 1923 0, |
1924 ui::ET_KEY_PRESSED, | 1924 ui::ET_KEY_PRESSED, |
1925 keycode_a_, | 1925 keycode_a_, |
1926 Mod3Mask)); | 1926 Mod3Mask)); |
1927 | 1927 |
1928 input_method_manager_mock_->SetCurrentInputMethodId("xkb:us::eng"); | 1928 input_method_manager_mock_->SetCurrentInputMethodId("xkb:us::eng"); |
1929 } | 1929 } |
1930 | 1930 |
1931 TEST_F(EventRewriterTest, TestRewriteExtendedKeys) { | 1931 TEST_F(EventRewriterTest, TestRewriteExtendedKeys) { |
1932 TestingPrefServiceSyncable prefs; | 1932 TestingPrefServiceSyncable prefs; |
1933 chromeos::Preferences::RegisterUserPrefs(&prefs); | 1933 chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); |
1934 EventRewriter rewriter; | 1934 EventRewriter rewriter; |
1935 rewriter.set_pref_service_for_testing(&prefs); | 1935 rewriter.set_pref_service_for_testing(&prefs); |
1936 | 1936 |
1937 struct { | 1937 struct { |
1938 ui::KeyboardCode input; | 1938 ui::KeyboardCode input; |
1939 KeyCode input_native; | 1939 KeyCode input_native; |
1940 unsigned int input_mods; | 1940 unsigned int input_mods; |
1941 unsigned int input_native_mods; | 1941 unsigned int input_native_mods; |
1942 ui::KeyboardCode output; | 1942 ui::KeyboardCode output; |
1943 KeyCode output_native; | 1943 KeyCode output_native; |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2066 chromeos_tests[i].input, | 2066 chromeos_tests[i].input, |
2067 chromeos_tests[i].input_mods, | 2067 chromeos_tests[i].input_mods, |
2068 ui::ET_KEY_PRESSED, | 2068 ui::ET_KEY_PRESSED, |
2069 chromeos_tests[i].input_native, | 2069 chromeos_tests[i].input_native, |
2070 chromeos_tests[i].input_native_mods)); | 2070 chromeos_tests[i].input_native_mods)); |
2071 } | 2071 } |
2072 } | 2072 } |
2073 | 2073 |
2074 TEST_F(EventRewriterTest, TestRewriteFunctionKeys) { | 2074 TEST_F(EventRewriterTest, TestRewriteFunctionKeys) { |
2075 TestingPrefServiceSyncable prefs; | 2075 TestingPrefServiceSyncable prefs; |
2076 chromeos::Preferences::RegisterUserPrefs(&prefs); | 2076 chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); |
2077 EventRewriter rewriter; | 2077 EventRewriter rewriter; |
2078 rewriter.set_pref_service_for_testing(&prefs); | 2078 rewriter.set_pref_service_for_testing(&prefs); |
2079 | 2079 |
2080 struct { | 2080 struct { |
2081 ui::KeyboardCode input; | 2081 ui::KeyboardCode input; |
2082 KeyCode input_native; | 2082 KeyCode input_native; |
2083 unsigned int input_native_mods; | 2083 unsigned int input_native_mods; |
2084 unsigned int input_mods; | 2084 unsigned int input_mods; |
2085 ui::KeyboardCode output; | 2085 ui::KeyboardCode output; |
2086 KeyCode output_native; | 2086 KeyCode output_native; |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2285 tests[i].input_native, | 2285 tests[i].input_native, |
2286 tests[i].input_native_mods)); | 2286 tests[i].input_native_mods)); |
2287 } | 2287 } |
2288 } | 2288 } |
2289 | 2289 |
2290 TEST_F(EventRewriterTest, TestRewriteExtendedKeysWithSearchRemapped) { | 2290 TEST_F(EventRewriterTest, TestRewriteExtendedKeysWithSearchRemapped) { |
2291 const CommandLine original_cl(*CommandLine::ForCurrentProcess()); | 2291 const CommandLine original_cl(*CommandLine::ForCurrentProcess()); |
2292 | 2292 |
2293 // Remap Search to Control. | 2293 // Remap Search to Control. |
2294 TestingPrefServiceSyncable prefs; | 2294 TestingPrefServiceSyncable prefs; |
2295 chromeos::Preferences::RegisterUserPrefs(&prefs); | 2295 chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); |
2296 IntegerPrefMember search; | 2296 IntegerPrefMember search; |
2297 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); | 2297 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); |
2298 search.SetValue(chromeos::input_method::kControlKey); | 2298 search.SetValue(chromeos::input_method::kControlKey); |
2299 | 2299 |
2300 EventRewriter rewriter; | 2300 EventRewriter rewriter; |
2301 rewriter.set_pref_service_for_testing(&prefs); | 2301 rewriter.set_pref_service_for_testing(&prefs); |
2302 | 2302 |
2303 CommandLine::ForCurrentProcess()->AppendSwitchASCII( | 2303 CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
2304 switches::kHasChromeOSKeyboard, ""); | 2304 switches::kHasChromeOSKeyboard, ""); |
2305 | 2305 |
(...skipping 24 matching lines...) Expand all Loading... |
2330 ui::ET_KEY_PRESSED, | 2330 ui::ET_KEY_PRESSED, |
2331 keycode_down_, | 2331 keycode_down_, |
2332 ShiftMask | Mod1Mask | Mod4Mask)); | 2332 ShiftMask | Mod1Mask | Mod4Mask)); |
2333 | 2333 |
2334 *CommandLine::ForCurrentProcess() = original_cl; | 2334 *CommandLine::ForCurrentProcess() = original_cl; |
2335 } | 2335 } |
2336 | 2336 |
2337 TEST_F(EventRewriterTest, TestRewriteKeyEventSentByXSendEvent) { | 2337 TEST_F(EventRewriterTest, TestRewriteKeyEventSentByXSendEvent) { |
2338 // Remap Control to Alt. | 2338 // Remap Control to Alt. |
2339 TestingPrefServiceSyncable prefs; | 2339 TestingPrefServiceSyncable prefs; |
2340 chromeos::Preferences::RegisterUserPrefs(&prefs); | 2340 chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); |
2341 IntegerPrefMember control; | 2341 IntegerPrefMember control; |
2342 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); | 2342 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); |
2343 control.SetValue(chromeos::input_method::kAltKey); | 2343 control.SetValue(chromeos::input_method::kAltKey); |
2344 | 2344 |
2345 EventRewriter rewriter; | 2345 EventRewriter rewriter; |
2346 rewriter.set_pref_service_for_testing(&prefs); | 2346 rewriter.set_pref_service_for_testing(&prefs); |
2347 | 2347 |
2348 // Send left control press. | 2348 // Send left control press. |
2349 std::string rewritten_event; | 2349 std::string rewritten_event; |
2350 { | 2350 { |
(...skipping 14 matching lines...) Expand all Loading... |
2365 // flag in the event is True. | 2365 // flag in the event is True. |
2366 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, | 2366 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, |
2367 ui::EF_CONTROL_DOWN, | 2367 ui::EF_CONTROL_DOWN, |
2368 ui::ET_KEY_PRESSED, | 2368 ui::ET_KEY_PRESSED, |
2369 keycode_control_l_, | 2369 keycode_control_l_, |
2370 0U, | 2370 0U, |
2371 KeyPress), | 2371 KeyPress), |
2372 rewritten_event); | 2372 rewritten_event); |
2373 } | 2373 } |
2374 #endif // OS_CHROMEOS | 2374 #endif // OS_CHROMEOS |
OLD | NEW |