| 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 488788446a398c31dddd4cd022c03a0bec5d5df7..16fb115e7f6363d69b96ee22fec3a91bd74d6eee 100644
|
| --- a/chrome/browser/ui/ash/event_rewriter_unittest.cc
|
| +++ b/chrome/browser/ui/ash/event_rewriter_unittest.cc
|
| @@ -117,6 +117,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_launch6_(XKeysymToKeycode(display_, XF86XK_Launch6)),
|
| keycode_launch7_(XKeysymToKeycode(display_, XF86XK_Launch7)),
|
| keycode_f1_(XKeysymToKeycode(display_, XK_F1)),
|
| keycode_f2_(XKeysymToKeycode(display_, XK_F2)),
|
| @@ -179,6 +180,9 @@ class EventRewriterTest : public testing::Test {
|
| }
|
|
|
| protected:
|
| + void TestRewriteNumPadKeys();
|
| + void TestRewriteNumPadKeysOnAppleKeyboard();
|
| +
|
| Display* display_;
|
| const KeyCode keycode_a_;
|
| const KeyCode keycode_alt_l_;
|
| @@ -224,6 +228,7 @@ class EventRewriterTest : public testing::Test {
|
| const KeyCode keycode_next_;
|
| const KeyCode keycode_home_;
|
| const KeyCode keycode_end_;
|
| + const KeyCode keycode_launch6_; // F15
|
| const KeyCode keycode_launch7_; // F16
|
| const KeyCode keycode_f1_;
|
| const KeyCode keycode_f2_;
|
| @@ -545,7 +550,7 @@ TEST_F(EventRewriterTest, TestRewriteCommandToControlWithControlRemapped) {
|
| Mod1Mask));
|
| }
|
|
|
| -TEST_F(EventRewriterTest, TestRewriteNumPadKeys) {
|
| +void EventRewriterTest::TestRewriteNumPadKeys() {
|
| TestingPrefServiceSyncable prefs;
|
| EventRewriter rewriter;
|
| rewriter.set_pref_service_for_testing(&prefs);
|
| @@ -873,8 +878,21 @@ TEST_F(EventRewriterTest, TestRewriteNumPadKeys) {
|
| Mod2Mask));
|
| }
|
|
|
| +TEST_F(EventRewriterTest, TestRewriteNumPadKeys) {
|
| + TestRewriteNumPadKeys();
|
| +}
|
| +
|
| +TEST_F(EventRewriterTest, TestRewriteNumPadKeysWithDiamondKeyFlag) {
|
| + // Make sure the num lock works correctly even when Diamond key exists.
|
| + const CommandLine original_cl(*CommandLine::ForCurrentProcess());
|
| + CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| + switches::kHasChromeOSDiamondKey, "");
|
| +
|
| + TestRewriteNumPadKeys();
|
| +}
|
| +
|
| // Tests if the rewriter can handle a Command + Num Pad event.
|
| -TEST_F(EventRewriterTest, TestRewriteNumPadKeysOnAppleKeyboard) {
|
| +void EventRewriterTest::TestRewriteNumPadKeysOnAppleKeyboard() {
|
| TestingPrefServiceSyncable prefs;
|
| EventRewriter rewriter;
|
| rewriter.DeviceAddedForTesting(0, "Apple Keyboard");
|
| @@ -912,6 +930,20 @@ TEST_F(EventRewriterTest, TestRewriteNumPadKeysOnAppleKeyboard) {
|
| Mod4Mask));
|
| }
|
|
|
| +TEST_F(EventRewriterTest, TestRewriteNumPadKeysOnAppleKeyboard) {
|
| + TestRewriteNumPadKeysOnAppleKeyboard();
|
| +}
|
| +
|
| +TEST_F(EventRewriterTest,
|
| + TestRewriteNumPadKeysOnAppleKeyboardWithDiamondKeyFlag) {
|
| + // Makes sure the num lock works correctly even when Diamond key exists.
|
| + const CommandLine original_cl(*CommandLine::ForCurrentProcess());
|
| + CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| + switches::kHasChromeOSDiamondKey, "");
|
| +
|
| + TestRewriteNumPadKeysOnAppleKeyboard();
|
| +}
|
| +
|
| TEST_F(EventRewriterTest, TestRewriteModifiersNoRemap) {
|
| TestingPrefServiceSyncable prefs;
|
| EventRewriter rewriter;
|
| @@ -1629,6 +1661,124 @@ TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLockWithFlag) {
|
| *CommandLine::ForCurrentProcess() = original_cl;
|
| }
|
|
|
| +TEST_F(EventRewriterTest, DISABLED_TestRewriteDiamondKey) {
|
| + // TODO(yusukes): Reenable the test once build servers are upgraded.
|
| +
|
| + TestingPrefServiceSyncable 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);
|
| +
|
| + // F15 should work as Ctrl when --has-chromeos-diamond-key is not specified.
|
| + EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL,
|
| + ui::EF_CONTROL_DOWN,
|
| + ui::ET_KEY_PRESSED,
|
| + keycode_control_l_,
|
| + 0U,
|
| + KeyPress),
|
| + GetRewrittenEventAsString(&rewriter,
|
| + ui::VKEY_F15,
|
| + 0,
|
| + ui::ET_KEY_PRESSED,
|
| + keycode_launch6_,
|
| + 0U));
|
| +}
|
| +
|
| +TEST_F(EventRewriterTest, DISABLED_TestRewriteDiamondKeyWithFlag) {
|
| + // TODO(yusukes): Reenable the test once build servers are upgraded.
|
| +
|
| + const CommandLine original_cl(*CommandLine::ForCurrentProcess());
|
| + CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| + switches::kHasChromeOSDiamondKey, "");
|
| +
|
| + TestingPrefServiceSyncable 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);
|
| +
|
| + // By default, F15 should work as Control.
|
| + EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL,
|
| + ui::EF_CONTROL_DOWN,
|
| + ui::ET_KEY_PRESSED,
|
| + keycode_control_l_,
|
| + 0U,
|
| + KeyPress),
|
| + GetRewrittenEventAsString(&rewriter,
|
| + ui::VKEY_F15,
|
| + 0,
|
| + ui::ET_KEY_PRESSED,
|
| + keycode_launch6_,
|
| + 0U));
|
| +
|
| + IntegerPrefMember diamond;
|
| + diamond.Init(prefs::kLanguageRemapDiamondKeyTo, &prefs);
|
| + diamond.SetValue(chromeos::input_method::kVoidKey);
|
| +
|
| + EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_UNKNOWN,
|
| + 0,
|
| + ui::ET_KEY_PRESSED,
|
| + keycode_void_symbol_,
|
| + 0U,
|
| + KeyPress),
|
| + GetRewrittenEventAsString(&rewriter,
|
| + ui::VKEY_F15,
|
| + 0,
|
| + ui::ET_KEY_PRESSED,
|
| + keycode_launch6_,
|
| + 0U));
|
| +
|
| + diamond.SetValue(chromeos::input_method::kControlKey);
|
| +
|
| + EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL,
|
| + ui::EF_CONTROL_DOWN,
|
| + ui::ET_KEY_PRESSED,
|
| + keycode_control_l_,
|
| + 0U,
|
| + KeyPress),
|
| + GetRewrittenEventAsString(&rewriter,
|
| + ui::VKEY_F15,
|
| + 0,
|
| + ui::ET_KEY_PRESSED,
|
| + keycode_launch6_,
|
| + 0U));
|
| +
|
| + diamond.SetValue(chromeos::input_method::kAltKey);
|
| +
|
| + EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_MENU,
|
| + ui::EF_ALT_DOWN,
|
| + ui::ET_KEY_PRESSED,
|
| + keycode_alt_l_,
|
| + 0,
|
| + KeyPress),
|
| + GetRewrittenEventAsString(&rewriter,
|
| + ui::VKEY_F15,
|
| + 0,
|
| + ui::ET_KEY_PRESSED,
|
| + keycode_launch6_,
|
| + 0U));
|
| +
|
| + diamond.SetValue(chromeos::input_method::kCapsLockKey);
|
| +
|
| + EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CAPITAL,
|
| + ui::EF_CAPS_LOCK_DOWN,
|
| + ui::ET_KEY_PRESSED,
|
| + keycode_caps_lock_,
|
| + 0U,
|
| + KeyPress),
|
| + GetRewrittenEventAsString(&rewriter,
|
| + ui::VKEY_F15,
|
| + 0,
|
| + ui::ET_KEY_PRESSED,
|
| + keycode_launch6_,
|
| + 0U));
|
| +}
|
| +
|
| TEST_F(EventRewriterTest, TestRewriteCapsLockToControl) {
|
| TestingPrefServiceSyncable prefs;
|
| chromeos::Preferences::RegisterUserPrefs(&prefs);
|
|
|