| OLD | NEW |
| (Empty) | |
| 1 // Copyright 2016 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 "ui/base/ime/linux/text_edit_command_auralinux.h" |
| 6 |
| 7 #include <map> |
| 8 #include <string> |
| 9 |
| 10 #include "base/macros.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" |
| 12 #include "third_party/WebKit/public/platform/WebEditingCommandType.h" |
| 13 #include "third_party/WebKit/public/platform/WebEditorCommandNames.h" |
| 14 #include "ui/base/ime/text_edit_commands.h" |
| 15 |
| 16 namespace ui { |
| 17 namespace { |
| 18 |
| 19 const std::map<std::string, blink::WebEditingCommandType> kWebCommandMap = { |
| 20 #define V(name) {#name, blink::WebEditingCommandType::name}, |
| 21 FOR_EACH_BLINK_EDITING_COMMAND_NAME(V) |
| 22 #undef V |
| 23 }; |
| 24 |
| 25 // Returns the blink::WebEditingCommandType corresponding to the |
| 26 // ui::TextEditCommandAuraLinux |command|. To convert the command string to |
| 27 // blink::WebEditingCommandType, we follow logic similar to |
| 28 // WebEditingCommandTypeFromCommandName in |
| 29 // third_party/WebKit/Source/core/editing/commands/EditorCommand.cpp. |
| 30 blink::WebEditingCommandType GetWebEditingCommandFromTextEditCommand( |
| 31 TextEditCommandAuraLinux command) { |
| 32 auto it = kWebCommandMap.find(command.GetCommandString()); |
| 33 return it != kWebCommandMap.end() ? it->second |
| 34 : blink::WebEditingCommandType::Invalid; |
| 35 } |
| 36 |
| 37 // Test that TextEditCommandAuraLinux::GetCommandString sends the appropriate |
| 38 // string to the renderer. |
| 39 TEST(TextEditCommandAuraLinuxTest, GetCommandString) { |
| 40 struct { |
| 41 TextEditCommand text_edit_command; |
| 42 blink::WebEditingCommandType web_editing_command; |
| 43 } cases[] = { |
| 44 {TextEditCommand::DELETE_BACKWARD, |
| 45 blink::WebEditingCommandType::DeleteBackward}, |
| 46 {TextEditCommand::DELETE_FORWARD, |
| 47 blink::WebEditingCommandType::DeleteForward}, |
| 48 {TextEditCommand::DELETE_TO_BEGINNING_OF_LINE, |
| 49 blink::WebEditingCommandType::DeleteToBeginningOfLine}, |
| 50 {TextEditCommand::DELETE_TO_BEGINNING_OF_PARAGRAPH, |
| 51 blink::WebEditingCommandType::DeleteToBeginningOfParagraph}, |
| 52 {TextEditCommand::DELETE_TO_END_OF_LINE, |
| 53 blink::WebEditingCommandType::DeleteToEndOfLine}, |
| 54 {TextEditCommand::DELETE_TO_END_OF_PARAGRAPH, |
| 55 blink::WebEditingCommandType::DeleteToEndOfParagraph}, |
| 56 {TextEditCommand::DELETE_WORD_BACKWARD, |
| 57 blink::WebEditingCommandType::DeleteWordBackward}, |
| 58 {TextEditCommand::DELETE_WORD_FORWARD, |
| 59 blink::WebEditingCommandType::DeleteWordForward}, |
| 60 {TextEditCommand::MOVE_BACKWARD, |
| 61 blink::WebEditingCommandType::MoveBackward}, |
| 62 {TextEditCommand::MOVE_BACKWARD_AND_MODIFY_SELECTION, |
| 63 blink::WebEditingCommandType::MoveBackwardAndModifySelection}, |
| 64 {TextEditCommand::MOVE_DOWN, blink::WebEditingCommandType::MoveDown}, |
| 65 {TextEditCommand::MOVE_DOWN_AND_MODIFY_SELECTION, |
| 66 blink::WebEditingCommandType::MoveDownAndModifySelection}, |
| 67 {TextEditCommand::MOVE_FORWARD, |
| 68 blink::WebEditingCommandType::MoveForward}, |
| 69 {TextEditCommand::MOVE_FORWARD_AND_MODIFY_SELECTION, |
| 70 blink::WebEditingCommandType::MoveForwardAndModifySelection}, |
| 71 {TextEditCommand::MOVE_LEFT, blink::WebEditingCommandType::MoveLeft}, |
| 72 {TextEditCommand::MOVE_LEFT_AND_MODIFY_SELECTION, |
| 73 blink::WebEditingCommandType::MoveLeftAndModifySelection}, |
| 74 {TextEditCommand::MOVE_PAGE_DOWN, |
| 75 blink::WebEditingCommandType::MovePageDown}, |
| 76 {TextEditCommand::MOVE_PAGE_DOWN_AND_MODIFY_SELECTION, |
| 77 blink::WebEditingCommandType::MovePageDownAndModifySelection}, |
| 78 {TextEditCommand::MOVE_PAGE_UP, blink::WebEditingCommandType::MovePageUp}, |
| 79 {TextEditCommand::MOVE_PAGE_UP_AND_MODIFY_SELECTION, |
| 80 blink::WebEditingCommandType::MovePageUpAndModifySelection}, |
| 81 {TextEditCommand::MOVE_RIGHT, blink::WebEditingCommandType::MoveRight}, |
| 82 {TextEditCommand::MOVE_RIGHT_AND_MODIFY_SELECTION, |
| 83 blink::WebEditingCommandType::MoveRightAndModifySelection}, |
| 84 {TextEditCommand::MOVE_TO_BEGINNING_OF_DOCUMENT, |
| 85 blink::WebEditingCommandType::MoveToBeginningOfDocument}, |
| 86 {TextEditCommand::MOVE_TO_BEGINNING_OF_DOCUMENT_AND_MODIFY_SELECTION, |
| 87 blink::WebEditingCommandType:: |
| 88 MoveToBeginningOfDocumentAndModifySelection}, |
| 89 {TextEditCommand::MOVE_TO_BEGINNING_OF_LINE, |
| 90 blink::WebEditingCommandType::MoveToBeginningOfLine}, |
| 91 {TextEditCommand::MOVE_TO_BEGINNING_OF_LINE_AND_MODIFY_SELECTION, |
| 92 blink::WebEditingCommandType::MoveToBeginningOfLineAndModifySelection}, |
| 93 {TextEditCommand::MOVE_TO_BEGINNING_OF_PARAGRAPH, |
| 94 blink::WebEditingCommandType::MoveToBeginningOfParagraph}, |
| 95 {TextEditCommand::MOVE_TO_BEGINNING_OF_PARAGRAPH_AND_MODIFY_SELECTION, |
| 96 blink::WebEditingCommandType:: |
| 97 MoveToBeginningOfParagraphAndModifySelection}, |
| 98 {TextEditCommand::MOVE_TO_END_OF_DOCUMENT, |
| 99 blink::WebEditingCommandType::MoveToEndOfDocument}, |
| 100 {TextEditCommand::MOVE_TO_END_OF_DOCUMENT_AND_MODIFY_SELECTION, |
| 101 blink::WebEditingCommandType::MoveToEndOfDocumentAndModifySelection}, |
| 102 {TextEditCommand::MOVE_TO_END_OF_LINE, |
| 103 blink::WebEditingCommandType::MoveToEndOfLine}, |
| 104 {TextEditCommand::MOVE_TO_END_OF_LINE_AND_MODIFY_SELECTION, |
| 105 blink::WebEditingCommandType::MoveToEndOfLineAndModifySelection}, |
| 106 {TextEditCommand::MOVE_TO_END_OF_PARAGRAPH, |
| 107 blink::WebEditingCommandType::MoveToEndOfParagraph}, |
| 108 {TextEditCommand::MOVE_TO_END_OF_PARAGRAPH_AND_MODIFY_SELECTION, |
| 109 blink::WebEditingCommandType::MoveToEndOfParagraphAndModifySelection}, |
| 110 {TextEditCommand::MOVE_UP, blink::WebEditingCommandType::MoveUp}, |
| 111 {TextEditCommand::MOVE_UP_AND_MODIFY_SELECTION, |
| 112 blink::WebEditingCommandType::MoveUpAndModifySelection}, |
| 113 {TextEditCommand::MOVE_WORD_BACKWARD, |
| 114 blink::WebEditingCommandType::MoveWordBackward}, |
| 115 {TextEditCommand::MOVE_WORD_BACKWARD_AND_MODIFY_SELECTION, |
| 116 blink::WebEditingCommandType::MoveWordBackwardAndModifySelection}, |
| 117 {TextEditCommand::MOVE_WORD_FORWARD, |
| 118 blink::WebEditingCommandType::MoveWordForward}, |
| 119 {TextEditCommand::MOVE_WORD_FORWARD_AND_MODIFY_SELECTION, |
| 120 blink::WebEditingCommandType::MoveWordForwardAndModifySelection}, |
| 121 {TextEditCommand::MOVE_WORD_LEFT, |
| 122 blink::WebEditingCommandType::MoveWordLeft}, |
| 123 {TextEditCommand::MOVE_WORD_LEFT_AND_MODIFY_SELECTION, |
| 124 blink::WebEditingCommandType::MoveWordLeftAndModifySelection}, |
| 125 {TextEditCommand::MOVE_WORD_RIGHT, |
| 126 blink::WebEditingCommandType::MoveWordRight}, |
| 127 {TextEditCommand::MOVE_WORD_RIGHT_AND_MODIFY_SELECTION, |
| 128 blink::WebEditingCommandType::MoveWordRightAndModifySelection}, |
| 129 {TextEditCommand::UNDO, blink::WebEditingCommandType::Undo}, |
| 130 {TextEditCommand::REDO, blink::WebEditingCommandType::Redo}, |
| 131 {TextEditCommand::CUT, blink::WebEditingCommandType::Cut}, |
| 132 {TextEditCommand::COPY, blink::WebEditingCommandType::Copy}, |
| 133 {TextEditCommand::PASTE, blink::WebEditingCommandType::Paste}, |
| 134 {TextEditCommand::SELECT_ALL, blink::WebEditingCommandType::SelectAll}, |
| 135 {TextEditCommand::INSERT_TEXT, blink::WebEditingCommandType::InsertText}, |
| 136 {TextEditCommand::SET_MARK, blink::WebEditingCommandType::SetMark}, |
| 137 {TextEditCommand::UNSELECT, blink::WebEditingCommandType::Unselect}, |
| 138 }; |
| 139 |
| 140 // Ensure we cover all TextEditCommand values except INVALID_COMMAND. |
| 141 EXPECT_EQ(static_cast<size_t>(TextEditCommand::NUMBER_OF_COMMANDS), |
| 142 arraysize(cases) + 1); |
| 143 |
| 144 for (size_t i = 0; i < arraysize(cases); i++) { |
| 145 // Wrap TextEditCommand in TextEditCommandAuraLinux. |
| 146 TextEditCommandAuraLinux command(cases[i].text_edit_command, ""); |
| 147 EXPECT_EQ(cases[i].web_editing_command, |
| 148 GetWebEditingCommandFromTextEditCommand(command)); |
| 149 } |
| 150 } |
| 151 |
| 152 } // namespace |
| 153 } // namespace ui |
| OLD | NEW |