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 |