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

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

Issue 11280153: Add Search-. as a shortcut for the Insert key when Search is acting as a Function key. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: forlanding Created 8 years 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 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 keycode_3_(XKeysymToKeycode(display_, XK_3)), 149 keycode_3_(XKeysymToKeycode(display_, XK_3)),
150 keycode_4_(XKeysymToKeycode(display_, XK_4)), 150 keycode_4_(XKeysymToKeycode(display_, XK_4)),
151 keycode_5_(XKeysymToKeycode(display_, XK_5)), 151 keycode_5_(XKeysymToKeycode(display_, XK_5)),
152 keycode_6_(XKeysymToKeycode(display_, XK_6)), 152 keycode_6_(XKeysymToKeycode(display_, XK_6)),
153 keycode_7_(XKeysymToKeycode(display_, XK_7)), 153 keycode_7_(XKeysymToKeycode(display_, XK_7)),
154 keycode_8_(XKeysymToKeycode(display_, XK_8)), 154 keycode_8_(XKeysymToKeycode(display_, XK_8)),
155 keycode_9_(XKeysymToKeycode(display_, XK_9)), 155 keycode_9_(XKeysymToKeycode(display_, XK_9)),
156 keycode_0_(XKeysymToKeycode(display_, XK_0)), 156 keycode_0_(XKeysymToKeycode(display_, XK_0)),
157 keycode_minus_(XKeysymToKeycode(display_, XK_minus)), 157 keycode_minus_(XKeysymToKeycode(display_, XK_minus)),
158 keycode_equal_(XKeysymToKeycode(display_, XK_equal)), 158 keycode_equal_(XKeysymToKeycode(display_, XK_equal)),
159 keycode_period_(XKeysymToKeycode(display_, XK_period)),
160 keycode_insert_(XKeysymToKeycode(display_, XK_Insert)),
159 input_method_manager_mock_(NULL) { 161 input_method_manager_mock_(NULL) {
160 } 162 }
161 virtual ~EventRewriterTest() {} 163 virtual ~EventRewriterTest() {}
162 164
163 virtual void SetUp() { 165 virtual void SetUp() {
164 // Mocking user manager because the real one needs to be called on UI thread 166 // Mocking user manager because the real one needs to be called on UI thread
165 EXPECT_CALL(*user_manager_mock_.user_manager(), IsLoggedInAsGuest()) 167 EXPECT_CALL(*user_manager_mock_.user_manager(), IsLoggedInAsGuest())
166 .WillRepeatedly(testing::Return(false)); 168 .WillRepeatedly(testing::Return(false));
167 input_method_manager_mock_ = 169 input_method_manager_mock_ =
168 new chromeos::input_method::MockInputMethodManager; 170 new chromeos::input_method::MockInputMethodManager;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 const KeyCode keycode_3_; 252 const KeyCode keycode_3_;
251 const KeyCode keycode_4_; 253 const KeyCode keycode_4_;
252 const KeyCode keycode_5_; 254 const KeyCode keycode_5_;
253 const KeyCode keycode_6_; 255 const KeyCode keycode_6_;
254 const KeyCode keycode_7_; 256 const KeyCode keycode_7_;
255 const KeyCode keycode_8_; 257 const KeyCode keycode_8_;
256 const KeyCode keycode_9_; 258 const KeyCode keycode_9_;
257 const KeyCode keycode_0_; 259 const KeyCode keycode_0_;
258 const KeyCode keycode_minus_; 260 const KeyCode keycode_minus_;
259 const KeyCode keycode_equal_; 261 const KeyCode keycode_equal_;
262 const KeyCode keycode_period_;
263 const KeyCode keycode_insert_;
260 chromeos::ScopedMockUserManagerEnabler user_manager_mock_; 264 chromeos::ScopedMockUserManagerEnabler user_manager_mock_;
261 chromeos::input_method::MockInputMethodManager* input_method_manager_mock_; 265 chromeos::input_method::MockInputMethodManager* input_method_manager_mock_;
262 }; 266 };
263 267
264 } // namespace 268 } // namespace
265 #else 269 #else
266 class EventRewriterTest : public testing::Test { 270 class EventRewriterTest : public testing::Test {
267 public: 271 public:
268 EventRewriterTest() {} 272 EventRewriterTest() {}
269 virtual ~EventRewriterTest() {} 273 virtual ~EventRewriterTest() {}
(...skipping 1477 matching lines...) Expand 10 before | Expand all | Expand 10 after
1747 GetRewrittenEventAsString(&rewriter, 1751 GetRewrittenEventAsString(&rewriter,
1748 ui::VKEY_A, 1752 ui::VKEY_A,
1749 0, 1753 0,
1750 ui::ET_KEY_PRESSED, 1754 ui::ET_KEY_PRESSED,
1751 keycode_a_, 1755 keycode_a_,
1752 Mod3Mask)); 1756 Mod3Mask));
1753 1757
1754 input_method_manager_mock_->SetCurrentInputMethodId("xkb:us::eng"); 1758 input_method_manager_mock_->SetCurrentInputMethodId("xkb:us::eng");
1755 } 1759 }
1756 1760
1757 TEST_F(EventRewriterTest, TestRewriteBackspaceAndArrowKeys) { 1761 TEST_F(EventRewriterTest, TestRewriteExtendedKeys) {
1758 TestingPrefService prefs; 1762 TestingPrefService prefs;
1759 chromeos::Preferences::RegisterUserPrefs(&prefs); 1763 chromeos::Preferences::RegisterUserPrefs(&prefs);
1760 EventRewriter rewriter; 1764 EventRewriter rewriter;
1761 rewriter.set_pref_service_for_testing(&prefs); 1765 rewriter.set_pref_service_for_testing(&prefs);
1762 1766
1763 // On non-chromebooks, the keyboard doesn't need to be remapped. 1767 // On non-chromebooks, the keyboard doesn't need to be remapped.
1764 1768
1765 struct { 1769 struct {
1766 ui::KeyboardCode input; 1770 ui::KeyboardCode input;
1767 KeyCode input_native; 1771 KeyCode input_native;
(...skipping 16 matching lines...) Expand all
1784 ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, Mod1Mask | ControlMask, 1788 ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, Mod1Mask | ControlMask,
1785 ui::VKEY_UP, keycode_up_, 1789 ui::VKEY_UP, keycode_up_,
1786 ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, Mod1Mask | ControlMask, }, 1790 ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, Mod1Mask | ControlMask, },
1787 { ui::VKEY_DOWN, keycode_down_, 1791 { ui::VKEY_DOWN, keycode_down_,
1788 ui::EF_ALT_DOWN, Mod1Mask, 1792 ui::EF_ALT_DOWN, Mod1Mask,
1789 ui::VKEY_DOWN, keycode_down_, 1793 ui::VKEY_DOWN, keycode_down_,
1790 ui::EF_ALT_DOWN, Mod1Mask, }, 1794 ui::EF_ALT_DOWN, Mod1Mask, },
1791 { ui::VKEY_LEFT, keycode_left_, 0, 0, 1795 { ui::VKEY_LEFT, keycode_left_, 0, 0,
1792 ui::VKEY_LEFT, keycode_left_, 0, 0 }, 1796 ui::VKEY_LEFT, keycode_left_, 0, 0 },
1793 { ui::VKEY_RIGHT, keycode_right_, 0, 0, 1797 { ui::VKEY_RIGHT, keycode_right_, 0, 0,
1794 ui::VKEY_RIGHT, keycode_right_, 0, 0 } 1798 ui::VKEY_RIGHT, keycode_right_, 0, 0 },
1799 { ui::VKEY_OEM_PERIOD, keycode_period_, 0, 0,
1800 ui::VKEY_OEM_PERIOD, keycode_period_, 0, 0 }
1795 }; 1801 };
1796 1802
1797 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(default_tests); ++i) { 1803 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(default_tests); ++i) {
1798 EXPECT_EQ(GetExpectedResultAsString(default_tests[i].output, 1804 EXPECT_EQ(GetExpectedResultAsString(default_tests[i].output,
1799 default_tests[i].output_mods, 1805 default_tests[i].output_mods,
1800 ui::ET_KEY_PRESSED, 1806 ui::ET_KEY_PRESSED,
1801 default_tests[i].output_native, 1807 default_tests[i].output_native,
1802 default_tests[i].output_native_mods, 1808 default_tests[i].output_native_mods,
1803 KeyPress), 1809 KeyPress),
1804 GetRewrittenEventAsString(&rewriter, 1810 GetRewrittenEventAsString(&rewriter,
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
1896 0, 0, }, 1902 0, 0, },
1897 // Ctrl+Alt+Up -> Home 1903 // Ctrl+Alt+Up -> Home
1898 { ui::VKEY_UP, keycode_up_, 1904 { ui::VKEY_UP, keycode_up_,
1899 ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, Mod1Mask | ControlMask, 1905 ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, Mod1Mask | ControlMask,
1900 ui::VKEY_HOME, keycode_home_, 1906 ui::VKEY_HOME, keycode_home_,
1901 0, 0, }, 1907 0, 0, },
1902 // Ctrl+Alt+Down -> End 1908 // Ctrl+Alt+Down -> End
1903 { ui::VKEY_DOWN, keycode_down_, 1909 { ui::VKEY_DOWN, keycode_down_,
1904 ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, Mod1Mask | ControlMask, 1910 ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, Mod1Mask | ControlMask,
1905 ui::VKEY_END, keycode_end_, 1911 ui::VKEY_END, keycode_end_,
1906 0, 0, } 1912 0, 0, },
1913 // Period -> Period
1914 { ui::VKEY_OEM_PERIOD, keycode_period_, 0, 0,
1915 ui::VKEY_OEM_PERIOD, keycode_period_, 0, 0 }
1907 }; 1916 };
1908 1917
1909 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(chromeos_tests); ++i) { 1918 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(chromeos_tests); ++i) {
1910 EXPECT_EQ(GetExpectedResultAsString(chromeos_tests[i].output, 1919 EXPECT_EQ(GetExpectedResultAsString(chromeos_tests[i].output,
1911 chromeos_tests[i].output_mods, 1920 chromeos_tests[i].output_mods,
1912 ui::ET_KEY_PRESSED, 1921 ui::ET_KEY_PRESSED,
1913 chromeos_tests[i].output_native, 1922 chromeos_tests[i].output_native,
1914 chromeos_tests[i].output_native_mods, 1923 chromeos_tests[i].output_native_mods,
1915 KeyPress), 1924 KeyPress),
1916 GetRewrittenEventAsString(&rewriter, 1925 GetRewrittenEventAsString(&rewriter,
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
2047 ui::EF_CONTROL_DOWN, ControlMask }, 2056 ui::EF_CONTROL_DOWN, ControlMask },
2048 // Search+Right -> End 2057 // Search+Right -> End
2049 { ui::VKEY_RIGHT, keycode_right_, 2058 { ui::VKEY_RIGHT, keycode_right_,
2050 0, Mod4Mask, 2059 0, Mod4Mask,
2051 ui::VKEY_END, keycode_end_, 2060 ui::VKEY_END, keycode_end_,
2052 0, 0, }, 2061 0, 0, },
2053 // Control+Search+Right -> End 2062 // Control+Search+Right -> End
2054 { ui::VKEY_RIGHT, keycode_right_, 2063 { ui::VKEY_RIGHT, keycode_right_,
2055 ui::EF_CONTROL_DOWN, Mod4Mask | ControlMask, 2064 ui::EF_CONTROL_DOWN, Mod4Mask | ControlMask,
2056 ui::VKEY_END, keycode_end_, 2065 ui::VKEY_END, keycode_end_,
2066 ui::EF_CONTROL_DOWN, ControlMask },
2067 // Search+Period -> Insert
2068 { ui::VKEY_OEM_PERIOD, keycode_period_, 0, Mod4Mask,
2069 ui::VKEY_INSERT, keycode_insert_, 0, 0 },
2070 // Control+Search+Period -> Control+Insert
2071 { ui::VKEY_OEM_PERIOD, keycode_period_,
2072 ui::EF_CONTROL_DOWN, Mod4Mask | ControlMask,
2073 ui::VKEY_INSERT, keycode_insert_,
2057 ui::EF_CONTROL_DOWN, ControlMask } 2074 ui::EF_CONTROL_DOWN, ControlMask }
2058 }; 2075 };
2059 2076
2060 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(search_tests); ++i) { 2077 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(search_tests); ++i) {
2061 EXPECT_EQ(GetExpectedResultAsString(search_tests[i].output, 2078 EXPECT_EQ(GetExpectedResultAsString(search_tests[i].output,
2062 search_tests[i].output_mods, 2079 search_tests[i].output_mods,
2063 ui::ET_KEY_PRESSED, 2080 ui::ET_KEY_PRESSED,
2064 search_tests[i].output_native, 2081 search_tests[i].output_native,
2065 search_tests[i].output_native_mods, 2082 search_tests[i].output_native_mods,
2066 KeyPress), 2083 KeyPress),
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after
2366 search_key_tests[i].input, 2383 search_key_tests[i].input,
2367 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, 2384 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
2368 ui::ET_KEY_PRESSED, 2385 ui::ET_KEY_PRESSED,
2369 search_key_tests[i].input_native, 2386 search_key_tests[i].input_native,
2370 Mod4Mask | ControlMask | Mod1Mask)); 2387 Mod4Mask | ControlMask | Mod1Mask));
2371 } 2388 }
2372 2389
2373 *CommandLine::ForCurrentProcess() = original_cl; 2390 *CommandLine::ForCurrentProcess() = original_cl;
2374 } 2391 }
2375 2392
2376 TEST_F(EventRewriterTest, TestRewriteBackspaceAndArrowKeysWithSearchRemapped) { 2393 TEST_F(EventRewriterTest, TestRewriteExtendedKeysWithSearchRemapped) {
2377 const CommandLine original_cl(*CommandLine::ForCurrentProcess()); 2394 const CommandLine original_cl(*CommandLine::ForCurrentProcess());
2378 2395
2379 // Remap Search to Control. 2396 // Remap Search to Control.
2380 TestingPrefService prefs; 2397 TestingPrefService prefs;
2381 chromeos::Preferences::RegisterUserPrefs(&prefs); 2398 chromeos::Preferences::RegisterUserPrefs(&prefs);
2382 IntegerPrefMember search; 2399 IntegerPrefMember search;
2383 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs, NULL); 2400 search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs, NULL);
2384 search.SetValue(chromeos::input_method::kControlKey); 2401 search.SetValue(chromeos::input_method::kControlKey);
2385 2402
2386 EventRewriter rewriter; 2403 EventRewriter rewriter;
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
2452 // flag in the event is True. 2469 // flag in the event is True.
2453 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, 2470 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL,
2454 ui::EF_CONTROL_DOWN, 2471 ui::EF_CONTROL_DOWN,
2455 ui::ET_KEY_PRESSED, 2472 ui::ET_KEY_PRESSED,
2456 keycode_control_l_, 2473 keycode_control_l_,
2457 0U, 2474 0U,
2458 KeyPress), 2475 KeyPress),
2459 rewritten_event); 2476 rewritten_event);
2460 } 2477 }
2461 #endif // OS_CHROMEOS 2478 #endif // OS_CHROMEOS
OLDNEW
« no previous file with comments | « chrome/browser/ui/ash/event_rewriter.cc ('k') | chrome/browser/ui/webui/chromeos/keyboard_overlay_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698