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

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

Issue 11421055: Add power-user keyboard mode for ChromeOS with Search key acting as a typical Fn key. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Don't avoid remapping Alt-Up etc when a PrefService isn't around Created 8 years, 1 month 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 | Annotate | Revision Log
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/stringprintf.h" 9 #include "base/stringprintf.h"
10 #include "chrome/browser/api/prefs/pref_member.h" 10 #include "chrome/browser/api/prefs/pref_member.h"
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 keycode_num_pad_prior_(XKeysymToKeycode(display_, XK_KP_Prior)), 103 keycode_num_pad_prior_(XKeysymToKeycode(display_, XK_KP_Prior)),
104 keycode_num_pad_right_(XKeysymToKeycode(display_, XK_KP_Right)), 104 keycode_num_pad_right_(XKeysymToKeycode(display_, XK_KP_Right)),
105 keycode_num_pad_up_(XKeysymToKeycode(display_, XK_KP_Up)), 105 keycode_num_pad_up_(XKeysymToKeycode(display_, XK_KP_Up)),
106 keycode_super_l_(XKeysymToKeycode(display_, XK_Super_L)), 106 keycode_super_l_(XKeysymToKeycode(display_, XK_Super_L)),
107 keycode_super_r_(XKeysymToKeycode(display_, XK_Super_R)), 107 keycode_super_r_(XKeysymToKeycode(display_, XK_Super_R)),
108 keycode_void_symbol_(XKeysymToKeycode(display_, XK_VoidSymbol)), 108 keycode_void_symbol_(XKeysymToKeycode(display_, XK_VoidSymbol)),
109 keycode_delete_(XKeysymToKeycode(display_, XK_Delete)), 109 keycode_delete_(XKeysymToKeycode(display_, XK_Delete)),
110 keycode_backspace_(XKeysymToKeycode(display_, XK_BackSpace)), 110 keycode_backspace_(XKeysymToKeycode(display_, XK_BackSpace)),
111 keycode_up_(XKeysymToKeycode(display_, XK_Up)), 111 keycode_up_(XKeysymToKeycode(display_, XK_Up)),
112 keycode_down_(XKeysymToKeycode(display_, XK_Down)), 112 keycode_down_(XKeysymToKeycode(display_, XK_Down)),
113 keycode_left_(XKeysymToKeycode(display_, XK_Left)),
114 keycode_right_(XKeysymToKeycode(display_, XK_Right)),
113 keycode_prior_(XKeysymToKeycode(display_, XK_Prior)), 115 keycode_prior_(XKeysymToKeycode(display_, XK_Prior)),
114 keycode_next_(XKeysymToKeycode(display_, XK_Next)), 116 keycode_next_(XKeysymToKeycode(display_, XK_Next)),
115 keycode_home_(XKeysymToKeycode(display_, XK_Home)), 117 keycode_home_(XKeysymToKeycode(display_, XK_Home)),
116 keycode_end_(XKeysymToKeycode(display_, XK_End)), 118 keycode_end_(XKeysymToKeycode(display_, XK_End)),
117 keycode_launch7_(XKeysymToKeycode(display_, XF86XK_Launch7)), 119 keycode_launch7_(XKeysymToKeycode(display_, XF86XK_Launch7)),
118 input_method_manager_mock_(NULL) { 120 input_method_manager_mock_(NULL) {
119 } 121 }
120 virtual ~EventRewriterTest() {} 122 virtual ~EventRewriterTest() {}
121 123
122 virtual void SetUp() { 124 virtual void SetUp() {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 const KeyCode keycode_num_pad_prior_; 169 const KeyCode keycode_num_pad_prior_;
168 const KeyCode keycode_num_pad_right_; 170 const KeyCode keycode_num_pad_right_;
169 const KeyCode keycode_num_pad_up_; 171 const KeyCode keycode_num_pad_up_;
170 const KeyCode keycode_super_l_; 172 const KeyCode keycode_super_l_;
171 const KeyCode keycode_super_r_; 173 const KeyCode keycode_super_r_;
172 const KeyCode keycode_void_symbol_; 174 const KeyCode keycode_void_symbol_;
173 const KeyCode keycode_delete_; 175 const KeyCode keycode_delete_;
174 const KeyCode keycode_backspace_; 176 const KeyCode keycode_backspace_;
175 const KeyCode keycode_up_; 177 const KeyCode keycode_up_;
176 const KeyCode keycode_down_; 178 const KeyCode keycode_down_;
179 const KeyCode keycode_left_;
180 const KeyCode keycode_right_;
177 const KeyCode keycode_prior_; 181 const KeyCode keycode_prior_;
178 const KeyCode keycode_next_; 182 const KeyCode keycode_next_;
179 const KeyCode keycode_home_; 183 const KeyCode keycode_home_;
180 const KeyCode keycode_end_; 184 const KeyCode keycode_end_;
181 const KeyCode keycode_launch7_; // F16 185 const KeyCode keycode_launch7_; // F16
182 chromeos::ScopedMockUserManagerEnabler user_manager_mock_; 186 chromeos::ScopedMockUserManagerEnabler user_manager_mock_;
183 chromeos::input_method::MockInputMethodManager* input_method_manager_mock_; 187 chromeos::input_method::MockInputMethodManager* input_method_manager_mock_;
184 }; 188 };
185 189
186 } // namespace 190 } // namespace
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 EXPECT_EQ(EventRewriter::kDeviceAppleKeyboard, 243 EXPECT_EQ(EventRewriter::kDeviceAppleKeyboard,
240 rewriter.DeviceAddedForTesting(1, "Apple Keyboard")); 244 rewriter.DeviceAddedForTesting(1, "Apple Keyboard"));
241 EXPECT_EQ(2U, rewriter.device_id_to_type_for_testing().size()); 245 EXPECT_EQ(2U, rewriter.device_id_to_type_for_testing().size());
242 // Try to reuse the first ID. 246 // Try to reuse the first ID.
243 EXPECT_EQ(EventRewriter::kDeviceAppleKeyboard, 247 EXPECT_EQ(EventRewriter::kDeviceAppleKeyboard,
244 rewriter.DeviceAddedForTesting(0, "Apple Keyboard")); 248 rewriter.DeviceAddedForTesting(0, "Apple Keyboard"));
245 EXPECT_EQ(2U, rewriter.device_id_to_type_for_testing().size()); 249 EXPECT_EQ(2U, rewriter.device_id_to_type_for_testing().size());
246 } 250 }
247 251
248 #if defined(OS_CHROMEOS) 252 #if defined(OS_CHROMEOS)
249 TEST_F(EventRewriterTest, TestRewriteCommandToControl) { 253 TEST_F(EventRewriterTest, TestRewriteCommandToControl) {
Yusuke Sato 2012/11/26 06:09:38 This test seems red: http://build.chromium.org/p/t
250 // First, test with a PC keyboard. 254 // First, test with a PC keyboard.
251 TestingPrefService prefs; 255 TestingPrefService prefs;
252 EventRewriter rewriter; 256 EventRewriter rewriter;
253 rewriter.DeviceAddedForTesting(0, "PC Keyboard"); 257 rewriter.DeviceAddedForTesting(0, "PC Keyboard");
254 rewriter.set_last_device_id_for_testing(0); 258 rewriter.set_last_device_id_for_testing(0);
255 rewriter.set_pref_service_for_testing(&prefs); 259 rewriter.set_pref_service_for_testing(&prefs);
256 260
257 // XK_a, Alt modifier. 261 // XK_a, Alt modifier.
258 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_A, 262 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_A,
259 ui::EF_ALT_DOWN, 263 ui::EF_ALT_DOWN,
(...skipping 1411 matching lines...) Expand 10 before | Expand all | Expand 10 after
1671 0, 1675 0,
1672 ui::ET_KEY_PRESSED, 1676 ui::ET_KEY_PRESSED,
1673 keycode_a_, 1677 keycode_a_,
1674 Mod3Mask)); 1678 Mod3Mask));
1675 1679
1676 input_method_manager_mock_->SetCurrentInputMethodId("xkb:us::eng"); 1680 input_method_manager_mock_->SetCurrentInputMethodId("xkb:us::eng");
1677 } 1681 }
1678 1682
1679 TEST_F(EventRewriterTest, TestRewriteBackspaceAndArrowKeys) { 1683 TEST_F(EventRewriterTest, TestRewriteBackspaceAndArrowKeys) {
1680 TestingPrefService prefs; 1684 TestingPrefService prefs;
1685 chromeos::Preferences::RegisterUserPrefs(&prefs);
1681 EventRewriter rewriter; 1686 EventRewriter rewriter;
1682 rewriter.set_pref_service_for_testing(&prefs); 1687 rewriter.set_pref_service_for_testing(&prefs);
1683 1688
1684 // Alt+Backspace -> Delete 1689 // Alt+Backspace -> Delete
1685 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_DELETE, 1690 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_DELETE,
1686 0, 1691 0,
1687 ui::ET_KEY_PRESSED, 1692 ui::ET_KEY_PRESSED,
1688 keycode_delete_, 1693 keycode_delete_,
1689 0U, 1694 0U,
1690 KeyPress), 1695 KeyPress),
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
1772 keycode_end_, 1777 keycode_end_,
1773 ShiftMask, 1778 ShiftMask,
1774 KeyPress), 1779 KeyPress),
1775 GetRewrittenEventAsString(&rewriter, 1780 GetRewrittenEventAsString(&rewriter,
1776 ui::VKEY_DOWN, 1781 ui::VKEY_DOWN,
1777 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN | 1782 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN |
1778 ui::EF_CONTROL_DOWN, 1783 ui::EF_CONTROL_DOWN,
1779 ui::ET_KEY_PRESSED, 1784 ui::ET_KEY_PRESSED,
1780 keycode_down_, 1785 keycode_down_,
1781 ShiftMask | Mod1Mask | ControlMask)); 1786 ShiftMask | Mod1Mask | ControlMask));
1787
1788 // Make Search key act like a Function key for accessing extended key
1789 // bindings.
1790 BooleanPrefMember search_key_as_function_key;
1791 search_key_as_function_key.Init(prefs::kLanguageSearchKeyActsAsFunctionKey,
1792 &prefs, NULL);
1793 search_key_as_function_key.SetValue(true);
1794
1795 // Alt+Backspace -> Alt+Backspace
1796 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_BACK,
1797 ui::EF_ALT_DOWN,
1798 ui::ET_KEY_PRESSED,
1799 keycode_backspace_,
1800 Mod1Mask,
1801 KeyPress),
1802 GetRewrittenEventAsString(&rewriter,
1803 ui::VKEY_BACK,
1804 ui::EF_ALT_DOWN,
1805 ui::ET_KEY_PRESSED,
1806 keycode_backspace_,
1807 Mod1Mask));
1808
1809 // Search+Backspace -> Delete
1810 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_DELETE,
1811 0,
1812 ui::ET_KEY_PRESSED,
1813 keycode_delete_,
1814 0U,
1815 KeyPress),
1816 GetRewrittenEventAsString(&rewriter,
1817 ui::VKEY_BACK,
1818 0,
1819 ui::ET_KEY_PRESSED,
1820 keycode_backspace_,
1821 Mod4Mask));
1822
1823 // Ctrl+Search+Backspace -> Ctrl+Delete
1824 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_DELETE,
1825 ui::EF_CONTROL_DOWN,
1826 ui::ET_KEY_PRESSED,
1827 keycode_delete_,
1828 ControlMask,
1829 KeyPress),
1830 GetRewrittenEventAsString(&rewriter,
1831 ui::VKEY_BACK,
1832 0,
1833 ui::ET_KEY_PRESSED,
1834 keycode_backspace_,
1835 Mod4Mask | ControlMask));
1836
1837 // Alt+Search+Backspace -> Alt+Delete
1838 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_DELETE,
1839 ui::EF_ALT_DOWN,
1840 ui::ET_KEY_PRESSED,
1841 keycode_delete_,
1842 Mod1Mask,
1843 KeyPress),
1844 GetRewrittenEventAsString(&rewriter,
1845 ui::VKEY_BACK,
1846 0,
1847 ui::ET_KEY_PRESSED,
1848 keycode_backspace_,
1849 Mod4Mask | Mod1Mask));
1850
1851 // Alt+Up -> Alt+Up
1852 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_UP,
1853 ui::EF_ALT_DOWN,
1854 ui::ET_KEY_PRESSED,
1855 keycode_up_,
1856 Mod1Mask,
1857 KeyPress),
1858 GetRewrittenEventAsString(&rewriter,
1859 ui::VKEY_UP,
1860 ui::EF_ALT_DOWN,
1861 ui::ET_KEY_PRESSED,
1862 keycode_up_,
1863 Mod1Mask));
1864
1865 // Search+Up -> Prior
1866 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_PRIOR,
1867 0,
1868 ui::ET_KEY_PRESSED,
1869 keycode_prior_,
1870 0U,
1871 KeyPress),
1872 GetRewrittenEventAsString(&rewriter,
1873 ui::VKEY_UP,
1874 0,
1875 ui::ET_KEY_PRESSED,
1876 keycode_up_,
1877 Mod4Mask));
1878
1879 // Alt+Down -> Alt+Down
1880 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_DOWN,
1881 ui::EF_ALT_DOWN,
1882 ui::ET_KEY_PRESSED,
1883 keycode_down_,
1884 Mod1Mask,
1885 KeyPress),
1886 GetRewrittenEventAsString(&rewriter,
1887 ui::VKEY_DOWN,
1888 ui::EF_ALT_DOWN,
1889 ui::ET_KEY_PRESSED,
1890 keycode_down_,
1891 Mod1Mask));
1892
1893 // Search+Down -> Next
1894 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_NEXT,
1895 0,
1896 ui::ET_KEY_PRESSED,
1897 keycode_next_,
1898 0U,
1899 KeyPress),
1900 GetRewrittenEventAsString(&rewriter,
1901 ui::VKEY_DOWN,
1902 0,
1903 ui::ET_KEY_PRESSED,
1904 keycode_down_,
1905 Mod4Mask));
1906
1907 // Ctrl+Alt+Up -> Ctrl+Alt+Up
1908 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_UP,
1909 ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN,
1910 ui::ET_KEY_PRESSED,
1911 keycode_up_,
1912 Mod1Mask | ControlMask,
1913 KeyPress),
1914 GetRewrittenEventAsString(&rewriter,
1915 ui::VKEY_UP,
1916 ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN,
1917 ui::ET_KEY_PRESSED,
1918 keycode_up_,
1919 Mod1Mask | ControlMask));
1920
1921 // Search+Left -> Home
1922 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_HOME,
1923 0,
1924 ui::ET_KEY_PRESSED,
1925 keycode_home_,
1926 0U,
1927 KeyPress),
1928 GetRewrittenEventAsString(&rewriter,
1929 ui::VKEY_LEFT,
1930 0,
1931 ui::ET_KEY_PRESSED,
1932 keycode_left_,
1933 Mod4Mask));
1934
1935 // Ctrl+Alt+Down -> Ctrl+Alt+Down
1936 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_DOWN,
1937 ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN,
1938 ui::ET_KEY_PRESSED,
1939 keycode_down_,
1940 Mod1Mask | ControlMask,
1941 KeyPress),
1942 GetRewrittenEventAsString(&rewriter,
1943 ui::VKEY_DOWN,
1944 ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN,
1945 ui::ET_KEY_PRESSED,
1946 keycode_down_,
1947 Mod1Mask | ControlMask));
1948
1949 // Search+Right -> End
1950 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_END,
1951 0,
1952 ui::ET_KEY_PRESSED,
1953 keycode_end_,
1954 0U,
1955 KeyPress),
1956 GetRewrittenEventAsString(&rewriter,
1957 ui::VKEY_RIGHT,
1958 0,
1959 ui::ET_KEY_PRESSED,
1960 keycode_right_,
1961 Mod4Mask));
1962
1963 // Ctrl+Search+Left -> Control+Home
1964 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_HOME,
1965 ui::EF_CONTROL_DOWN,
1966 ui::ET_KEY_PRESSED,
1967 keycode_home_,
1968 ControlMask,
1969 KeyPress),
1970 GetRewrittenEventAsString(&rewriter,
1971 ui::VKEY_LEFT,
1972 0,
1973 ui::ET_KEY_PRESSED,
1974 keycode_left_,
1975 Mod4Mask | ControlMask));
1976
1977 // Ctrl+Search+Right -> Control+End
1978 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_END,
1979 ui::EF_CONTROL_DOWN,
1980 ui::ET_KEY_PRESSED,
1981 keycode_end_,
1982 ControlMask,
1983 KeyPress),
1984 GetRewrittenEventAsString(&rewriter,
1985 ui::VKEY_RIGHT,
1986 0,
1987 ui::ET_KEY_PRESSED,
1988 keycode_right_,
1989 Mod4Mask | ControlMask));
1782 } 1990 }
1783 1991
1784 TEST_F(EventRewriterTest, TestRewriteBackspaceAndArrowKeysWithSearchRemapped) { 1992 TEST_F(EventRewriterTest, TestRewriteBackspaceAndArrowKeysWithSearchRemapped) {
1785 // Remap Search to Control. 1993 // Remap Search to Control.
1786 TestingPrefService prefs; 1994 TestingPrefService prefs;
1787 chromeos::Preferences::RegisterUserPrefs(&prefs); 1995 chromeos::Preferences::RegisterUserPrefs(&prefs);
1788 IntegerPrefMember search; 1996 IntegerPrefMember search;
1789 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs, NULL); 1997 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs, NULL);
1790 search.SetValue(chromeos::input_method::kControlKey); 1998 search.SetValue(chromeos::input_method::kControlKey);
1791 1999
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1852 // flag in the event is True. 2060 // flag in the event is True.
1853 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, 2061 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL,
1854 ui::EF_CONTROL_DOWN, 2062 ui::EF_CONTROL_DOWN,
1855 ui::ET_KEY_PRESSED, 2063 ui::ET_KEY_PRESSED,
1856 keycode_control_l_, 2064 keycode_control_l_,
1857 0U, 2065 0U,
1858 KeyPress), 2066 KeyPress),
1859 rewritten_event); 2067 rewritten_event);
1860 } 2068 }
1861 #endif // OS_CHROMEOS 2069 #endif // OS_CHROMEOS
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698