Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(565)

Side by Side Diff: chrome/browser/ui/ash/event_rewriter_unittest.cc

Issue 13008005: Short-term fix for CapsLock remapping on chromebooks with external keyboard (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
OLDNEW
« chrome/browser/chromeos/preferences.cc ('K') | « chrome/browser/ui/ash/event_rewriter.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698