summaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorazurewei <azurewei@chromium.org>2015-11-05 21:41:25 -0800
committerCommit bot <commit-bot@chromium.org>2015-11-06 05:42:11 +0000
commitc593c13abc9e9280bc07c7cfce666b3763ac5842 (patch)
treebeed3e15a45669dc83e3002c3316a370910457dc /ui
parent176b5f713052535874dec1290ac8fad0ba2b74d5 (diff)
downloadchromium_src-c593c13abc9e9280bc07c7cfce666b3763ac5842.zip
chromium_src-c593c13abc9e9280bc07c7cfce666b3763ac5842.tar.gz
chromium_src-c593c13abc9e9280bc07c7cfce666b3763ac5842.tar.bz2
Merge duplicated CompositionText structures
Delete the duplicated class chromeos::CompositionText, using struct ui::CompositionText instead. BUG=525893 TEST=No compiling erros. Review URL: https://codereview.chromium.org/1427573006 Cr-Commit-Position: refs/heads/master@{#358267}
Diffstat (limited to 'ui')
-rw-r--r--ui/base/BUILD.gn2
-rw-r--r--ui/base/ime/BUILD.gn2
-rw-r--r--ui/base/ime/chromeos/composition_text_chromeos.cc22
-rw-r--r--ui/base/ime/chromeos/composition_text_chromeos.h70
-rw-r--r--ui/base/ime/chromeos/composition_text_chromeos_unittest.cc54
-rw-r--r--ui/base/ime/chromeos/mock_ime_input_context_handler.cc4
-rw-r--r--ui/base/ime/chromeos/mock_ime_input_context_handler.h6
-rw-r--r--ui/base/ime/composition_text.cc9
-rw-r--r--ui/base/ime/composition_text.h2
-rw-r--r--ui/base/ime/composition_text_unittest.cc51
-rw-r--r--ui/base/ime/ime_input_context_handler_interface.h7
-rw-r--r--ui/base/ime/input_method_chromeos.cc58
-rw-r--r--ui/base/ime/input_method_chromeos.h4
-rw-r--r--ui/base/ime/input_method_chromeos_unittest.cc255
-rw-r--r--ui/base/ime/ui_base_ime.gyp2
-rw-r--r--ui/base/ui_base_tests.gyp2
16 files changed, 214 insertions, 336 deletions
diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn
index 31979ab..286aa74 100644
--- a/ui/base/BUILD.gn
+++ b/ui/base/BUILD.gn
@@ -737,8 +737,8 @@ test("ui_base_unittests") {
if (build_ime) {
sources += [
"ime/candidate_window_unittest.cc",
+ "ime/composition_text_unittest.cc",
"ime/chromeos/character_composer_unittest.cc",
- "ime/chromeos/composition_text_chromeos_unittest.cc",
"ime/input_method_base_unittest.cc",
"ime/input_method_chromeos_unittest.cc",
"ime/remote_input_method_win_unittest.cc",
diff --git a/ui/base/ime/BUILD.gn b/ui/base/ime/BUILD.gn
index 79c8ffb..78f9c55 100644
--- a/ui/base/ime/BUILD.gn
+++ b/ui/base/ime/BUILD.gn
@@ -14,8 +14,6 @@ component("ime") {
"chromeos/character_composer.h",
"chromeos/component_extension_ime_manager.cc",
"chromeos/component_extension_ime_manager.h",
- "chromeos/composition_text_chromeos.cc",
- "chromeos/composition_text_chromeos.h",
"chromeos/extension_ime_util.cc",
"chromeos/extension_ime_util.h",
"chromeos/fake_ime_keyboard.cc",
diff --git a/ui/base/ime/chromeos/composition_text_chromeos.cc b/ui/base/ime/chromeos/composition_text_chromeos.cc
deleted file mode 100644
index 905d8ea..0000000
--- a/ui/base/ime/chromeos/composition_text_chromeos.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2014 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/chromeos/composition_text_chromeos.h"
-
-namespace chromeos {
-
-CompositionText::CompositionText()
- : selection_start_(0),
- selection_end_(0) {}
-
-CompositionText::~CompositionText() {}
-
-void CompositionText::CopyFrom(const CompositionText& obj) {
- text_ = obj.text();
- underline_attributes_ = obj.underline_attributes();
- selection_start_ = obj.selection_start();
- selection_end_ = obj.selection_end();
-}
-
-} // namespace chromeos
diff --git a/ui/base/ime/chromeos/composition_text_chromeos.h b/ui/base/ime/chromeos/composition_text_chromeos.h
deleted file mode 100644
index 3350b0e..0000000
--- a/ui/base/ime/chromeos/composition_text_chromeos.h
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2014 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.
-
-#ifndef UI_BASE_IME_CHROMEOS_COMPOSITION_TEXT_CHROMEOS_H_
-#define UI_BASE_IME_CHROMEOS_COMPOSITION_TEXT_CHROMEOS_H_
-
-#include <string>
-#include <vector>
-
-#include "base/basictypes.h"
-#include "base/strings/string16.h"
-#include "ui/base/ime/ui_base_ime_export.h"
-
-namespace chromeos {
-
-class UI_BASE_IME_EXPORT CompositionText {
- public:
- enum UnderlineType {
- COMPOSITION_TEXT_UNDERLINE_SINGLE = 1,
- COMPOSITION_TEXT_UNDERLINE_DOUBLE = 2,
- COMPOSITION_TEXT_UNDERLINE_NONE = 4,
- COMPOSITION_TEXT_UNDERLINE_ERROR = 8,
- };
-
- struct UnderlineAttribute {
- UnderlineType type;
- uint32 start_index; // The inclusive start index.
- uint32 end_index; // The exclusive end index.
- };
-
- CompositionText();
- virtual ~CompositionText();
-
- // Accessors
- const base::string16& text() const { return text_; }
- void set_text(const base::string16& text) { text_ = text; }
-
- const std::vector<UnderlineAttribute>& underline_attributes() const {
- return underline_attributes_;
- }
-
- std::vector<UnderlineAttribute>* mutable_underline_attributes() {
- return &underline_attributes_;
- }
-
- uint32 selection_start() const { return selection_start_; }
- void set_selection_start(uint32 selection_start) {
- selection_start_ = selection_start;
- }
-
- uint32 selection_end() const { return selection_end_; }
- void set_selection_end(uint32 selection_end) {
- selection_end_ = selection_end;
- }
-
- void CopyFrom(const CompositionText& obj);
-
- private:
- base::string16 text_;
- std::vector<UnderlineAttribute> underline_attributes_;
- uint32 selection_start_;
- uint32 selection_end_;
-
- DISALLOW_COPY_AND_ASSIGN(CompositionText);
-};
-
-} // namespace chromeos
-
-#endif // UI_BASE_IME_CHROMEOS_COMPOSITION_TEXT_CHROMEOS_H_
diff --git a/ui/base/ime/chromeos/composition_text_chromeos_unittest.cc b/ui/base/ime/chromeos/composition_text_chromeos_unittest.cc
deleted file mode 100644
index 067681e..0000000
--- a/ui/base/ime/chromeos/composition_text_chromeos_unittest.cc
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2014 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.
-// TODO(nona): Add more tests.
-
-#include "ui/base/ime/chromeos/composition_text_chromeos.h"
-
-#include "base/strings/utf_string_conversions.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace chromeos {
-
-TEST(CompositionTextTest, CopyTest) {
- const base::string16 kSampleText = base::UTF8ToUTF16("Sample Text");
- const CompositionText::UnderlineAttribute kSampleUnderlineAttribute1 = {
- CompositionText::COMPOSITION_TEXT_UNDERLINE_SINGLE, 10, 20};
-
- const CompositionText::UnderlineAttribute kSampleUnderlineAttribute2 = {
- CompositionText::COMPOSITION_TEXT_UNDERLINE_DOUBLE, 11, 21};
-
- const CompositionText::UnderlineAttribute kSampleUnderlineAttribute3 = {
- CompositionText::COMPOSITION_TEXT_UNDERLINE_ERROR, 12, 22};
-
- // Make CompositionText
- CompositionText text;
- text.set_text(kSampleText);
- std::vector<CompositionText::UnderlineAttribute>* underline_attributes =
- text.mutable_underline_attributes();
- underline_attributes->push_back(kSampleUnderlineAttribute1);
- underline_attributes->push_back(kSampleUnderlineAttribute2);
- underline_attributes->push_back(kSampleUnderlineAttribute3);
- text.set_selection_start(30);
- text.set_selection_end(40);
-
- CompositionText text2;
- text2.CopyFrom(text);
-
- EXPECT_EQ(text.text(), text2.text());
- EXPECT_EQ(text.underline_attributes().size(),
- text2.underline_attributes().size());
- for (size_t i = 0; i < text.underline_attributes().size(); ++i) {
- EXPECT_EQ(text.underline_attributes()[i].type,
- text2.underline_attributes()[i].type);
- EXPECT_EQ(text.underline_attributes()[i].start_index,
- text2.underline_attributes()[i].start_index);
- EXPECT_EQ(text.underline_attributes()[i].end_index,
- text2.underline_attributes()[i].end_index);
- }
-
- EXPECT_EQ(text.selection_start(), text2.selection_start());
- EXPECT_EQ(text.selection_end(), text2.selection_end());
-}
-
-} // namespace chromeos
diff --git a/ui/base/ime/chromeos/mock_ime_input_context_handler.cc b/ui/base/ime/chromeos/mock_ime_input_context_handler.cc
index 936caf2..c139e70 100644
--- a/ui/base/ime/chromeos/mock_ime_input_context_handler.cc
+++ b/ui/base/ime/chromeos/mock_ime_input_context_handler.cc
@@ -4,7 +4,7 @@
#include "ui/base/ime/chromeos/mock_ime_input_context_handler.h"
-#include "ui/base/ime/chromeos/composition_text_chromeos.h"
+#include "ui/base/ime/composition_text.h"
namespace chromeos {
@@ -23,7 +23,7 @@ void MockIMEInputContextHandler::CommitText(const std::string& text) {
}
void MockIMEInputContextHandler::UpdateCompositionText(
- const CompositionText& text,
+ const ui::CompositionText& text,
uint32 cursor_pos,
bool visible) {
++update_preedit_text_call_count_;
diff --git a/ui/base/ime/chromeos/mock_ime_input_context_handler.h b/ui/base/ime/chromeos/mock_ime_input_context_handler.h
index ceb8b8f..21fa313 100644
--- a/ui/base/ime/chromeos/mock_ime_input_context_handler.h
+++ b/ui/base/ime/chromeos/mock_ime_input_context_handler.h
@@ -5,7 +5,7 @@
#ifndef UI_BASE_IME_CHROMEOS_MOCK_IME_INPUT_CONTEXT_HANDLER_H_
#define UI_BASE_IME_CHROMEOS_MOCK_IME_INPUT_CONTEXT_HANDLER_H_
-#include "ui/base/ime/chromeos/composition_text_chromeos.h"
+#include "ui/base/ime/composition_text.h"
#include "ui/base/ime/ime_input_context_handler_interface.h"
#include "ui/base/ime/ui_base_ime_export.h"
@@ -15,7 +15,7 @@ class UI_BASE_IME_EXPORT MockIMEInputContextHandler
: public ui::IMEInputContextHandlerInterface {
public:
struct UpdateCompositionTextArg {
- CompositionText composition_text;
+ ui::CompositionText composition_text;
uint32 cursor_pos;
bool is_visible;
};
@@ -29,7 +29,7 @@ class UI_BASE_IME_EXPORT MockIMEInputContextHandler
virtual ~MockIMEInputContextHandler();
void CommitText(const std::string& text) override;
- void UpdateCompositionText(const CompositionText& text,
+ void UpdateCompositionText(const ui::CompositionText& text,
uint32 cursor_pos,
bool visible) override;
void DeleteSurroundingText(int32 offset, uint32 length) override;
diff --git a/ui/base/ime/composition_text.cc b/ui/base/ime/composition_text.cc
index f85bc74..d3ae7f3 100644
--- a/ui/base/ime/composition_text.cc
+++ b/ui/base/ime/composition_text.cc
@@ -18,4 +18,13 @@ void CompositionText::Clear() {
selection = gfx::Range();
}
+void CompositionText::CopyFrom(const CompositionText& obj) {
+ Clear();
+ text = obj.text;
+ for (size_t i = 0; i < obj.underlines.size(); i++) {
+ underlines.push_back(obj.underlines[i]);
+ }
+ selection = obj.selection;
+}
+
} // namespace ui
diff --git a/ui/base/ime/composition_text.h b/ui/base/ime/composition_text.h
index 063592e..f5b1e37 100644
--- a/ui/base/ime/composition_text.h
+++ b/ui/base/ime/composition_text.h
@@ -35,6 +35,8 @@ struct UI_BASE_IME_EXPORT CompositionText {
void Clear();
+ void CopyFrom(const CompositionText& obj);
+
// Content of the composition text.
base::string16 text;
diff --git a/ui/base/ime/composition_text_unittest.cc b/ui/base/ime/composition_text_unittest.cc
new file mode 100644
index 0000000..d7ed2b8
--- /dev/null
+++ b/ui/base/ime/composition_text_unittest.cc
@@ -0,0 +1,51 @@
+// Copyright 2015 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/composition_text.h"
+
+#include "base/strings/utf_string_conversions.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace ui {
+
+TEST(CompositionTextTest, CopyTest) {
+ const base::string16 kSampleText = base::UTF8ToUTF16("Sample Text");
+ const CompositionUnderline kSampleUnderline1(10, 20, SK_ColorBLACK, false,
+ SK_ColorTRANSPARENT);
+
+ const CompositionUnderline kSampleUnderline2(11, 21, SK_ColorBLACK, true,
+ SK_ColorTRANSPARENT);
+
+ const CompositionUnderline kSampleUnderline3(12, 22, SK_ColorRED, false,
+ SK_ColorTRANSPARENT);
+
+ // Make CompositionText
+ CompositionText text;
+ text.text = kSampleText;
+ text.underlines.push_back(kSampleUnderline1);
+ text.underlines.push_back(kSampleUnderline2);
+ text.underlines.push_back(kSampleUnderline3);
+ text.selection.set_start(30);
+ text.selection.set_end(40);
+
+ CompositionText text2;
+ text2.CopyFrom(text);
+
+ EXPECT_EQ(text.text, text2.text);
+ EXPECT_EQ(text.underlines.size(), text2.underlines.size());
+ for (size_t i = 0; i < text.underlines.size(); ++i) {
+ EXPECT_EQ(text.underlines[i].start_offset,
+ text2.underlines[i].start_offset);
+ EXPECT_EQ(text.underlines[i].end_offset, text2.underlines[i].end_offset);
+ EXPECT_EQ(text.underlines[i].color, text2.underlines[i].color);
+ EXPECT_EQ(text.underlines[i].thick, text2.underlines[i].thick);
+ EXPECT_EQ(text.underlines[i].background_color,
+ text2.underlines[i].background_color);
+ }
+
+ EXPECT_EQ(text.selection.start(), text2.selection.start());
+ EXPECT_EQ(text.selection.end(), text2.selection.end());
+}
+
+} // namespace ui
diff --git a/ui/base/ime/ime_input_context_handler_interface.h b/ui/base/ime/ime_input_context_handler_interface.h
index efb0fbe..f5520f5 100644
--- a/ui/base/ime/ime_input_context_handler_interface.h
+++ b/ui/base/ime/ime_input_context_handler_interface.h
@@ -7,12 +7,9 @@
#include <string>
#include "base/basictypes.h"
+#include "ui/base/ime/composition_text.h"
#include "ui/base/ime/ui_base_ime_export.h"
-namespace chromeos {
-class CompositionText;
-}
-
namespace ui {
class UI_BASE_IME_EXPORT IMEInputContextHandlerInterface {
@@ -21,7 +18,7 @@ class UI_BASE_IME_EXPORT IMEInputContextHandlerInterface {
virtual void CommitText(const std::string& text) = 0;
// Called when the engine updates composition text.
- virtual void UpdateCompositionText(const chromeos::CompositionText& text,
+ virtual void UpdateCompositionText(const CompositionText& text,
uint32 cursor_pos,
bool visible) = 0;
diff --git a/ui/base/ime/input_method_chromeos.cc b/ui/base/ime/input_method_chromeos.cc
index 96ff2ad..f5b2bc2 100644
--- a/ui/base/ime/input_method_chromeos.cc
+++ b/ui/base/ime/input_method_chromeos.cc
@@ -17,9 +17,9 @@
#include "base/strings/utf_string_conversions.h"
#include "base/sys_info.h"
#include "base/third_party/icu/icu_utf.h"
-#include "ui/base/ime/chromeos/composition_text_chromeos.h"
#include "ui/base/ime/chromeos/ime_keyboard.h"
#include "ui/base/ime/chromeos/input_method_manager.h"
+#include "ui/base/ime/composition_text.h"
#include "ui/base/ime/ime_bridge.h"
#include "ui/base/ime/ime_engine_handler_interface.h"
#include "ui/base/ime/text_input_client.h"
@@ -499,10 +499,9 @@ void InputMethodChromeOS::CommitText(const std::string& text) {
}
}
-void InputMethodChromeOS::UpdateCompositionText(
- const chromeos::CompositionText& text,
- uint32 cursor_pos,
- bool visible) {
+void InputMethodChromeOS::UpdateCompositionText(const CompositionText& text,
+ uint32 cursor_pos,
+ bool visible) {
if (IsTextInputTypeNone())
return;
@@ -510,7 +509,7 @@ void InputMethodChromeOS::UpdateCompositionText(
chromeos::IMECandidateWindowHandlerInterface* candidate_window =
ui::IMEBridge::Get()->GetCandidateWindowHandler();
if (candidate_window)
- candidate_window->UpdatePreeditText(text.text(), cursor_pos, visible);
+ candidate_window->UpdatePreeditText(text.text, cursor_pos, visible);
}
// |visible| argument is very confusing. For example, what's the correct
@@ -578,10 +577,9 @@ bool InputMethodChromeOS::ExecuteCharacterComposer(const ui::KeyEvent& event) {
return false;
// CharacterComposer consumed the key event. Update the composition text.
- chromeos::CompositionText preedit;
- preedit.set_text(character_composer_.preedit_string());
- UpdateCompositionText(preedit, preedit.text().size(),
- !preedit.text().empty());
+ CompositionText preedit;
+ preedit.text = character_composer_.preedit_string();
+ UpdateCompositionText(preedit, preedit.text.size(), !preedit.text.empty());
std::string commit_text =
base::UTF16ToUTF8(character_composer_.composed_character());
if (!commit_text.empty()) {
@@ -591,11 +589,11 @@ bool InputMethodChromeOS::ExecuteCharacterComposer(const ui::KeyEvent& event) {
}
void InputMethodChromeOS::ExtractCompositionText(
- const chromeos::CompositionText& text,
+ const CompositionText& text,
uint32 cursor_position,
CompositionText* out_composition) const {
out_composition->Clear();
- out_composition->text = text.text();
+ out_composition->text = text.text;
if (out_composition->text.empty())
return;
@@ -619,36 +617,24 @@ void InputMethodChromeOS::ExtractCompositionText(
out_composition->selection = gfx::Range(cursor_offset);
- const std::vector<chromeos::CompositionText::UnderlineAttribute>&
- underline_attributes = text.underline_attributes();
- if (!underline_attributes.empty()) {
- for (size_t i = 0; i < underline_attributes.size(); ++i) {
- const uint32 start = underline_attributes[i].start_index;
- const uint32 end = underline_attributes[i].end_index;
+ const CompositionUnderlines text_underlines = text.underlines;
+ if (!text_underlines.empty()) {
+ for (size_t i = 0; i < text_underlines.size(); ++i) {
+ const uint32 start = text_underlines[i].start_offset;
+ const uint32 end = text_underlines[i].end_offset;
if (start >= end)
continue;
- CompositionUnderline underline(char16_offsets[start],
- char16_offsets[end],
- SK_ColorBLACK,
- false /* thick */,
- SK_ColorTRANSPARENT);
- if (underline_attributes[i].type ==
- chromeos::CompositionText::COMPOSITION_TEXT_UNDERLINE_DOUBLE)
- underline.thick = true;
- else if (underline_attributes[i].type ==
- chromeos::CompositionText::COMPOSITION_TEXT_UNDERLINE_ERROR)
- underline.color = SK_ColorRED;
- else if (underline_attributes[i].type ==
- chromeos::CompositionText::COMPOSITION_TEXT_UNDERLINE_NONE)
- underline.color = SK_ColorTRANSPARENT;
+ CompositionUnderline underline(
+ char16_offsets[start], char16_offsets[end], text_underlines[i].color,
+ text_underlines[i].thick, text_underlines[i].background_color);
out_composition->underlines.push_back(underline);
}
}
- DCHECK(text.selection_start() <= text.selection_end());
- if (text.selection_start() < text.selection_end()) {
- const uint32 start = text.selection_start();
- const uint32 end = text.selection_end();
+ DCHECK(text.selection.start() <= text.selection.end());
+ if (text.selection.start() < text.selection.end()) {
+ const uint32 start = text.selection.start();
+ const uint32 end = text.selection.end();
CompositionUnderline underline(char16_offsets[start],
char16_offsets[end],
SK_ColorBLACK,
diff --git a/ui/base/ime/input_method_chromeos.h b/ui/base/ime/input_method_chromeos.h
index fa84579..13cbdf9 100644
--- a/ui/base/ime/input_method_chromeos.h
+++ b/ui/base/ime/input_method_chromeos.h
@@ -42,7 +42,7 @@ class UI_BASE_IME_EXPORT InputMethodChromeOS
protected:
// Converts |text| into CompositionText.
- void ExtractCompositionText(const chromeos::CompositionText& text,
+ void ExtractCompositionText(const CompositionText& text,
uint32 cursor_position,
CompositionText* out_composition) const;
@@ -99,7 +99,7 @@ class UI_BASE_IME_EXPORT InputMethodChromeOS
// ui::IMEInputContextHandlerInterface overrides:
void CommitText(const std::string& text) override;
- void UpdateCompositionText(const chromeos::CompositionText& text,
+ void UpdateCompositionText(const CompositionText& text,
uint32 cursor_pos,
bool visible) override;
void DeleteSurroundingText(int32 offset, uint32 length) override;
diff --git a/ui/base/ime/input_method_chromeos_unittest.cc b/ui/base/ime/input_method_chromeos_unittest.cc
index b9af8c1..b35a083 100644
--- a/ui/base/ime/input_method_chromeos_unittest.cc
+++ b/ui/base/ime/input_method_chromeos_unittest.cc
@@ -16,9 +16,9 @@
#include "base/memory/scoped_ptr.h"
#include "base/strings/utf_string_conversions.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "ui/base/ime/chromeos/composition_text_chromeos.h"
#include "ui/base/ime/chromeos/mock_ime_candidate_window_handler.h"
#include "ui/base/ime/chromeos/mock_ime_engine_handler.h"
+#include "ui/base/ime/composition_text.h"
#include "ui/base/ime/dummy_text_input_client.h"
#include "ui/base/ime/ime_bridge.h"
#include "ui/base/ime/ime_engine_handler_interface.h"
@@ -553,8 +553,8 @@ TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_NoAttribute) {
const base::string16 kSampleAsciiText = UTF8ToUTF16("Sample Text");
const uint32 kCursorPos = 2UL;
- chromeos::CompositionText chromeos_composition_text;
- chromeos_composition_text.set_text(kSampleAsciiText);
+ CompositionText chromeos_composition_text;
+ chromeos_composition_text.text = kSampleAsciiText;
CompositionText composition_text;
ime_->ExtractCompositionText(
@@ -575,121 +575,110 @@ TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_SingleUnderline) {
const uint32 kCursorPos = 2UL;
// Set up chromeos composition text with one underline attribute.
- chromeos::CompositionText chromeos_composition_text;
- chromeos_composition_text.set_text(kSampleText);
- chromeos::CompositionText::UnderlineAttribute underline;
- underline.type = chromeos::CompositionText::COMPOSITION_TEXT_UNDERLINE_SINGLE;
- underline.start_index = 1UL;
- underline.end_index = 4UL;
- chromeos_composition_text.mutable_underline_attributes()->push_back(
- underline);
-
CompositionText composition_text;
- ime_->ExtractCompositionText(
- chromeos_composition_text, kCursorPos, &composition_text);
- EXPECT_EQ(kSampleText, composition_text.text);
+ composition_text.text = kSampleText;
+ CompositionUnderline underline(1UL, 4UL, SK_ColorBLACK, false,
+ SK_ColorTRANSPARENT);
+ composition_text.underlines.push_back(underline);
+
+ CompositionText composition_text2;
+ ime_->ExtractCompositionText(composition_text, kCursorPos,
+ &composition_text2);
+ EXPECT_EQ(kSampleText, composition_text2.text);
// If there is no selection, |selection| represents cursor position.
- EXPECT_EQ(kCursorPos, composition_text.selection.start());
- EXPECT_EQ(kCursorPos, composition_text.selection.end());
- ASSERT_EQ(1UL, composition_text.underlines.size());
- EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.start_index),
- composition_text.underlines[0].start_offset);
- EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.end_index),
- composition_text.underlines[0].end_offset);
+ EXPECT_EQ(kCursorPos, composition_text2.selection.start());
+ EXPECT_EQ(kCursorPos, composition_text2.selection.end());
+ ASSERT_EQ(1UL, composition_text2.underlines.size());
+ EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.start_offset),
+ composition_text2.underlines[0].start_offset);
+ EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.end_offset),
+ composition_text2.underlines[0].end_offset);
// Single underline represents as black thin line.
- EXPECT_EQ(SK_ColorBLACK, composition_text.underlines[0].color);
- EXPECT_FALSE(composition_text.underlines[0].thick);
+ EXPECT_EQ(SK_ColorBLACK, composition_text2.underlines[0].color);
+ EXPECT_FALSE(composition_text2.underlines[0].thick);
EXPECT_EQ(static_cast<SkColor>(SK_ColorTRANSPARENT),
- composition_text.underlines[0].background_color);
+ composition_text2.underlines[0].background_color);
}
TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_DoubleUnderline) {
const uint32 kCursorPos = 2UL;
// Set up chromeos composition text with one underline attribute.
- chromeos::CompositionText chromeos_composition_text;
- chromeos_composition_text.set_text(kSampleText);
- chromeos::CompositionText::UnderlineAttribute underline;
- underline.type = chromeos::CompositionText::COMPOSITION_TEXT_UNDERLINE_DOUBLE;
- underline.start_index = 1UL;
- underline.end_index = 4UL;
- chromeos_composition_text.mutable_underline_attributes()->push_back(
- underline);
-
CompositionText composition_text;
- ime_->ExtractCompositionText(
- chromeos_composition_text, kCursorPos, &composition_text);
- EXPECT_EQ(kSampleText, composition_text.text);
+ composition_text.text = kSampleText;
+ CompositionUnderline underline(1UL, 4UL, SK_ColorBLACK, true,
+ SK_ColorTRANSPARENT);
+ composition_text.underlines.push_back(underline);
+
+ CompositionText composition_text2;
+ ime_->ExtractCompositionText(composition_text, kCursorPos,
+ &composition_text2);
+ EXPECT_EQ(kSampleText, composition_text2.text);
// If there is no selection, |selection| represents cursor position.
- EXPECT_EQ(kCursorPos, composition_text.selection.start());
- EXPECT_EQ(kCursorPos, composition_text.selection.end());
- ASSERT_EQ(1UL, composition_text.underlines.size());
- EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.start_index),
- composition_text.underlines[0].start_offset);
- EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.end_index),
- composition_text.underlines[0].end_offset);
+ EXPECT_EQ(kCursorPos, composition_text2.selection.start());
+ EXPECT_EQ(kCursorPos, composition_text2.selection.end());
+ ASSERT_EQ(1UL, composition_text2.underlines.size());
+ EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.start_offset),
+ composition_text2.underlines[0].start_offset);
+ EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.end_offset),
+ composition_text2.underlines[0].end_offset);
// Double underline represents as black thick line.
- EXPECT_EQ(SK_ColorBLACK, composition_text.underlines[0].color);
- EXPECT_TRUE(composition_text.underlines[0].thick);
+ EXPECT_EQ(SK_ColorBLACK, composition_text2.underlines[0].color);
+ EXPECT_TRUE(composition_text2.underlines[0].thick);
EXPECT_EQ(static_cast<SkColor>(SK_ColorTRANSPARENT),
- composition_text.underlines[0].background_color);
+ composition_text2.underlines[0].background_color);
}
TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_ErrorUnderline) {
const uint32 kCursorPos = 2UL;
// Set up chromeos composition text with one underline attribute.
- chromeos::CompositionText chromeos_composition_text;
- chromeos_composition_text.set_text(kSampleText);
- chromeos::CompositionText::UnderlineAttribute underline;
- underline.type = chromeos::CompositionText::COMPOSITION_TEXT_UNDERLINE_ERROR;
- underline.start_index = 1UL;
- underline.end_index = 4UL;
- chromeos_composition_text.mutable_underline_attributes()->push_back(
- underline);
-
CompositionText composition_text;
- ime_->ExtractCompositionText(
- chromeos_composition_text, kCursorPos, &composition_text);
- EXPECT_EQ(kSampleText, composition_text.text);
- EXPECT_EQ(kCursorPos, composition_text.selection.start());
- EXPECT_EQ(kCursorPos, composition_text.selection.end());
- ASSERT_EQ(1UL, composition_text.underlines.size());
- EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.start_index),
- composition_text.underlines[0].start_offset);
- EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.end_index),
- composition_text.underlines[0].end_offset);
+ composition_text.text = kSampleText;
+ CompositionUnderline underline(1UL, 4UL, SK_ColorRED, false,
+ SK_ColorTRANSPARENT);
+ composition_text.underlines.push_back(underline);
+
+ CompositionText composition_text2;
+ ime_->ExtractCompositionText(composition_text, kCursorPos,
+ &composition_text2);
+ EXPECT_EQ(kSampleText, composition_text2.text);
+ EXPECT_EQ(kCursorPos, composition_text2.selection.start());
+ EXPECT_EQ(kCursorPos, composition_text2.selection.end());
+ ASSERT_EQ(1UL, composition_text2.underlines.size());
+ EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.start_offset),
+ composition_text2.underlines[0].start_offset);
+ EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.end_offset),
+ composition_text2.underlines[0].end_offset);
// Error underline represents as red thin line.
- EXPECT_EQ(SK_ColorRED, composition_text.underlines[0].color);
- EXPECT_FALSE(composition_text.underlines[0].thick);
+ EXPECT_EQ(SK_ColorRED, composition_text2.underlines[0].color);
+ EXPECT_FALSE(composition_text2.underlines[0].thick);
}
TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_Selection) {
const uint32 kCursorPos = 2UL;
// Set up chromeos composition text with one underline attribute.
- chromeos::CompositionText chromeos_composition_text;
- chromeos_composition_text.set_text(kSampleText);
- chromeos_composition_text.set_selection_start(1UL);
- chromeos_composition_text.set_selection_end(4UL);
-
CompositionText composition_text;
- ime_->ExtractCompositionText(
- chromeos_composition_text, kCursorPos, &composition_text);
- EXPECT_EQ(kSampleText, composition_text.text);
- EXPECT_EQ(kCursorPos, composition_text.selection.start());
- EXPECT_EQ(kCursorPos, composition_text.selection.end());
- ASSERT_EQ(1UL, composition_text.underlines.size());
- EXPECT_EQ(GetOffsetInUTF16(kSampleText,
- chromeos_composition_text.selection_start()),
- composition_text.underlines[0].start_offset);
- EXPECT_EQ(GetOffsetInUTF16(kSampleText,
- chromeos_composition_text.selection_end()),
- composition_text.underlines[0].end_offset);
- EXPECT_EQ(SK_ColorBLACK, composition_text.underlines[0].color);
- EXPECT_TRUE(composition_text.underlines[0].thick);
+ composition_text.text = kSampleText;
+ composition_text.selection.set_start(1UL);
+ composition_text.selection.set_end(4UL);
+
+ CompositionText composition_text2;
+ ime_->ExtractCompositionText(composition_text, kCursorPos,
+ &composition_text2);
+ EXPECT_EQ(kSampleText, composition_text2.text);
+ EXPECT_EQ(kCursorPos, composition_text2.selection.start());
+ EXPECT_EQ(kCursorPos, composition_text2.selection.end());
+ ASSERT_EQ(1UL, composition_text2.underlines.size());
+ EXPECT_EQ(GetOffsetInUTF16(kSampleText, composition_text.selection.start()),
+ composition_text2.underlines[0].start_offset);
+ EXPECT_EQ(GetOffsetInUTF16(kSampleText, composition_text.selection.end()),
+ composition_text2.underlines[0].end_offset);
+ EXPECT_EQ(SK_ColorBLACK, composition_text2.underlines[0].color);
+ EXPECT_TRUE(composition_text2.underlines[0].thick);
EXPECT_EQ(static_cast<SkColor>(SK_ColorTRANSPARENT),
- composition_text.underlines[0].background_color);
+ composition_text2.underlines[0].background_color);
}
TEST_F(InputMethodChromeOSTest,
@@ -697,33 +686,30 @@ TEST_F(InputMethodChromeOSTest,
const uint32 kCursorPos = 1UL;
// Set up chromeos composition text with one underline attribute.
- chromeos::CompositionText chromeos_composition_text;
- chromeos_composition_text.set_text(kSampleText);
- chromeos_composition_text.set_selection_start(kCursorPos);
- chromeos_composition_text.set_selection_end(4UL);
-
CompositionText composition_text;
- ime_->ExtractCompositionText(
- chromeos_composition_text, kCursorPos, &composition_text);
- EXPECT_EQ(kSampleText, composition_text.text);
+ composition_text.text = kSampleText;
+ composition_text.selection.set_start(kCursorPos);
+ composition_text.selection.set_end(4UL);
+
+ CompositionText composition_text2;
+ ime_->ExtractCompositionText(composition_text, kCursorPos,
+ &composition_text2);
+ EXPECT_EQ(kSampleText, composition_text2.text);
// If the cursor position is same as selection bounds, selection start
// position become opposit side of selection from cursor.
- EXPECT_EQ(GetOffsetInUTF16(kSampleText,
- chromeos_composition_text.selection_end()),
- composition_text.selection.start());
+ EXPECT_EQ(GetOffsetInUTF16(kSampleText, composition_text.selection.end()),
+ composition_text2.selection.start());
EXPECT_EQ(GetOffsetInUTF16(kSampleText, kCursorPos),
- composition_text.selection.end());
- ASSERT_EQ(1UL, composition_text.underlines.size());
- EXPECT_EQ(GetOffsetInUTF16(kSampleText,
- chromeos_composition_text.selection_start()),
- composition_text.underlines[0].start_offset);
- EXPECT_EQ(GetOffsetInUTF16(kSampleText,
- chromeos_composition_text.selection_end()),
- composition_text.underlines[0].end_offset);
- EXPECT_EQ(SK_ColorBLACK, composition_text.underlines[0].color);
- EXPECT_TRUE(composition_text.underlines[0].thick);
+ composition_text2.selection.end());
+ ASSERT_EQ(1UL, composition_text2.underlines.size());
+ EXPECT_EQ(GetOffsetInUTF16(kSampleText, composition_text.selection.start()),
+ composition_text2.underlines[0].start_offset);
+ EXPECT_EQ(GetOffsetInUTF16(kSampleText, composition_text.selection.end()),
+ composition_text2.underlines[0].end_offset);
+ EXPECT_EQ(SK_ColorBLACK, composition_text2.underlines[0].color);
+ EXPECT_TRUE(composition_text2.underlines[0].thick);
EXPECT_EQ(static_cast<SkColor>(SK_ColorTRANSPARENT),
- composition_text.underlines[0].background_color);
+ composition_text2.underlines[0].background_color);
}
TEST_F(InputMethodChromeOSTest,
@@ -731,33 +717,30 @@ TEST_F(InputMethodChromeOSTest,
const uint32 kCursorPos = 4UL;
// Set up chromeos composition text with one underline attribute.
- chromeos::CompositionText chromeos_composition_text;
- chromeos_composition_text.set_text(kSampleText);
- chromeos_composition_text.set_selection_start(1UL);
- chromeos_composition_text.set_selection_end(kCursorPos);
-
CompositionText composition_text;
- ime_->ExtractCompositionText(
- chromeos_composition_text, kCursorPos, &composition_text);
- EXPECT_EQ(kSampleText, composition_text.text);
+ composition_text.text = kSampleText;
+ composition_text.selection.set_start(1UL);
+ composition_text.selection.set_end(kCursorPos);
+
+ CompositionText composition_text2;
+ ime_->ExtractCompositionText(composition_text, kCursorPos,
+ &composition_text2);
+ EXPECT_EQ(kSampleText, composition_text2.text);
// If the cursor position is same as selection bounds, selection start
// position become opposit side of selection from cursor.
- EXPECT_EQ(GetOffsetInUTF16(kSampleText,
- chromeos_composition_text.selection_start()),
- composition_text.selection.start());
+ EXPECT_EQ(GetOffsetInUTF16(kSampleText, composition_text.selection.start()),
+ composition_text2.selection.start());
EXPECT_EQ(GetOffsetInUTF16(kSampleText, kCursorPos),
- composition_text.selection.end());
- ASSERT_EQ(1UL, composition_text.underlines.size());
- EXPECT_EQ(GetOffsetInUTF16(kSampleText,
- chromeos_composition_text.selection_start()),
- composition_text.underlines[0].start_offset);
- EXPECT_EQ(GetOffsetInUTF16(kSampleText,
- chromeos_composition_text.selection_end()),
- composition_text.underlines[0].end_offset);
- EXPECT_EQ(SK_ColorBLACK, composition_text.underlines[0].color);
- EXPECT_TRUE(composition_text.underlines[0].thick);
+ composition_text2.selection.end());
+ ASSERT_EQ(1UL, composition_text2.underlines.size());
+ EXPECT_EQ(GetOffsetInUTF16(kSampleText, composition_text.selection.start()),
+ composition_text2.underlines[0].start_offset);
+ EXPECT_EQ(GetOffsetInUTF16(kSampleText, composition_text.selection.end()),
+ composition_text2.underlines[0].end_offset);
+ EXPECT_EQ(SK_ColorBLACK, composition_text2.underlines[0].color);
+ EXPECT_TRUE(composition_text2.underlines[0].thick);
EXPECT_EQ(static_cast<SkColor>(SK_ColorTRANSPARENT),
- composition_text.underlines[0].background_color);
+ composition_text2.underlines[0].background_color);
}
TEST_F(InputMethodChromeOSTest, SurroundingText_NoSelectionTest) {
@@ -947,17 +930,17 @@ TEST_F(InputMethodChromeOSKeyEventTest, MultiKeyEventDelayResponseTest) {
mock_ime_engine_handler_->process_key_event_call_count());
EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count());
- chromeos::CompositionText comp;
- comp.set_text(base::ASCIIToUTF16("B"));
+ CompositionText comp;
+ comp.text = base::ASCIIToUTF16("B");
(static_cast<IMEInputContextHandlerInterface*>(ime_.get()))
- ->UpdateCompositionText(comp, comp.text().length(), true);
+ ->UpdateCompositionText(comp, comp.text.length(), true);
EXPECT_EQ(0, composition_text_.text[0]);
// Do callback for first key event.
first_callback.Run(true);
- EXPECT_EQ(comp.text(), composition_text_.text);
+ EXPECT_EQ(comp.text, composition_text_.text);
// Check the results for first key event.
EXPECT_EQ(1, ime_->process_key_event_post_ime_call_count());
diff --git a/ui/base/ime/ui_base_ime.gyp b/ui/base/ime/ui_base_ime.gyp
index 7e2a66c..3b5b137 100644
--- a/ui/base/ime/ui_base_ime.gyp
+++ b/ui/base/ime/ui_base_ime.gyp
@@ -36,8 +36,6 @@
'chromeos/character_composer.h',
'chromeos/component_extension_ime_manager.cc',
'chromeos/component_extension_ime_manager.h',
- 'chromeos/composition_text_chromeos.cc',
- 'chromeos/composition_text_chromeos.h',
'chromeos/extension_ime_util.cc',
'chromeos/extension_ime_util.h',
'chromeos/fake_ime_keyboard.cc',
diff --git a/ui/base/ui_base_tests.gyp b/ui/base/ui_base_tests.gyp
index 5018384..2c2ec55 100644
--- a/ui/base/ui_base_tests.gyp
+++ b/ui/base/ui_base_tests.gyp
@@ -71,8 +71,8 @@
'cocoa/tracking_area_unittest.mm',
'dragdrop/os_exchange_data_provider_aurax11_unittest.cc',
'ime/candidate_window_unittest.cc',
+ 'ime/composition_text_unittest.cc',
'ime/chromeos/character_composer_unittest.cc',
- 'ime/chromeos/composition_text_chromeos_unittest.cc',
'ime/composition_text_util_pango_unittest.cc',
'ime/input_method_base_unittest.cc',
'ime/input_method_chromeos_unittest.cc',