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 |