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