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 |