| 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/pref_member.h" | 9 #include "base/prefs/pref_member.h" |
| 10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
| (...skipping 477 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 488 ui::EF_ALT_DOWN, | 488 ui::EF_ALT_DOWN, |
| 489 ui::ET_KEY_PRESSED, | 489 ui::ET_KEY_PRESSED, |
| 490 keycode_super_r_, | 490 keycode_super_r_, |
| 491 Mod1Mask)); | 491 Mod1Mask)); |
| 492 } | 492 } |
| 493 | 493 |
| 494 // For crbug.com/133896. | 494 // For crbug.com/133896. |
| 495 TEST_F(EventRewriterTest, TestRewriteCommandToControlWithControlRemapped) { | 495 TEST_F(EventRewriterTest, TestRewriteCommandToControlWithControlRemapped) { |
| 496 // Remap Control to Alt. | 496 // Remap Control to Alt. |
| 497 TestingPrefServiceSyncable prefs; | 497 TestingPrefServiceSyncable prefs; |
| 498 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); | 498 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); |
| 499 IntegerPrefMember control; | 499 IntegerPrefMember control; |
| 500 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); | 500 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); |
| 501 control.SetValue(chromeos::input_method::kAltKey); | 501 control.SetValue(chromeos::input_method::kAltKey); |
| 502 | 502 |
| 503 EventRewriter rewriter; | 503 EventRewriter rewriter; |
| 504 rewriter.set_pref_service_for_testing(&prefs); | 504 rewriter.set_pref_service_for_testing(&prefs); |
| 505 rewriter.DeviceAddedForTesting(0, "PC Keyboard"); | 505 rewriter.DeviceAddedForTesting(0, "PC Keyboard"); |
| 506 rewriter.set_last_device_id_for_testing(0); | 506 rewriter.set_last_device_id_for_testing(0); |
| 507 | 507 |
| 508 // XK_Control_L (left Control key) should be remapped to Alt. | 508 // XK_Control_L (left Control key) should be remapped to Alt. |
| (...skipping 608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1117 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 1117 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
| 1118 ui::ET_KEY_PRESSED, | 1118 ui::ET_KEY_PRESSED, |
| 1119 keycode_b_, | 1119 keycode_b_, |
| 1120 ShiftMask | ControlMask | Mod1Mask | | 1120 ShiftMask | ControlMask | Mod1Mask | |
| 1121 Mod4Mask)); | 1121 Mod4Mask)); |
| 1122 } | 1122 } |
| 1123 | 1123 |
| 1124 TEST_F(EventRewriterTest, TestRewriteModifiersDisableSome) { | 1124 TEST_F(EventRewriterTest, TestRewriteModifiersDisableSome) { |
| 1125 // Disable Search and Control keys. | 1125 // Disable Search and Control keys. |
| 1126 TestingPrefServiceSyncable prefs; | 1126 TestingPrefServiceSyncable prefs; |
| 1127 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); | 1127 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); |
| 1128 IntegerPrefMember search; | 1128 IntegerPrefMember search; |
| 1129 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); | 1129 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); |
| 1130 search.SetValue(chromeos::input_method::kVoidKey); | 1130 search.SetValue(chromeos::input_method::kVoidKey); |
| 1131 IntegerPrefMember control; | 1131 IntegerPrefMember control; |
| 1132 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); | 1132 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); |
| 1133 control.SetValue(chromeos::input_method::kVoidKey); | 1133 control.SetValue(chromeos::input_method::kVoidKey); |
| 1134 | 1134 |
| 1135 EventRewriter rewriter; | 1135 EventRewriter rewriter; |
| 1136 rewriter.set_pref_service_for_testing(&prefs); | 1136 rewriter.set_pref_service_for_testing(&prefs); |
| 1137 | 1137 |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1255 ui::VKEY_A, | 1255 ui::VKEY_A, |
| 1256 ui::EF_ALT_DOWN, | 1256 ui::EF_ALT_DOWN, |
| 1257 ui::ET_KEY_PRESSED, | 1257 ui::ET_KEY_PRESSED, |
| 1258 keycode_a_, | 1258 keycode_a_, |
| 1259 Mod1Mask)); | 1259 Mod1Mask)); |
| 1260 } | 1260 } |
| 1261 | 1261 |
| 1262 TEST_F(EventRewriterTest, TestRewriteModifiersRemapToControl) { | 1262 TEST_F(EventRewriterTest, TestRewriteModifiersRemapToControl) { |
| 1263 // Remap Search to Control. | 1263 // Remap Search to Control. |
| 1264 TestingPrefServiceSyncable prefs; | 1264 TestingPrefServiceSyncable prefs; |
| 1265 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); | 1265 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); |
| 1266 IntegerPrefMember search; | 1266 IntegerPrefMember search; |
| 1267 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); | 1267 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); |
| 1268 search.SetValue(chromeos::input_method::kControlKey); | 1268 search.SetValue(chromeos::input_method::kControlKey); |
| 1269 | 1269 |
| 1270 EventRewriter rewriter; | 1270 EventRewriter rewriter; |
| 1271 rewriter.set_pref_service_for_testing(&prefs); | 1271 rewriter.set_pref_service_for_testing(&prefs); |
| 1272 | 1272 |
| 1273 // Press Search. Confirm the event is now VKEY_CONTROL + XK_Control_L. | 1273 // Press Search. Confirm the event is now VKEY_CONTROL + XK_Control_L. |
| 1274 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, | 1274 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, |
| 1275 ui::EF_CONTROL_DOWN, | 1275 ui::EF_CONTROL_DOWN, |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1375 ui::EF_SHIFT_DOWN | | 1375 ui::EF_SHIFT_DOWN | |
| 1376 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 1376 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
| 1377 ui::ET_KEY_PRESSED, | 1377 ui::ET_KEY_PRESSED, |
| 1378 keycode_b_, | 1378 keycode_b_, |
| 1379 ShiftMask | ControlMask | Mod1Mask)); | 1379 ShiftMask | ControlMask | Mod1Mask)); |
| 1380 } | 1380 } |
| 1381 | 1381 |
| 1382 TEST_F(EventRewriterTest, TestRewriteModifiersRemapMany) { | 1382 TEST_F(EventRewriterTest, TestRewriteModifiersRemapMany) { |
| 1383 // Remap Search to Alt. | 1383 // Remap Search to Alt. |
| 1384 TestingPrefServiceSyncable prefs; | 1384 TestingPrefServiceSyncable prefs; |
| 1385 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); | 1385 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); |
| 1386 IntegerPrefMember search; | 1386 IntegerPrefMember search; |
| 1387 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); | 1387 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); |
| 1388 search.SetValue(chromeos::input_method::kAltKey); | 1388 search.SetValue(chromeos::input_method::kAltKey); |
| 1389 | 1389 |
| 1390 EventRewriter rewriter; | 1390 EventRewriter rewriter; |
| 1391 rewriter.set_pref_service_for_testing(&prefs); | 1391 rewriter.set_pref_service_for_testing(&prefs); |
| 1392 | 1392 |
| 1393 // Press Search. Confirm the event is now VKEY_MENU + XK_Alt_L. | 1393 // Press Search. Confirm the event is now VKEY_MENU + XK_Alt_L. |
| 1394 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_MENU, | 1394 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_MENU, |
| 1395 ui::EF_ALT_DOWN, | 1395 ui::EF_ALT_DOWN, |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1487 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 1487 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
| 1488 ui::ET_KEY_PRESSED, | 1488 ui::ET_KEY_PRESSED, |
| 1489 keycode_b_, | 1489 keycode_b_, |
| 1490 ShiftMask | ControlMask | Mod1Mask | | 1490 ShiftMask | ControlMask | Mod1Mask | |
| 1491 Mod4Mask)); | 1491 Mod4Mask)); |
| 1492 } | 1492 } |
| 1493 | 1493 |
| 1494 TEST_F(EventRewriterTest, TestRewriteModifiersRemapToCapsLock) { | 1494 TEST_F(EventRewriterTest, TestRewriteModifiersRemapToCapsLock) { |
| 1495 // Remap Search to Caps Lock. | 1495 // Remap Search to Caps Lock. |
| 1496 TestingPrefServiceSyncable prefs; | 1496 TestingPrefServiceSyncable prefs; |
| 1497 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); | 1497 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); |
| 1498 IntegerPrefMember search; | 1498 IntegerPrefMember search; |
| 1499 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); | 1499 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); |
| 1500 search.SetValue(chromeos::input_method::kCapsLockKey); | 1500 search.SetValue(chromeos::input_method::kCapsLockKey); |
| 1501 | 1501 |
| 1502 chromeos::input_method::MockXKeyboard xkeyboard; | 1502 chromeos::input_method::MockXKeyboard xkeyboard; |
| 1503 EventRewriter rewriter; | 1503 EventRewriter rewriter; |
| 1504 rewriter.set_pref_service_for_testing(&prefs); | 1504 rewriter.set_pref_service_for_testing(&prefs); |
| 1505 rewriter.set_xkeyboard_for_testing(&xkeyboard); | 1505 rewriter.set_xkeyboard_for_testing(&xkeyboard); |
| 1506 EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_); | 1506 EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_); |
| 1507 | 1507 |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1603 LockMask)); | 1603 LockMask)); |
| 1604 EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_); | 1604 EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_); |
| 1605 } | 1605 } |
| 1606 | 1606 |
| 1607 TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLock) { | 1607 TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLock) { |
| 1608 // It seems that the X server running on build servers is too old and does not | 1608 // It seems that the X server running on build servers is too old and does not |
| 1609 // support F16 (i.e. 'XKeysymToKeycode(display_, XF86XK_Launch7)' call). | 1609 // support F16 (i.e. 'XKeysymToKeycode(display_, XF86XK_Launch7)' call). |
| 1610 // TODO(yusukes): Reenable the test once build servers are upgraded. | 1610 // TODO(yusukes): Reenable the test once build servers are upgraded. |
| 1611 | 1611 |
| 1612 TestingPrefServiceSyncable prefs; | 1612 TestingPrefServiceSyncable prefs; |
| 1613 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); | 1613 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); |
| 1614 | 1614 |
| 1615 chromeos::input_method::MockXKeyboard xkeyboard; | 1615 chromeos::input_method::MockXKeyboard xkeyboard; |
| 1616 EventRewriter rewriter; | 1616 EventRewriter rewriter; |
| 1617 rewriter.set_pref_service_for_testing(&prefs); | 1617 rewriter.set_pref_service_for_testing(&prefs); |
| 1618 rewriter.set_xkeyboard_for_testing(&xkeyboard); | 1618 rewriter.set_xkeyboard_for_testing(&xkeyboard); |
| 1619 EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_); | 1619 EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_); |
| 1620 | 1620 |
| 1621 // On Chrome OS, CapsLock is mapped to F16 with Mod3Mask. | 1621 // On Chrome OS, CapsLock is mapped to F16 with Mod3Mask. |
| 1622 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CAPITAL, | 1622 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CAPITAL, |
| 1623 ui::EF_CAPS_LOCK_DOWN, | 1623 ui::EF_CAPS_LOCK_DOWN, |
| 1624 ui::ET_KEY_PRESSED, | 1624 ui::ET_KEY_PRESSED, |
| 1625 keycode_caps_lock_, | 1625 keycode_caps_lock_, |
| 1626 0U, | 1626 0U, |
| 1627 KeyPress), | 1627 KeyPress), |
| 1628 GetRewrittenEventAsString(&rewriter, | 1628 GetRewrittenEventAsString(&rewriter, |
| 1629 ui::VKEY_F16, | 1629 ui::VKEY_F16, |
| 1630 0, | 1630 0, |
| 1631 ui::ET_KEY_PRESSED, | 1631 ui::ET_KEY_PRESSED, |
| 1632 keycode_launch7_, | 1632 keycode_launch7_, |
| 1633 0U)); | 1633 0U)); |
| 1634 EXPECT_TRUE(xkeyboard.caps_lock_is_enabled_); | 1634 EXPECT_TRUE(xkeyboard.caps_lock_is_enabled_); |
| 1635 } | 1635 } |
| 1636 | 1636 |
| 1637 TEST_F(EventRewriterTest, DISABLED_TestRewriteDiamondKey) { | 1637 TEST_F(EventRewriterTest, DISABLED_TestRewriteDiamondKey) { |
| 1638 // TODO(yusukes): Reenable the test once build servers are upgraded. | 1638 // TODO(yusukes): Reenable the test once build servers are upgraded. |
| 1639 | 1639 |
| 1640 TestingPrefServiceSyncable prefs; | 1640 TestingPrefServiceSyncable prefs; |
| 1641 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); | 1641 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); |
| 1642 | 1642 |
| 1643 chromeos::input_method::MockXKeyboard xkeyboard; | 1643 chromeos::input_method::MockXKeyboard xkeyboard; |
| 1644 EventRewriter rewriter; | 1644 EventRewriter rewriter; |
| 1645 rewriter.set_pref_service_for_testing(&prefs); | 1645 rewriter.set_pref_service_for_testing(&prefs); |
| 1646 rewriter.set_xkeyboard_for_testing(&xkeyboard); | 1646 rewriter.set_xkeyboard_for_testing(&xkeyboard); |
| 1647 | 1647 |
| 1648 // F15 should work as Ctrl when --has-chromeos-diamond-key is not specified. | 1648 // F15 should work as Ctrl when --has-chromeos-diamond-key is not specified. |
| 1649 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, | 1649 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, |
| 1650 ui::EF_CONTROL_DOWN, | 1650 ui::EF_CONTROL_DOWN, |
| 1651 ui::ET_KEY_PRESSED, | 1651 ui::ET_KEY_PRESSED, |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1676 } | 1676 } |
| 1677 | 1677 |
| 1678 TEST_F(EventRewriterTest, DISABLED_TestRewriteDiamondKeyWithFlag) { | 1678 TEST_F(EventRewriterTest, DISABLED_TestRewriteDiamondKeyWithFlag) { |
| 1679 // TODO(yusukes): Reenable the test once build servers are upgraded. | 1679 // TODO(yusukes): Reenable the test once build servers are upgraded. |
| 1680 | 1680 |
| 1681 const CommandLine original_cl(*CommandLine::ForCurrentProcess()); | 1681 const CommandLine original_cl(*CommandLine::ForCurrentProcess()); |
| 1682 CommandLine::ForCurrentProcess()->AppendSwitchASCII( | 1682 CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
| 1683 chromeos::switches::kHasChromeOSDiamondKey, ""); | 1683 chromeos::switches::kHasChromeOSDiamondKey, ""); |
| 1684 | 1684 |
| 1685 TestingPrefServiceSyncable prefs; | 1685 TestingPrefServiceSyncable prefs; |
| 1686 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); | 1686 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); |
| 1687 | 1687 |
| 1688 chromeos::input_method::MockXKeyboard xkeyboard; | 1688 chromeos::input_method::MockXKeyboard xkeyboard; |
| 1689 EventRewriter rewriter; | 1689 EventRewriter rewriter; |
| 1690 rewriter.set_pref_service_for_testing(&prefs); | 1690 rewriter.set_pref_service_for_testing(&prefs); |
| 1691 rewriter.set_xkeyboard_for_testing(&xkeyboard); | 1691 rewriter.set_xkeyboard_for_testing(&xkeyboard); |
| 1692 | 1692 |
| 1693 // By default, F15 should work as Control. | 1693 // By default, F15 should work as Control. |
| 1694 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, | 1694 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, |
| 1695 ui::EF_CONTROL_DOWN, | 1695 ui::EF_CONTROL_DOWN, |
| 1696 ui::ET_KEY_PRESSED, | 1696 ui::ET_KEY_PRESSED, |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1764 0, | 1764 0, |
| 1765 ui::ET_KEY_PRESSED, | 1765 ui::ET_KEY_PRESSED, |
| 1766 keycode_launch6_, | 1766 keycode_launch6_, |
| 1767 0U)); | 1767 0U)); |
| 1768 | 1768 |
| 1769 *CommandLine::ForCurrentProcess() = original_cl; | 1769 *CommandLine::ForCurrentProcess() = original_cl; |
| 1770 } | 1770 } |
| 1771 | 1771 |
| 1772 TEST_F(EventRewriterTest, TestRewriteCapsLockToControl) { | 1772 TEST_F(EventRewriterTest, TestRewriteCapsLockToControl) { |
| 1773 TestingPrefServiceSyncable prefs; | 1773 TestingPrefServiceSyncable prefs; |
| 1774 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); | 1774 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); |
| 1775 IntegerPrefMember control; | 1775 IntegerPrefMember control; |
| 1776 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); | 1776 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); |
| 1777 control.SetValue(chromeos::input_method::kControlKey); | 1777 control.SetValue(chromeos::input_method::kControlKey); |
| 1778 | 1778 |
| 1779 EventRewriter rewriter; | 1779 EventRewriter rewriter; |
| 1780 rewriter.set_pref_service_for_testing(&prefs); | 1780 rewriter.set_pref_service_for_testing(&prefs); |
| 1781 | 1781 |
| 1782 // Press CapsLock+a. Confirm that Mod3Mask is rewritten to ControlMask. | 1782 // Press CapsLock+a. Confirm that Mod3Mask is rewritten to ControlMask. |
| 1783 // On Chrome OS, CapsLock works as a Mod3 modifier. | 1783 // On Chrome OS, CapsLock works as a Mod3 modifier. |
| 1784 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_A, | 1784 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_A, |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1819 ui::VKEY_A, | 1819 ui::VKEY_A, |
| 1820 ui::EF_ALT_DOWN, | 1820 ui::EF_ALT_DOWN, |
| 1821 ui::ET_KEY_PRESSED, | 1821 ui::ET_KEY_PRESSED, |
| 1822 keycode_a_, | 1822 keycode_a_, |
| 1823 Mod1Mask | Mod3Mask)); | 1823 Mod1Mask | Mod3Mask)); |
| 1824 } | 1824 } |
| 1825 | 1825 |
| 1826 TEST_F(EventRewriterTest, TestRewriteCapsLockMod3InUse) { | 1826 TEST_F(EventRewriterTest, TestRewriteCapsLockMod3InUse) { |
| 1827 // Remap CapsLock to Control. | 1827 // Remap CapsLock to Control. |
| 1828 TestingPrefServiceSyncable prefs; | 1828 TestingPrefServiceSyncable prefs; |
| 1829 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); | 1829 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); |
| 1830 IntegerPrefMember control; | 1830 IntegerPrefMember control; |
| 1831 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); | 1831 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); |
| 1832 control.SetValue(chromeos::input_method::kControlKey); | 1832 control.SetValue(chromeos::input_method::kControlKey); |
| 1833 | 1833 |
| 1834 EventRewriter rewriter; | 1834 EventRewriter rewriter; |
| 1835 rewriter.set_pref_service_for_testing(&prefs); | 1835 rewriter.set_pref_service_for_testing(&prefs); |
| 1836 input_method_manager_mock_->SetCurrentInputMethodId("xkb:de:neo:ger"); | 1836 input_method_manager_mock_->SetCurrentInputMethodId("xkb:de:neo:ger"); |
| 1837 | 1837 |
| 1838 // Press CapsLock+a. Confirm that Mod3Mask is NOT rewritten to ControlMask | 1838 // Press CapsLock+a. Confirm that Mod3Mask is NOT rewritten to ControlMask |
| 1839 // when Mod3Mask is already in use by the current XKB layout. | 1839 // when Mod3Mask is already in use by the current XKB layout. |
| 1840 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_A, | 1840 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_A, |
| 1841 0, | 1841 0, |
| 1842 ui::ET_KEY_PRESSED, | 1842 ui::ET_KEY_PRESSED, |
| 1843 keycode_a_, | 1843 keycode_a_, |
| 1844 Mod3Mask, | 1844 Mod3Mask, |
| 1845 KeyPress), | 1845 KeyPress), |
| 1846 GetRewrittenEventAsString(&rewriter, | 1846 GetRewrittenEventAsString(&rewriter, |
| 1847 ui::VKEY_A, | 1847 ui::VKEY_A, |
| 1848 0, | 1848 0, |
| 1849 ui::ET_KEY_PRESSED, | 1849 ui::ET_KEY_PRESSED, |
| 1850 keycode_a_, | 1850 keycode_a_, |
| 1851 Mod3Mask)); | 1851 Mod3Mask)); |
| 1852 | 1852 |
| 1853 input_method_manager_mock_->SetCurrentInputMethodId("xkb:us::eng"); | 1853 input_method_manager_mock_->SetCurrentInputMethodId("xkb:us::eng"); |
| 1854 } | 1854 } |
| 1855 | 1855 |
| 1856 TEST_F(EventRewriterTest, TestRewriteExtendedKeys) { | 1856 TEST_F(EventRewriterTest, TestRewriteExtendedKeys) { |
| 1857 TestingPrefServiceSyncable prefs; | 1857 TestingPrefServiceSyncable prefs; |
| 1858 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); | 1858 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); |
| 1859 EventRewriter rewriter; | 1859 EventRewriter rewriter; |
| 1860 rewriter.set_pref_service_for_testing(&prefs); | 1860 rewriter.set_pref_service_for_testing(&prefs); |
| 1861 | 1861 |
| 1862 struct { | 1862 struct { |
| 1863 ui::KeyboardCode input; | 1863 ui::KeyboardCode input; |
| 1864 KeyCode input_native; | 1864 KeyCode input_native; |
| 1865 unsigned int input_mods; | 1865 unsigned int input_mods; |
| 1866 unsigned int input_native_mods; | 1866 unsigned int input_native_mods; |
| 1867 ui::KeyboardCode output; | 1867 ui::KeyboardCode output; |
| 1868 KeyCode output_native; | 1868 KeyCode output_native; |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1991 chromeos_tests[i].input, | 1991 chromeos_tests[i].input, |
| 1992 chromeos_tests[i].input_mods, | 1992 chromeos_tests[i].input_mods, |
| 1993 ui::ET_KEY_PRESSED, | 1993 ui::ET_KEY_PRESSED, |
| 1994 chromeos_tests[i].input_native, | 1994 chromeos_tests[i].input_native, |
| 1995 chromeos_tests[i].input_native_mods)); | 1995 chromeos_tests[i].input_native_mods)); |
| 1996 } | 1996 } |
| 1997 } | 1997 } |
| 1998 | 1998 |
| 1999 TEST_F(EventRewriterTest, TestRewriteFunctionKeys) { | 1999 TEST_F(EventRewriterTest, TestRewriteFunctionKeys) { |
| 2000 TestingPrefServiceSyncable prefs; | 2000 TestingPrefServiceSyncable prefs; |
| 2001 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); | 2001 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); |
| 2002 EventRewriter rewriter; | 2002 EventRewriter rewriter; |
| 2003 rewriter.set_pref_service_for_testing(&prefs); | 2003 rewriter.set_pref_service_for_testing(&prefs); |
| 2004 | 2004 |
| 2005 struct { | 2005 struct { |
| 2006 ui::KeyboardCode input; | 2006 ui::KeyboardCode input; |
| 2007 KeyCode input_native; | 2007 KeyCode input_native; |
| 2008 unsigned int input_native_mods; | 2008 unsigned int input_native_mods; |
| 2009 unsigned int input_mods; | 2009 unsigned int input_mods; |
| 2010 ui::KeyboardCode output; | 2010 ui::KeyboardCode output; |
| 2011 KeyCode output_native; | 2011 KeyCode output_native; |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2210 tests[i].input_native, | 2210 tests[i].input_native, |
| 2211 tests[i].input_native_mods)); | 2211 tests[i].input_native_mods)); |
| 2212 } | 2212 } |
| 2213 } | 2213 } |
| 2214 | 2214 |
| 2215 TEST_F(EventRewriterTest, TestRewriteExtendedKeysWithSearchRemapped) { | 2215 TEST_F(EventRewriterTest, TestRewriteExtendedKeysWithSearchRemapped) { |
| 2216 const CommandLine original_cl(*CommandLine::ForCurrentProcess()); | 2216 const CommandLine original_cl(*CommandLine::ForCurrentProcess()); |
| 2217 | 2217 |
| 2218 // Remap Search to Control. | 2218 // Remap Search to Control. |
| 2219 TestingPrefServiceSyncable prefs; | 2219 TestingPrefServiceSyncable prefs; |
| 2220 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); | 2220 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); |
| 2221 IntegerPrefMember search; | 2221 IntegerPrefMember search; |
| 2222 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); | 2222 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); |
| 2223 search.SetValue(chromeos::input_method::kControlKey); | 2223 search.SetValue(chromeos::input_method::kControlKey); |
| 2224 | 2224 |
| 2225 EventRewriter rewriter; | 2225 EventRewriter rewriter; |
| 2226 rewriter.set_pref_service_for_testing(&prefs); | 2226 rewriter.set_pref_service_for_testing(&prefs); |
| 2227 | 2227 |
| 2228 CommandLine::ForCurrentProcess()->AppendSwitchASCII( | 2228 CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
| 2229 chromeos::switches::kHasChromeOSKeyboard, ""); | 2229 chromeos::switches::kHasChromeOSKeyboard, ""); |
| 2230 | 2230 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 2255 ui::ET_KEY_PRESSED, | 2255 ui::ET_KEY_PRESSED, |
| 2256 keycode_down_, | 2256 keycode_down_, |
| 2257 ShiftMask | Mod1Mask | Mod4Mask)); | 2257 ShiftMask | Mod1Mask | Mod4Mask)); |
| 2258 | 2258 |
| 2259 *CommandLine::ForCurrentProcess() = original_cl; | 2259 *CommandLine::ForCurrentProcess() = original_cl; |
| 2260 } | 2260 } |
| 2261 | 2261 |
| 2262 TEST_F(EventRewriterTest, TestRewriteKeyEventSentByXSendEvent) { | 2262 TEST_F(EventRewriterTest, TestRewriteKeyEventSentByXSendEvent) { |
| 2263 // Remap Control to Alt. | 2263 // Remap Control to Alt. |
| 2264 TestingPrefServiceSyncable prefs; | 2264 TestingPrefServiceSyncable prefs; |
| 2265 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); | 2265 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); |
| 2266 IntegerPrefMember control; | 2266 IntegerPrefMember control; |
| 2267 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); | 2267 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); |
| 2268 control.SetValue(chromeos::input_method::kAltKey); | 2268 control.SetValue(chromeos::input_method::kAltKey); |
| 2269 | 2269 |
| 2270 EventRewriter rewriter; | 2270 EventRewriter rewriter; |
| 2271 rewriter.set_pref_service_for_testing(&prefs); | 2271 rewriter.set_pref_service_for_testing(&prefs); |
| 2272 | 2272 |
| 2273 // Send left control press. | 2273 // Send left control press. |
| 2274 std::string rewritten_event; | 2274 std::string rewritten_event; |
| 2275 { | 2275 { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 2290 // flag in the event is True. | 2290 // flag in the event is True. |
| 2291 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, | 2291 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, |
| 2292 ui::EF_CONTROL_DOWN, | 2292 ui::EF_CONTROL_DOWN, |
| 2293 ui::ET_KEY_PRESSED, | 2293 ui::ET_KEY_PRESSED, |
| 2294 keycode_control_l_, | 2294 keycode_control_l_, |
| 2295 0U, | 2295 0U, |
| 2296 KeyPress), | 2296 KeyPress), |
| 2297 rewritten_event); | 2297 rewritten_event); |
| 2298 } | 2298 } |
| 2299 #endif // OS_CHROMEOS | 2299 #endif // OS_CHROMEOS |
| OLD | NEW |