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

Unified Diff: chrome/browser/ui/ash/event_rewriter_unittest.cc

Issue 11314020: Allow Caps Lock to be remapped [part 1 of 2] (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 8 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/ash/event_rewriter_unittest.cc
diff --git a/chrome/browser/ui/ash/event_rewriter_unittest.cc b/chrome/browser/ui/ash/event_rewriter_unittest.cc
index 7250f875fb3ba4cda9e0edf415e5692c351c2a20..9233040bfe38fc4eb57a532b252799be70589425 100644
--- a/chrome/browser/ui/ash/event_rewriter_unittest.cc
+++ b/chrome/browser/ui/ash/event_rewriter_unittest.cc
@@ -14,6 +14,7 @@
#if defined(OS_CHROMEOS)
#include <X11/keysym.h>
+#include <X11/XF86keysym.h>
#include <X11/Xlib.h>
#include "chrome/browser/chromeos/input_method/mock_input_method_manager.h"
@@ -111,6 +112,7 @@ class EventRewriterTest : public testing::Test {
keycode_next_(XKeysymToKeycode(display_, XK_Next)),
keycode_home_(XKeysymToKeycode(display_, XK_Home)),
keycode_end_(XKeysymToKeycode(display_, XK_End)),
+ keycode_launch7_(XKeysymToKeycode(display_, XF86XK_Launch7)),
input_method_manager_mock_(NULL) {
}
virtual ~EventRewriterTest() {}
@@ -174,6 +176,7 @@ class EventRewriterTest : public testing::Test {
const KeyCode keycode_next_;
const KeyCode keycode_home_;
const KeyCode keycode_end_;
+ const KeyCode keycode_launch7_; // F16
chromeos::ScopedMockUserManagerEnabler user_manager_mock_;
chromeos::input_method::MockInputMethodManager* input_method_manager_mock_;
};
@@ -1478,13 +1481,49 @@ TEST_F(EventRewriterTest, TestRewriteModifiersRemapToCapsLock) {
EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_);
}
-TEST_F(EventRewriterTest, TestRewriteFn) {
+TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLock) {
+ // It seems that the X server running on build servers is too old and does not
+ // support F16 (i.e. 'XKeysymToKeycode(display_, XF86XK_Launch7)' call).
+ // TODO(yusukes): Reenable the test once build servers are upgraded.
Daniel Erat 2012/10/30 18:16:34 nit: mind filing a bug to track this, if you haven
Yusuke Sato 2012/10/30 19:11:33 Done: http://code.google.com/p/chromium/issues/det
+
+ TestingPrefService prefs;
+ chromeos::Preferences::RegisterUserPrefs(&prefs);
+
+ chromeos::input_method::MockXKeyboard xkeyboard;
+ EventRewriter rewriter;
+ rewriter.set_pref_service_for_testing(&prefs);
+ rewriter.set_xkeyboard_for_testing(&xkeyboard);
+ EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_);
+
+ // On Chrome OS, CapsLock is mapped to F16 with Mod3Mask.
+ EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CAPITAL,
+ ui::EF_CAPS_LOCK_DOWN,
+ ui::ET_KEY_PRESSED,
+ keycode_caps_lock_,
+ 0U,
+ KeyPress),
+ GetRewrittenEventAsString(&rewriter,
+ ui::VKEY_F16,
+ 0,
+ ui::ET_KEY_PRESSED,
+ keycode_launch7_,
+ 0U));
+
+ EXPECT_TRUE(xkeyboard.caps_lock_is_enabled_);
+}
+
+TEST_F(EventRewriterTest, TestRewriteCapsLockToControl) {
TestingPrefService prefs;
+ chromeos::Preferences::RegisterUserPrefs(&prefs);
+ IntegerPrefMember control;
+ control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs, NULL);
+ control.SetValue(chromeos::input_method::kControlKey);
+
EventRewriter rewriter;
rewriter.set_pref_service_for_testing(&prefs);
- // Press F15+a. Confirm that Mod3Mask is rewritten to ControlMask.
- // On Chrome OS, F15 works as a modifier (Mod3). http://crosbug/p/14339
+ // Press CapsLock+a. Confirm that Mod3Mask is rewritten to ControlMask.
+ // On Chrome OS, CapsLock works as a Mod3 modifier.
EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_A,
ui::EF_CONTROL_DOWN,
ui::ET_KEY_PRESSED,
@@ -1498,7 +1537,7 @@ TEST_F(EventRewriterTest, TestRewriteFn) {
keycode_a_,
Mod3Mask));
- // Press Control+F15+a. Confirm that Mod3Mask is rewritten to ControlMask.
+ // Press Control+CapsLock+a. Confirm that Mod3Mask is rewritten to ControlMask
EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_A,
ui::EF_CONTROL_DOWN,
ui::ET_KEY_PRESSED,
@@ -1512,7 +1551,7 @@ TEST_F(EventRewriterTest, TestRewriteFn) {
keycode_a_,
Mod3Mask | ControlMask));
- // Press Alt+F15+a. Confirm that Mod3Mask is rewritten to ControlMask.
+ // Press Alt+CapsLock+a. Confirm that Mod3Mask is rewritten to ControlMask.
EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_A,
ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN,
ui::ET_KEY_PRESSED,
@@ -1527,14 +1566,20 @@ TEST_F(EventRewriterTest, TestRewriteFn) {
Mod1Mask | Mod3Mask));
}
-TEST_F(EventRewriterTest, TestRewriteFnMod3InUse) {
+TEST_F(EventRewriterTest, TestRewriteCapsLockMod3InUse) {
+ // Remap CapsLock to Control.
TestingPrefService prefs;
+ chromeos::Preferences::RegisterUserPrefs(&prefs);
+ IntegerPrefMember control;
+ control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs, NULL);
+ control.SetValue(chromeos::input_method::kControlKey);
+
EventRewriter rewriter;
rewriter.set_pref_service_for_testing(&prefs);
input_method_manager_mock_->SetCurrentInputMethodId("xkb:de:neo:ger");
- // Press F15+a. Confirm that Mod3Mask is NOT rewritten to ControlMask when
- // Mod3Mask is already in use by the current XKB layout.
+ // Press CapsLock+a. Confirm that Mod3Mask is NOT rewritten to ControlMask
+ // when Mod3Mask is already in use by the current XKB layout.
EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_A,
0,
ui::ET_KEY_PRESSED,

Powered by Google App Engine
This is Rietveld 408576698