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

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: Keep existing pref name Created 7 years, 7 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
« no previous file with comments | « chrome/browser/ui/ash/event_rewriter.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/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
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
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
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
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
OLDNEW
« no previous file with comments | « 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