Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(432)

Side by Side Diff: chrome/test/webdriver/keycode_text_conversion_unittest.cc

Issue 23526047: Delete old chromedriver code, and remove mongoose webserver. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include <string>
6
7 #include "base/strings/string16.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/common/automation_constants.h"
10 #include "chrome/test/webdriver/keycode_text_conversion.h"
11 #include "chrome/test/webdriver/webdriver_test_util.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13 #include "ui/base/keycodes/keyboard_codes.h"
14
15 using automation::kShiftKeyMask;
16 using webdriver::ConvertKeyCodeToText;
17 using webdriver::ConvertCharToKeyCode;
18
19 namespace webdriver {
20
21 void CheckCharToKeyCode(char character, ui::KeyboardCode key_code,
22 int modifiers) {
23 std::string character_string;
24 character_string.push_back(character);
25 char16 character_utf16 = UTF8ToUTF16(character_string)[0];
26 ui::KeyboardCode actual_key_code = ui::VKEY_UNKNOWN;
27 int actual_modifiers = 0;
28 ASSERT_TRUE(ConvertCharToKeyCode(
29 character_utf16, &actual_key_code, &actual_modifiers));
30 EXPECT_EQ(key_code, actual_key_code) << "Char: " << character;
31 EXPECT_EQ(modifiers, actual_modifiers) << "Char: " << character;
32 }
33
34 void CheckCantConvertChar(wchar_t character) {
35 std::wstring character_string;
36 character_string.push_back(character);
37 char16 character_utf16 = WideToUTF16(character_string)[0];
38 ui::KeyboardCode actual_key_code = ui::VKEY_UNKNOWN;
39 int actual_modifiers = 0;
40 EXPECT_FALSE(ConvertCharToKeyCode(
41 character_utf16, &actual_key_code, &actual_modifiers));
42 }
43
44 TEST(KeycodeTextConversionTest, KeyCodeToText) {
45 EXPECT_EQ("a", ConvertKeyCodeToText(ui::VKEY_A, 0));
46 EXPECT_EQ("A", ConvertKeyCodeToText(ui::VKEY_A, kShiftKeyMask));
47
48 EXPECT_EQ("1", ConvertKeyCodeToText(ui::VKEY_1, 0));
49 EXPECT_EQ("!", ConvertKeyCodeToText(ui::VKEY_1, kShiftKeyMask));
50
51 EXPECT_EQ(",", ConvertKeyCodeToText(ui::VKEY_OEM_COMMA, 0));
52 EXPECT_EQ("<", ConvertKeyCodeToText(ui::VKEY_OEM_COMMA, kShiftKeyMask));
53
54 EXPECT_EQ("", ConvertKeyCodeToText(ui::VKEY_F1, 0));
55 EXPECT_EQ("", ConvertKeyCodeToText(ui::VKEY_F1, kShiftKeyMask));
56
57 EXPECT_EQ("/", ConvertKeyCodeToText(ui::VKEY_DIVIDE, 0));
58 EXPECT_EQ("/", ConvertKeyCodeToText(ui::VKEY_DIVIDE, kShiftKeyMask));
59
60 EXPECT_EQ("", ConvertKeyCodeToText(ui::VKEY_SHIFT, 0));
61 EXPECT_EQ("", ConvertKeyCodeToText(ui::VKEY_SHIFT, kShiftKeyMask));
62 }
63
64 TEST(KeycodeTextConversionTest, CharToKeyCode) {
65 CheckCharToKeyCode('a', ui::VKEY_A, 0);
66 CheckCharToKeyCode('A', ui::VKEY_A, kShiftKeyMask);
67
68 CheckCharToKeyCode('1', ui::VKEY_1, 0);
69 CheckCharToKeyCode('!', ui::VKEY_1, kShiftKeyMask);
70
71 CheckCharToKeyCode(',', ui::VKEY_OEM_COMMA, 0);
72 CheckCharToKeyCode('<', ui::VKEY_OEM_COMMA, kShiftKeyMask);
73
74 CheckCharToKeyCode('/', ui::VKEY_OEM_2, 0);
75 CheckCharToKeyCode('?', ui::VKEY_OEM_2, kShiftKeyMask);
76
77 CheckCantConvertChar(L'\u00E9');
78 CheckCantConvertChar(L'\u2159');
79 }
80
81 #if defined(OS_LINUX)
82 #define MAYBE_NonShiftModifiers DISABLED_NonShiftModifiers
83 #else
84 #define MAYBE_NonShiftModifiers NonShiftModifiers
85 #endif
86
87 TEST(KeycodeTextConversionTest, MAYBE_NonShiftModifiers) {
88 RestoreKeyboardLayoutOnDestruct restore;
89 #if defined(OS_WIN)
90 ASSERT_TRUE(SwitchKeyboardLayout("00000407")); // german
91 int ctrl_and_alt = automation::kControlKeyMask | automation::kAltKeyMask;
92 CheckCharToKeyCode('@', ui::VKEY_Q, ctrl_and_alt);
93 EXPECT_EQ("@", ConvertKeyCodeToText(ui::VKEY_Q, ctrl_and_alt));
94 #elif defined(OS_MACOSX)
95 ASSERT_TRUE(SwitchKeyboardLayout("com.apple.keylayout.German"));
96 EXPECT_EQ("@", ConvertKeyCodeToText(ui::VKEY_L, automation::kAltKeyMask));
97 #endif
98 }
99
100 #if defined(OS_LINUX)
101 #define MAYBE_NonEnglish DISABLED_NonEnglish
102 #else
103 #define MAYBE_NonEnglish NonEnglish
104 #endif
105
106 TEST(KeycodeTextConversionTest, MAYBE_NonEnglish) {
107 RestoreKeyboardLayoutOnDestruct restore;
108 #if defined(OS_WIN)
109 ASSERT_TRUE(SwitchKeyboardLayout("00000408")); // greek
110 CheckCharToKeyCode(';', ui::VKEY_Q, 0);
111 EXPECT_EQ(";", ConvertKeyCodeToText(ui::VKEY_Q, 0));
112 #elif defined(OS_MACOSX)
113 ASSERT_TRUE(SwitchKeyboardLayout("com.apple.keylayout.German"));
114 CheckCharToKeyCode('z', ui::VKEY_Y, 0);
115 EXPECT_EQ("z", ConvertKeyCodeToText(ui::VKEY_Y, 0));
116 #endif
117 }
118
119 } // namespace webdriver
OLDNEW
« no previous file with comments | « chrome/test/webdriver/keycode_text_conversion_mac.mm ('k') | chrome/test/webdriver/keycode_text_conversion_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698