| Index: chrome/test/webdriver/webdriver_key_converter_unittest.cc
|
| diff --git a/chrome/test/webdriver/webdriver_key_converter_unittest.cc b/chrome/test/webdriver/webdriver_key_converter_unittest.cc
|
| index cc9c47315e05a09b100de938c3cec4ba48583c41..e7974f2c6fc7a1101c202fe863ad0695f0570f80 100644
|
| --- a/chrome/test/webdriver/webdriver_key_converter_unittest.cc
|
| +++ b/chrome/test/webdriver/webdriver_key_converter_unittest.cc
|
| @@ -17,7 +17,8 @@ void CheckEvents(const string16& keys,
|
| WebKeyEvent expected_events[],
|
| size_t expected_size) {
|
| std::vector<WebKeyEvent> events;
|
| - ConvertKeysToWebKeyEvents(keys, &events);
|
| + std::string error_msg;
|
| + EXPECT_TRUE(ConvertKeysToWebKeyEvents(keys, &events, &error_msg));
|
| EXPECT_EQ(expected_size, events.size());
|
| for (size_t i = 0; i < events.size() && i < expected_size; ++i) {
|
| EXPECT_EQ(expected_events[i].type, events[i].type);
|
| @@ -38,7 +39,9 @@ void CheckNonShiftChar(ui::KeyboardCode key_code, char character) {
|
| std::string char_string;
|
| char_string.push_back(character);
|
| std::vector<WebKeyEvent> events;
|
| - ConvertKeysToWebKeyEvents(ASCIIToUTF16(char_string), &events);
|
| + std::string error_msg;
|
| + EXPECT_TRUE(ConvertKeysToWebKeyEvents(ASCIIToUTF16(char_string), &events,
|
| + &error_msg));
|
| ASSERT_EQ(3u, events.size()) << "Char: " << character;
|
| EXPECT_EQ(key_code, events[0].key_code) << "Char: " << character;
|
| ASSERT_EQ(1u, events[1].modified_text.length()) << "Char: " << character;
|
| @@ -52,7 +55,9 @@ void CheckShiftChar(ui::KeyboardCode key_code, char character, char lower) {
|
| std::string char_string;
|
| char_string.push_back(character);
|
| std::vector<WebKeyEvent> events;
|
| - ConvertKeysToWebKeyEvents(ASCIIToUTF16(char_string), &events);
|
| + std::string error_msg;
|
| + EXPECT_TRUE(ConvertKeysToWebKeyEvents(ASCIIToUTF16(char_string), &events,
|
| + &error_msg));
|
| ASSERT_EQ(5u, events.size()) << "Char: " << character;
|
| EXPECT_EQ(ui::VKEY_SHIFT, events[0].key_code) << "Char: " << character;
|
| EXPECT_EQ(key_code, events[1].key_code) << "Char: " << character;
|
| @@ -196,6 +201,24 @@ TEST(WebDriverKeyConverter, ToggleModifiers) {
|
| CheckEvents(keys, event_array, arraysize(event_array));
|
| }
|
|
|
| +TEST(WebDriverKeyConverter, AllShorthandKeys) {
|
| + WebKeyEvent event_array[] = {
|
| + CreateKeyDownEvent(ui::VKEY_RETURN, 0),
|
| + CreateCharEvent("\r", "\r", 0),
|
| + CreateKeyUpEvent(ui::VKEY_RETURN, 0),
|
| + CreateKeyDownEvent(ui::VKEY_RETURN, 0),
|
| + CreateCharEvent("\r", "\r", 0),
|
| + CreateKeyUpEvent(ui::VKEY_RETURN, 0),
|
| + CreateKeyDownEvent(ui::VKEY_TAB, 0),
|
| + CreateKeyUpEvent(ui::VKEY_TAB, 0),
|
| + CreateKeyDownEvent(ui::VKEY_BACK, 0),
|
| + CreateKeyUpEvent(ui::VKEY_BACK, 0),
|
| + CreateKeyDownEvent(ui::VKEY_SPACE, 0),
|
| + CreateCharEvent(" ", " ", 0),
|
| + CreateKeyUpEvent(ui::VKEY_SPACE, 0)};
|
| + CheckEvents("\n\r\n\t\b ", event_array, arraysize(event_array));
|
| +}
|
| +
|
| TEST(WebDriverKeyConverter, AllEnglishKeyboardSymbols) {
|
| string16 keys;
|
| const ui::KeyboardCode kSymbolKeyCodes[] = {
|
| @@ -243,24 +266,33 @@ TEST(WebDriverKeyConverter, AllEnglishKeyboardTextChars) {
|
|
|
| TEST(WebDriverKeyConverter, AllSpecialWebDriverKeysOnEnglishKeyboard) {
|
| const char kTextKeys[] = {
|
| - ' ', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ';', '=', '0', '1', '2', '3', '4', '5',
|
| - '6', '7', '8', '9', '*', '+', ',', '-', '.', '/'};
|
| + 0, 0, 0, 0, 0, 0, '\r', '\r', 0, 0, 0, 0, 0, ' ', 0, 0, 0, 0, 0, 0, 0, 0,
|
| + 0, 0, ';', '=', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
|
| + '*', '+', ',', '-', '.', '/'};
|
| for (size_t i = 0; i <= 0x3D; ++i) {
|
| if (i > 0x29 && i < 0x31)
|
| continue;
|
| string16 keys;
|
| keys.push_back(0xE000U + i);
|
| std::vector<WebKeyEvent> events;
|
| - ConvertKeysToWebKeyEvents(keys, &events);
|
| - if (i == 0xD || (i >= 0x18 && i <= 0x29)) {
|
| - ASSERT_EQ(3u, events.size()) << "Index: " << i;
|
| - ASSERT_EQ(1u, events[1].unmodified_text.length()) << "Index: " << i;
|
| - EXPECT_EQ(kTextKeys[i - 0xD], events[1].unmodified_text[0])
|
| + std::string error_msg;
|
| + if (i == 1) {
|
| + EXPECT_FALSE(ConvertKeysToWebKeyEvents(keys, &events, &error_msg))
|
| << "Index: " << i;
|
| - } else if (i < 2) {
|
| EXPECT_EQ(0u, events.size()) << "Index: " << i;
|
| } else {
|
| - EXPECT_EQ(2u, events.size()) << "Index: " << i;
|
| + EXPECT_TRUE(ConvertKeysToWebKeyEvents(keys, &events, &error_msg))
|
| + << "Index: " << i;
|
| + if (i == 0) {
|
| + EXPECT_EQ(0u, events.size()) << "Index: " << i;
|
| + } else if (i == 6 || i == 7 || i == 0xD || (i >= 0x18 && i <= 0x29)) {
|
| + ASSERT_EQ(3u, events.size()) << "Index: " << i;
|
| + ASSERT_EQ(1u, events[1].unmodified_text.length()) << "Index: " << i;
|
| + EXPECT_EQ(kTextKeys[i], events[1].unmodified_text[0])
|
| + << "Index: " << i;
|
| + } else {
|
| + EXPECT_EQ(2u, events.size()) << "Index: " << i;
|
| + }
|
| }
|
| }
|
| }
|
|
|