Chromium Code Reviews| 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, |