| 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/stringprintf.h" | 10 #include "base/stringprintf.h" |
| (...skipping 1570 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1581 ui::EF_NONE, | 1581 ui::EF_NONE, |
| 1582 ui::ET_KEY_PRESSED, | 1582 ui::ET_KEY_PRESSED, |
| 1583 keycode_caps_lock_, | 1583 keycode_caps_lock_, |
| 1584 0U)); | 1584 0U)); |
| 1585 | 1585 |
| 1586 // Confirm that calling RewriteForTesting() does not change the state of | 1586 // Confirm that calling RewriteForTesting() does not change the state of |
| 1587 // |xkeyboard|. In this case, X Window system itself should change the | 1587 // |xkeyboard|. In this case, X Window system itself should change the |
| 1588 // Caps Lock state, not ash::EventRewriter. | 1588 // Caps Lock state, not ash::EventRewriter. |
| 1589 EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_); | 1589 EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_); |
| 1590 | 1590 |
| 1591 // Press Caps Lock (on an external keyboard). | 1591 // Release Caps Lock (on an external keyboard). |
| 1592 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CAPITAL, | 1592 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CAPITAL, |
| 1593 ui::EF_NONE, | 1593 ui::EF_NONE, |
| 1594 ui::ET_KEY_RELEASED, | 1594 ui::ET_KEY_RELEASED, |
| 1595 keycode_caps_lock_, | 1595 keycode_caps_lock_, |
| 1596 LockMask, | 1596 LockMask, |
| 1597 KeyRelease), | 1597 KeyRelease), |
| 1598 GetRewrittenEventAsString(&rewriter, | 1598 GetRewrittenEventAsString(&rewriter, |
| 1599 ui::VKEY_CAPITAL, | 1599 ui::VKEY_CAPITAL, |
| 1600 ui::EF_CAPS_LOCK_DOWN, | 1600 ui::EF_CAPS_LOCK_DOWN, |
| 1601 ui::ET_KEY_RELEASED, | 1601 ui::ET_KEY_RELEASED, |
| (...skipping 25 matching lines...) Expand all Loading... |
| 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_TestRewriteCapsLockWithFlag) { | |
| 1638 // TODO(yusukes): Reenable the test once build servers are upgraded. | |
| 1639 TestingPrefServiceSyncable prefs; | |
| 1640 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); | |
| 1641 | |
| 1642 chromeos::input_method::MockXKeyboard xkeyboard; | |
| 1643 EventRewriter rewriter; | |
| 1644 rewriter.set_pref_service_for_testing(&prefs); | |
| 1645 rewriter.set_xkeyboard_for_testing(&xkeyboard); | |
| 1646 EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_); | |
| 1647 | |
| 1648 // F16 should work as CapsLock even when --has-chromeos-keyboard is specified. | |
| 1649 const CommandLine original_cl(*CommandLine::ForCurrentProcess()); | |
| 1650 CommandLine::ForCurrentProcess()->AppendSwitchASCII( | |
| 1651 switches::kHasChromeOSKeyboard, ""); | |
| 1652 | |
| 1653 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CAPITAL, | |
| 1654 ui::EF_CAPS_LOCK_DOWN, | |
| 1655 ui::ET_KEY_PRESSED, | |
| 1656 keycode_caps_lock_, | |
| 1657 0U, | |
| 1658 KeyPress), | |
| 1659 GetRewrittenEventAsString(&rewriter, | |
| 1660 ui::VKEY_F16, | |
| 1661 0, | |
| 1662 ui::ET_KEY_PRESSED, | |
| 1663 keycode_launch7_, | |
| 1664 0U)); | |
| 1665 EXPECT_TRUE(xkeyboard.caps_lock_is_enabled_); | |
| 1666 | |
| 1667 *CommandLine::ForCurrentProcess() = original_cl; | |
| 1668 } | |
| 1669 | |
| 1670 TEST_F(EventRewriterTest, DISABLED_TestRewriteDiamondKey) { | 1637 TEST_F(EventRewriterTest, DISABLED_TestRewriteDiamondKey) { |
| 1671 // TODO(yusukes): Reenable the test once build servers are upgraded. | 1638 // TODO(yusukes): Reenable the test once build servers are upgraded. |
| 1672 | 1639 |
| 1673 TestingPrefServiceSyncable prefs; | 1640 TestingPrefServiceSyncable prefs; |
| 1674 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); | 1641 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); |
| 1675 | 1642 |
| 1676 chromeos::input_method::MockXKeyboard xkeyboard; | 1643 chromeos::input_method::MockXKeyboard xkeyboard; |
| 1677 EventRewriter rewriter; | 1644 EventRewriter rewriter; |
| 1678 rewriter.set_pref_service_for_testing(&prefs); | 1645 rewriter.set_pref_service_for_testing(&prefs); |
| 1679 rewriter.set_xkeyboard_for_testing(&xkeyboard); | 1646 rewriter.set_xkeyboard_for_testing(&xkeyboard); |
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1849 Mod1Mask | ControlMask, | 1816 Mod1Mask | ControlMask, |
| 1850 KeyPress), | 1817 KeyPress), |
| 1851 GetRewrittenEventAsString(&rewriter, | 1818 GetRewrittenEventAsString(&rewriter, |
| 1852 ui::VKEY_A, | 1819 ui::VKEY_A, |
| 1853 ui::EF_ALT_DOWN, | 1820 ui::EF_ALT_DOWN, |
| 1854 ui::ET_KEY_PRESSED, | 1821 ui::ET_KEY_PRESSED, |
| 1855 keycode_a_, | 1822 keycode_a_, |
| 1856 Mod1Mask | Mod3Mask)); | 1823 Mod1Mask | Mod3Mask)); |
| 1857 } | 1824 } |
| 1858 | 1825 |
| 1859 TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLockToControlWithFlag) { | |
| 1860 // TODO(yusukes): Reenable the test once build servers are upgraded. | |
| 1861 TestingPrefServiceSyncable prefs; | |
| 1862 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); | |
| 1863 IntegerPrefMember control; | |
| 1864 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); | |
| 1865 control.SetValue(chromeos::input_method::kControlKey); | |
| 1866 | |
| 1867 EventRewriter rewriter; | |
| 1868 rewriter.set_pref_service_for_testing(&prefs); | |
| 1869 | |
| 1870 // The prefs::kLanguageRemapCapsLockKeyTo pref should be ignored when | |
| 1871 // --has-chromeos-keyboard is set. | |
| 1872 const CommandLine original_cl(*CommandLine::ForCurrentProcess()); | |
| 1873 CommandLine::ForCurrentProcess()->AppendSwitchASCII( | |
| 1874 switches::kHasChromeOSKeyboard, ""); | |
| 1875 | |
| 1876 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CAPITAL, | |
| 1877 ui::EF_CAPS_LOCK_DOWN, | |
| 1878 ui::ET_KEY_PRESSED, | |
| 1879 keycode_caps_lock_, | |
| 1880 0U, | |
| 1881 KeyPress), | |
| 1882 GetRewrittenEventAsString(&rewriter, | |
| 1883 ui::VKEY_F16, | |
| 1884 0, | |
| 1885 ui::ET_KEY_PRESSED, | |
| 1886 keycode_launch7_, | |
| 1887 0U)); | |
| 1888 | |
| 1889 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_A, | |
| 1890 0, | |
| 1891 ui::ET_KEY_PRESSED, | |
| 1892 keycode_a_, | |
| 1893 Mod3Mask, | |
| 1894 KeyPress), | |
| 1895 GetRewrittenEventAsString(&rewriter, | |
| 1896 ui::VKEY_A, | |
| 1897 0, | |
| 1898 ui::ET_KEY_PRESSED, | |
| 1899 keycode_a_, | |
| 1900 Mod3Mask)); | |
| 1901 | |
| 1902 *CommandLine::ForCurrentProcess() = original_cl; | |
| 1903 } | |
| 1904 | |
| 1905 TEST_F(EventRewriterTest, TestRewriteCapsLockMod3InUse) { | 1826 TEST_F(EventRewriterTest, TestRewriteCapsLockMod3InUse) { |
| 1906 // Remap CapsLock to Control. | 1827 // Remap CapsLock to Control. |
| 1907 TestingPrefServiceSyncable prefs; | 1828 TestingPrefServiceSyncable prefs; |
| 1908 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); | 1829 chromeos::Preferences::RegisterUserPrefs(prefs.registry()); |
| 1909 IntegerPrefMember control; | 1830 IntegerPrefMember control; |
| 1910 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); | 1831 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); |
| 1911 control.SetValue(chromeos::input_method::kControlKey); | 1832 control.SetValue(chromeos::input_method::kControlKey); |
| 1912 | 1833 |
| 1913 EventRewriter rewriter; | 1834 EventRewriter rewriter; |
| 1914 rewriter.set_pref_service_for_testing(&prefs); | 1835 rewriter.set_pref_service_for_testing(&prefs); |
| (...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2369 // flag in the event is True. | 2290 // flag in the event is True. |
| 2370 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, | 2291 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, |
| 2371 ui::EF_CONTROL_DOWN, | 2292 ui::EF_CONTROL_DOWN, |
| 2372 ui::ET_KEY_PRESSED, | 2293 ui::ET_KEY_PRESSED, |
| 2373 keycode_control_l_, | 2294 keycode_control_l_, |
| 2374 0U, | 2295 0U, |
| 2375 KeyPress), | 2296 KeyPress), |
| 2376 rewritten_event); | 2297 rewritten_event); |
| 2377 } | 2298 } |
| 2378 #endif // OS_CHROMEOS | 2299 #endif // OS_CHROMEOS |
| OLD | NEW |