Index: chrome/browser/ui/ash/event_rewriter_unittest.cc |
=================================================================== |
--- chrome/browser/ui/ash/event_rewriter_unittest.cc (revision 176515) |
+++ chrome/browser/ui/ash/event_rewriter_unittest.cc (working copy) |
@@ -5,9 +5,11 @@ |
#include "chrome/browser/ui/ash/event_rewriter.h" |
#include "base/basictypes.h" |
+#include "base/command_line.h" |
#include "base/stringprintf.h" |
#include "chrome/browser/api/prefs/pref_member.h" |
#include "chrome/common/pref_names.h" |
+#include "chrome/common/chrome_switches.h" |
#include "chrome/test/base/testing_pref_service.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "ui/base/events/event.h" |
@@ -1508,8 +1510,40 @@ |
ui::ET_KEY_PRESSED, |
keycode_launch7_, |
0U)); |
+ EXPECT_TRUE(xkeyboard.caps_lock_is_enabled_); |
+} |
+TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLockWithFlag) { |
+ // TODO(yusukes): Reenable the test once build servers are upgraded. |
+ 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_); |
+ |
+ // F16 should work as CapsLock even when --has-chromeos-keyboard is specified. |
+ const CommandLine original_cl(*CommandLine::ForCurrentProcess()); |
+ CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
+ switches::kHasChromeOSKeyboard, ""); |
+ |
+ 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_); |
+ |
+ *CommandLine::ForCurrentProcess() = original_cl; |
} |
TEST_F(EventRewriterTest, TestRewriteCapsLockToControl) { |
@@ -1566,6 +1600,52 @@ |
Mod1Mask | Mod3Mask)); |
} |
+TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLockToControlWithFlag) { |
+ // TODO(yusukes): Reenable the test once build servers are upgraded. |
+ 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); |
+ |
+ // The prefs::kLanguageRemapCapsLockKeyTo pref should be ignored when |
+ // --has-chromeos-keyboard is set. |
+ const CommandLine original_cl(*CommandLine::ForCurrentProcess()); |
+ CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
+ switches::kHasChromeOSKeyboard, ""); |
+ |
+ 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_EQ(GetExpectedResultAsString(ui::VKEY_A, |
+ 0, |
+ ui::ET_KEY_PRESSED, |
+ keycode_a_, |
+ Mod3Mask, |
+ KeyPress), |
+ GetRewrittenEventAsString(&rewriter, |
+ ui::VKEY_A, |
+ 0, |
+ ui::ET_KEY_PRESSED, |
+ keycode_a_, |
+ Mod3Mask)); |
+ |
+ *CommandLine::ForCurrentProcess() = original_cl; |
+} |
+ |
TEST_F(EventRewriterTest, TestRewriteCapsLockMod3InUse) { |
// Remap CapsLock to Control. |
TestingPrefService prefs; |