| Index: ui/base/ime/linux/text_edit_command_auralinux_unittest.cc
|
| diff --git a/ui/base/ime/linux/text_edit_command_auralinux_unittest.cc b/ui/base/ime/linux/text_edit_command_auralinux_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a305598fcae91deea88785b761b403280ae34432
|
| --- /dev/null
|
| +++ b/ui/base/ime/linux/text_edit_command_auralinux_unittest.cc
|
| @@ -0,0 +1,153 @@
|
| +// Copyright 2016 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "ui/base/ime/linux/text_edit_command_auralinux.h"
|
| +
|
| +#include <map>
|
| +#include <string>
|
| +
|
| +#include "base/macros.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +#include "third_party/WebKit/public/platform/WebEditingCommandType.h"
|
| +#include "third_party/WebKit/public/platform/WebEditorCommandNames.h"
|
| +#include "ui/base/ime/text_edit_commands.h"
|
| +
|
| +namespace ui {
|
| +namespace {
|
| +
|
| +const std::map<std::string, blink::WebEditingCommandType> kWebCommandMap = {
|
| +#define V(name) {#name, blink::WebEditingCommandType::name},
|
| + FOR_EACH_BLINK_EDITING_COMMAND_NAME(V)
|
| +#undef V
|
| +};
|
| +
|
| +// Returns the blink::WebEditingCommandType corresponding to the
|
| +// ui::TextEditCommandAuraLinux |command|. To convert the command string to
|
| +// blink::WebEditingCommandType, we follow logic similar to
|
| +// WebEditingCommandTypeFromCommandName in
|
| +// third_party/WebKit/Source/core/editing/commands/EditorCommand.cpp.
|
| +blink::WebEditingCommandType GetWebEditingCommandFromTextEditCommand(
|
| + TextEditCommandAuraLinux command) {
|
| + auto it = kWebCommandMap.find(command.GetCommandString());
|
| + return it != kWebCommandMap.end() ? it->second
|
| + : blink::WebEditingCommandType::Invalid;
|
| +}
|
| +
|
| +// Test that TextEditCommandAuraLinux::GetCommandString sends the appropriate
|
| +// string to the renderer.
|
| +TEST(TextEditCommandAuraLinuxTest, GetCommandString) {
|
| + struct {
|
| + TextEditCommand text_edit_command;
|
| + blink::WebEditingCommandType web_editing_command;
|
| + } cases[] = {
|
| + {TextEditCommand::DELETE_BACKWARD,
|
| + blink::WebEditingCommandType::DeleteBackward},
|
| + {TextEditCommand::DELETE_FORWARD,
|
| + blink::WebEditingCommandType::DeleteForward},
|
| + {TextEditCommand::DELETE_TO_BEGINNING_OF_LINE,
|
| + blink::WebEditingCommandType::DeleteToBeginningOfLine},
|
| + {TextEditCommand::DELETE_TO_BEGINNING_OF_PARAGRAPH,
|
| + blink::WebEditingCommandType::DeleteToBeginningOfParagraph},
|
| + {TextEditCommand::DELETE_TO_END_OF_LINE,
|
| + blink::WebEditingCommandType::DeleteToEndOfLine},
|
| + {TextEditCommand::DELETE_TO_END_OF_PARAGRAPH,
|
| + blink::WebEditingCommandType::DeleteToEndOfParagraph},
|
| + {TextEditCommand::DELETE_WORD_BACKWARD,
|
| + blink::WebEditingCommandType::DeleteWordBackward},
|
| + {TextEditCommand::DELETE_WORD_FORWARD,
|
| + blink::WebEditingCommandType::DeleteWordForward},
|
| + {TextEditCommand::MOVE_BACKWARD,
|
| + blink::WebEditingCommandType::MoveBackward},
|
| + {TextEditCommand::MOVE_BACKWARD_AND_MODIFY_SELECTION,
|
| + blink::WebEditingCommandType::MoveBackwardAndModifySelection},
|
| + {TextEditCommand::MOVE_DOWN, blink::WebEditingCommandType::MoveDown},
|
| + {TextEditCommand::MOVE_DOWN_AND_MODIFY_SELECTION,
|
| + blink::WebEditingCommandType::MoveDownAndModifySelection},
|
| + {TextEditCommand::MOVE_FORWARD,
|
| + blink::WebEditingCommandType::MoveForward},
|
| + {TextEditCommand::MOVE_FORWARD_AND_MODIFY_SELECTION,
|
| + blink::WebEditingCommandType::MoveForwardAndModifySelection},
|
| + {TextEditCommand::MOVE_LEFT, blink::WebEditingCommandType::MoveLeft},
|
| + {TextEditCommand::MOVE_LEFT_AND_MODIFY_SELECTION,
|
| + blink::WebEditingCommandType::MoveLeftAndModifySelection},
|
| + {TextEditCommand::MOVE_PAGE_DOWN,
|
| + blink::WebEditingCommandType::MovePageDown},
|
| + {TextEditCommand::MOVE_PAGE_DOWN_AND_MODIFY_SELECTION,
|
| + blink::WebEditingCommandType::MovePageDownAndModifySelection},
|
| + {TextEditCommand::MOVE_PAGE_UP, blink::WebEditingCommandType::MovePageUp},
|
| + {TextEditCommand::MOVE_PAGE_UP_AND_MODIFY_SELECTION,
|
| + blink::WebEditingCommandType::MovePageUpAndModifySelection},
|
| + {TextEditCommand::MOVE_RIGHT, blink::WebEditingCommandType::MoveRight},
|
| + {TextEditCommand::MOVE_RIGHT_AND_MODIFY_SELECTION,
|
| + blink::WebEditingCommandType::MoveRightAndModifySelection},
|
| + {TextEditCommand::MOVE_TO_BEGINNING_OF_DOCUMENT,
|
| + blink::WebEditingCommandType::MoveToBeginningOfDocument},
|
| + {TextEditCommand::MOVE_TO_BEGINNING_OF_DOCUMENT_AND_MODIFY_SELECTION,
|
| + blink::WebEditingCommandType::
|
| + MoveToBeginningOfDocumentAndModifySelection},
|
| + {TextEditCommand::MOVE_TO_BEGINNING_OF_LINE,
|
| + blink::WebEditingCommandType::MoveToBeginningOfLine},
|
| + {TextEditCommand::MOVE_TO_BEGINNING_OF_LINE_AND_MODIFY_SELECTION,
|
| + blink::WebEditingCommandType::MoveToBeginningOfLineAndModifySelection},
|
| + {TextEditCommand::MOVE_TO_BEGINNING_OF_PARAGRAPH,
|
| + blink::WebEditingCommandType::MoveToBeginningOfParagraph},
|
| + {TextEditCommand::MOVE_TO_BEGINNING_OF_PARAGRAPH_AND_MODIFY_SELECTION,
|
| + blink::WebEditingCommandType::
|
| + MoveToBeginningOfParagraphAndModifySelection},
|
| + {TextEditCommand::MOVE_TO_END_OF_DOCUMENT,
|
| + blink::WebEditingCommandType::MoveToEndOfDocument},
|
| + {TextEditCommand::MOVE_TO_END_OF_DOCUMENT_AND_MODIFY_SELECTION,
|
| + blink::WebEditingCommandType::MoveToEndOfDocumentAndModifySelection},
|
| + {TextEditCommand::MOVE_TO_END_OF_LINE,
|
| + blink::WebEditingCommandType::MoveToEndOfLine},
|
| + {TextEditCommand::MOVE_TO_END_OF_LINE_AND_MODIFY_SELECTION,
|
| + blink::WebEditingCommandType::MoveToEndOfLineAndModifySelection},
|
| + {TextEditCommand::MOVE_TO_END_OF_PARAGRAPH,
|
| + blink::WebEditingCommandType::MoveToEndOfParagraph},
|
| + {TextEditCommand::MOVE_TO_END_OF_PARAGRAPH_AND_MODIFY_SELECTION,
|
| + blink::WebEditingCommandType::MoveToEndOfParagraphAndModifySelection},
|
| + {TextEditCommand::MOVE_UP, blink::WebEditingCommandType::MoveUp},
|
| + {TextEditCommand::MOVE_UP_AND_MODIFY_SELECTION,
|
| + blink::WebEditingCommandType::MoveUpAndModifySelection},
|
| + {TextEditCommand::MOVE_WORD_BACKWARD,
|
| + blink::WebEditingCommandType::MoveWordBackward},
|
| + {TextEditCommand::MOVE_WORD_BACKWARD_AND_MODIFY_SELECTION,
|
| + blink::WebEditingCommandType::MoveWordBackwardAndModifySelection},
|
| + {TextEditCommand::MOVE_WORD_FORWARD,
|
| + blink::WebEditingCommandType::MoveWordForward},
|
| + {TextEditCommand::MOVE_WORD_FORWARD_AND_MODIFY_SELECTION,
|
| + blink::WebEditingCommandType::MoveWordForwardAndModifySelection},
|
| + {TextEditCommand::MOVE_WORD_LEFT,
|
| + blink::WebEditingCommandType::MoveWordLeft},
|
| + {TextEditCommand::MOVE_WORD_LEFT_AND_MODIFY_SELECTION,
|
| + blink::WebEditingCommandType::MoveWordLeftAndModifySelection},
|
| + {TextEditCommand::MOVE_WORD_RIGHT,
|
| + blink::WebEditingCommandType::MoveWordRight},
|
| + {TextEditCommand::MOVE_WORD_RIGHT_AND_MODIFY_SELECTION,
|
| + blink::WebEditingCommandType::MoveWordRightAndModifySelection},
|
| + {TextEditCommand::UNDO, blink::WebEditingCommandType::Undo},
|
| + {TextEditCommand::REDO, blink::WebEditingCommandType::Redo},
|
| + {TextEditCommand::CUT, blink::WebEditingCommandType::Cut},
|
| + {TextEditCommand::COPY, blink::WebEditingCommandType::Copy},
|
| + {TextEditCommand::PASTE, blink::WebEditingCommandType::Paste},
|
| + {TextEditCommand::SELECT_ALL, blink::WebEditingCommandType::SelectAll},
|
| + {TextEditCommand::INSERT_TEXT, blink::WebEditingCommandType::InsertText},
|
| + {TextEditCommand::SET_MARK, blink::WebEditingCommandType::SetMark},
|
| + {TextEditCommand::UNSELECT, blink::WebEditingCommandType::Unselect},
|
| + };
|
| +
|
| + // Ensure we cover all TextEditCommand values except INVALID_COMMAND.
|
| + EXPECT_EQ(static_cast<size_t>(TextEditCommand::NUMBER_OF_COMMANDS),
|
| + arraysize(cases) + 1);
|
| +
|
| + for (size_t i = 0; i < arraysize(cases); i++) {
|
| + // Wrap TextEditCommand in TextEditCommandAuraLinux.
|
| + TextEditCommandAuraLinux command(cases[i].text_edit_command, "");
|
| + EXPECT_EQ(cases[i].web_editing_command,
|
| + GetWebEditingCommandFromTextEditCommand(command));
|
| + }
|
| +}
|
| +
|
| +} // namespace
|
| +} // namespace ui
|
|
|