| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/strings/string16.h" | 7 #include "base/strings/string16.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "chrome/test/chromedriver/chrome/ui_events.h" | 9 #include "chrome/test/chromedriver/chrome/ui_events.h" |
| 10 #include "chrome/test/chromedriver/keycode_text_conversion.h" | 10 #include "chrome/test/chromedriver/keycode_text_conversion.h" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 std::string ConvertKeyCodeToTextNoError(ui::KeyboardCode key_code, | 53 std::string ConvertKeyCodeToTextNoError(ui::KeyboardCode key_code, |
| 54 int modifiers) { | 54 int modifiers) { |
| 55 std::string error_msg; | 55 std::string error_msg; |
| 56 std::string text; | 56 std::string text; |
| 57 EXPECT_TRUE(ConvertKeyCodeToText(key_code, modifiers, &text, &error_msg)); | 57 EXPECT_TRUE(ConvertKeyCodeToText(key_code, modifiers, &text, &error_msg)); |
| 58 return text; | 58 return text; |
| 59 } | 59 } |
| 60 | 60 |
| 61 } // namespace | 61 } // namespace |
| 62 | 62 |
| 63 #if defined(OS_LINUX) | 63 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
| 64 // Fails on bots: crbug.com/174962 | 64 // Fails on bots: crbug.com/174962 |
| 65 #define MAYBE_KeyCodeToText DISABLED_KeyCodeToText | 65 #define MAYBE_KeyCodeToText DISABLED_KeyCodeToText |
| 66 #else | 66 #else |
| 67 #define MAYBE_KeyCodeToText KeyCodeToText | 67 #define MAYBE_KeyCodeToText KeyCodeToText |
| 68 #endif | 68 #endif |
| 69 | 69 |
| 70 TEST(KeycodeTextConversionTest, MAYBE_KeyCodeToText) { | 70 TEST(KeycodeTextConversionTest, MAYBE_KeyCodeToText) { |
| 71 EXPECT_EQ("a", ConvertKeyCodeToTextNoError(ui::VKEY_A, 0)); | 71 EXPECT_EQ("a", ConvertKeyCodeToTextNoError(ui::VKEY_A, 0)); |
| 72 EXPECT_EQ("A", | 72 EXPECT_EQ("A", |
| 73 ConvertKeyCodeToTextNoError(ui::VKEY_A, kShiftKeyModifierMask)); | 73 ConvertKeyCodeToTextNoError(ui::VKEY_A, kShiftKeyModifierMask)); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 86 | 86 |
| 87 EXPECT_EQ("/", ConvertKeyCodeToTextNoError(ui::VKEY_DIVIDE, 0)); | 87 EXPECT_EQ("/", ConvertKeyCodeToTextNoError(ui::VKEY_DIVIDE, 0)); |
| 88 EXPECT_EQ("/", | 88 EXPECT_EQ("/", |
| 89 ConvertKeyCodeToTextNoError(ui::VKEY_DIVIDE, kShiftKeyModifierMask)); | 89 ConvertKeyCodeToTextNoError(ui::VKEY_DIVIDE, kShiftKeyModifierMask)); |
| 90 | 90 |
| 91 EXPECT_EQ("", ConvertKeyCodeToTextNoError(ui::VKEY_SHIFT, 0)); | 91 EXPECT_EQ("", ConvertKeyCodeToTextNoError(ui::VKEY_SHIFT, 0)); |
| 92 EXPECT_EQ("", | 92 EXPECT_EQ("", |
| 93 ConvertKeyCodeToTextNoError(ui::VKEY_SHIFT, kShiftKeyModifierMask)); | 93 ConvertKeyCodeToTextNoError(ui::VKEY_SHIFT, kShiftKeyModifierMask)); |
| 94 } | 94 } |
| 95 | 95 |
| 96 #if defined(OS_LINUX) | 96 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
| 97 // Fails on bots: crbug.com/174962 | 97 // Fails on bots: crbug.com/174962 |
| 98 #define MAYBE_CharToKeyCode DISABLED_CharToKeyCode | 98 #define MAYBE_CharToKeyCode DISABLED_CharToKeyCode |
| 99 #else | 99 #else |
| 100 #define MAYBE_CharToKeyCode CharToKeyCode | 100 #define MAYBE_CharToKeyCode CharToKeyCode |
| 101 #endif | 101 #endif |
| 102 | 102 |
| 103 TEST(KeycodeTextConversionTest, MAYBE_CharToKeyCode) { | 103 TEST(KeycodeTextConversionTest, MAYBE_CharToKeyCode) { |
| 104 CheckCharToKeyCode('a', ui::VKEY_A, 0); | 104 CheckCharToKeyCode('a', ui::VKEY_A, 0); |
| 105 CheckCharToKeyCode('A', ui::VKEY_A, kShiftKeyModifierMask); | 105 CheckCharToKeyCode('A', ui::VKEY_A, kShiftKeyModifierMask); |
| 106 | 106 |
| 107 CheckCharToKeyCode('1', ui::VKEY_1, 0); | 107 CheckCharToKeyCode('1', ui::VKEY_1, 0); |
| 108 CheckCharToKeyCode('!', ui::VKEY_1, kShiftKeyModifierMask); | 108 CheckCharToKeyCode('!', ui::VKEY_1, kShiftKeyModifierMask); |
| 109 | 109 |
| 110 CheckCharToKeyCode(',', ui::VKEY_OEM_COMMA, 0); | 110 CheckCharToKeyCode(',', ui::VKEY_OEM_COMMA, 0); |
| 111 CheckCharToKeyCode('<', ui::VKEY_OEM_COMMA, kShiftKeyModifierMask); | 111 CheckCharToKeyCode('<', ui::VKEY_OEM_COMMA, kShiftKeyModifierMask); |
| 112 | 112 |
| 113 CheckCharToKeyCode('/', ui::VKEY_OEM_2, 0); | 113 CheckCharToKeyCode('/', ui::VKEY_OEM_2, 0); |
| 114 CheckCharToKeyCode('?', ui::VKEY_OEM_2, kShiftKeyModifierMask); | 114 CheckCharToKeyCode('?', ui::VKEY_OEM_2, kShiftKeyModifierMask); |
| 115 | 115 |
| 116 CheckCantConvertChar(L'\u00E9'); | 116 CheckCantConvertChar(L'\u00E9'); |
| 117 CheckCantConvertChar(L'\u2159'); | 117 CheckCantConvertChar(L'\u2159'); |
| 118 } | 118 } |
| 119 | 119 |
| 120 #if defined(OS_LINUX) || defined(OS_MACOSX) | 120 #if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_MACOSX) |
| 121 // Not implemented on Linux. | 121 // Not implemented on Linux. |
| 122 // Fails if German layout is not installed on Mac. | 122 // Fails if German layout is not installed on Mac. |
| 123 #define MAYBE_NonShiftModifiers DISABLED_NonShiftModifiers | 123 #define MAYBE_NonShiftModifiers DISABLED_NonShiftModifiers |
| 124 #else | 124 #else |
| 125 #define MAYBE_NonShiftModifiers NonShiftModifiers | 125 #define MAYBE_NonShiftModifiers NonShiftModifiers |
| 126 #endif | 126 #endif |
| 127 | 127 |
| 128 TEST(KeycodeTextConversionTest, MAYBE_NonShiftModifiers) { | 128 TEST(KeycodeTextConversionTest, MAYBE_NonShiftModifiers) { |
| 129 RestoreKeyboardLayoutOnDestruct restore; | 129 RestoreKeyboardLayoutOnDestruct restore; |
| 130 #if defined(OS_WIN) | 130 #if defined(OS_WIN) |
| 131 ASSERT_TRUE(SwitchKeyboardLayout("00000407")); // german | 131 ASSERT_TRUE(SwitchKeyboardLayout("00000407")); // german |
| 132 int ctrl_and_alt = kControlKeyModifierMask | kAltKeyModifierMask; | 132 int ctrl_and_alt = kControlKeyModifierMask | kAltKeyModifierMask; |
| 133 CheckCharToKeyCode('@', ui::VKEY_Q, ctrl_and_alt); | 133 CheckCharToKeyCode('@', ui::VKEY_Q, ctrl_and_alt); |
| 134 EXPECT_EQ("@", ConvertKeyCodeToTextNoError(ui::VKEY_Q, ctrl_and_alt)); | 134 EXPECT_EQ("@", ConvertKeyCodeToTextNoError(ui::VKEY_Q, ctrl_and_alt)); |
| 135 #elif defined(OS_MACOSX) | 135 #elif defined(OS_MACOSX) |
| 136 ASSERT_TRUE(SwitchKeyboardLayout("com.apple.keylayout.German")); | 136 ASSERT_TRUE(SwitchKeyboardLayout("com.apple.keylayout.German")); |
| 137 EXPECT_EQ("@", ConvertKeyCodeToTextNoError( | 137 EXPECT_EQ("@", ConvertKeyCodeToTextNoError( |
| 138 ui::VKEY_L, kAltKeyModifierMask)); | 138 ui::VKEY_L, kAltKeyModifierMask)); |
| 139 #endif | 139 #endif |
| 140 } | 140 } |
| 141 | 141 |
| 142 #if defined(OS_LINUX) || defined(OS_MACOSX) | 142 #if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_MACOSX) |
| 143 // Not implemented on Linux. | 143 // Not implemented on Linux. |
| 144 // Fails if German layout is not installed on Mac. | 144 // Fails if German layout is not installed on Mac. |
| 145 #define MAYBE_NonEnglish DISABLED_NonEnglish | 145 #define MAYBE_NonEnglish DISABLED_NonEnglish |
| 146 #else | 146 #else |
| 147 #define MAYBE_NonEnglish NonEnglish | 147 #define MAYBE_NonEnglish NonEnglish |
| 148 #endif | 148 #endif |
| 149 | 149 |
| 150 TEST(KeycodeTextConversionTest, MAYBE_NonEnglish) { | 150 TEST(KeycodeTextConversionTest, MAYBE_NonEnglish) { |
| 151 RestoreKeyboardLayoutOnDestruct restore; | 151 RestoreKeyboardLayoutOnDestruct restore; |
| 152 #if defined(OS_WIN) | 152 #if defined(OS_WIN) |
| 153 ASSERT_TRUE(SwitchKeyboardLayout("00000408")); // greek | 153 ASSERT_TRUE(SwitchKeyboardLayout("00000408")); // greek |
| 154 CheckCharToKeyCode(';', ui::VKEY_Q, 0); | 154 CheckCharToKeyCode(';', ui::VKEY_Q, 0); |
| 155 EXPECT_EQ(";", ConvertKeyCodeToTextNoError(ui::VKEY_Q, 0)); | 155 EXPECT_EQ(";", ConvertKeyCodeToTextNoError(ui::VKEY_Q, 0)); |
| 156 // Regression test for chromedriver bug #405. | 156 // Regression test for chromedriver bug #405. |
| 157 ASSERT_TRUE(SwitchKeyboardLayout("00000419")); // russian | 157 ASSERT_TRUE(SwitchKeyboardLayout("00000419")); // russian |
| 158 CheckCharToKeyCode(L'\u0438', ui::VKEY_B, 0); | 158 CheckCharToKeyCode(L'\u0438', ui::VKEY_B, 0); |
| 159 EXPECT_EQ(base::UTF16ToUTF8(L"\u0438"), | 159 EXPECT_EQ(base::UTF16ToUTF8(L"\u0438"), |
| 160 ConvertKeyCodeToTextNoError(ui::VKEY_B, 0)); | 160 ConvertKeyCodeToTextNoError(ui::VKEY_B, 0)); |
| 161 #elif defined(OS_MACOSX) | 161 #elif defined(OS_MACOSX) |
| 162 ASSERT_TRUE(SwitchKeyboardLayout("com.apple.keylayout.German")); | 162 ASSERT_TRUE(SwitchKeyboardLayout("com.apple.keylayout.German")); |
| 163 CheckCharToKeyCode('z', ui::VKEY_Y, 0); | 163 CheckCharToKeyCode('z', ui::VKEY_Y, 0); |
| 164 EXPECT_EQ("z", ConvertKeyCodeToTextNoError(ui::VKEY_Y, 0)); | 164 EXPECT_EQ("z", ConvertKeyCodeToTextNoError(ui::VKEY_Y, 0)); |
| 165 #endif | 165 #endif |
| 166 } | 166 } |
| OLD | NEW |