summaryrefslogtreecommitdiffstats
path: root/chromeos
diff options
context:
space:
mode:
authornona@chromium.org <nona@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-29 13:51:48 +0000
committernona@chromium.org <nona@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-29 13:51:48 +0000
commit9e8fb49ae9149ec82f991cadd514a4c94942c6ba (patch)
tree7ab01aba11156febcd086c63e0d59274bfcccabd /chromeos
parent93e562d2d0f1b844f4564166ec46f6680a5bee8f (diff)
downloadchromium_src-9e8fb49ae9149ec82f991cadd514a4c94942c6ba.zip
chromium_src-9e8fb49ae9149ec82f991cadd514a4c94942c6ba.tar.gz
chromium_src-9e8fb49ae9149ec82f991cadd514a4c94942c6ba.tar.bz2
Introduce more InputMethodEngineIBusTest
Before switching to Scheme Compiler, I'd like to introduce tests to avoid regressions. BUG=235552 TEST=try bots. Review URL: https://chromiumcodereview.appspot.com/17837002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209304 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos')
-rw-r--r--chromeos/dbus/ibus/ibus_property.cc14
-rw-r--r--chromeos/dbus/ibus/ibus_property.h2
-rw-r--r--chromeos/dbus/ibus/ibus_text.cc9
-rw-r--r--chromeos/dbus/ibus/ibus_text.h2
-rw-r--r--chromeos/dbus/ibus/mock_ibus_engine_service.cc44
-rw-r--r--chromeos/dbus/ibus/mock_ibus_engine_service.h85
6 files changed, 156 insertions, 0 deletions
diff --git a/chromeos/dbus/ibus/ibus_property.cc b/chromeos/dbus/ibus/ibus_property.cc
index 56c0d76..a66207c8 100644
--- a/chromeos/dbus/ibus/ibus_property.cc
+++ b/chromeos/dbus/ibus/ibus_property.cc
@@ -178,4 +178,18 @@ IBusProperty::IBusProperty()
IBusProperty::~IBusProperty() {
}
+void IBusProperty::CopyFrom(const IBusProperty& obj) {
+ key_ = obj.key();
+ type_ = obj.type();
+ label_ = obj.label();
+ tooltip_ = obj.tooltip();
+ visible_ = obj.visible();
+ checked_ = obj.checked();
+ sub_properties_.resize(obj.sub_properties().size());
+ for (size_t i = 0; i < obj.sub_properties().size(); ++i) {
+ sub_properties_[i] = new IBusProperty();
+ sub_properties_[i]->CopyFrom(*obj.sub_properties()[i]);
+ }
+}
+
} // namespace chromeos
diff --git a/chromeos/dbus/ibus/ibus_property.h b/chromeos/dbus/ibus/ibus_property.h
index a36dcde..94848da 100644
--- a/chromeos/dbus/ibus/ibus_property.h
+++ b/chromeos/dbus/ibus/ibus_property.h
@@ -91,6 +91,8 @@ class CHROMEOS_EXPORT IBusProperty {
IBusProperty();
virtual ~IBusProperty();
+ void CopyFrom(const IBusProperty& obj);
+
// The identity for the IBusProperty.
std::string key() const { return key_; }
void set_key(const std::string& key) { key_ = key; }
diff --git a/chromeos/dbus/ibus/ibus_text.cc b/chromeos/dbus/ibus/ibus_text.cc
index aa39377..dfc5ab4 100644
--- a/chromeos/dbus/ibus/ibus_text.cc
+++ b/chromeos/dbus/ibus/ibus_text.cc
@@ -227,4 +227,13 @@ IBusText::IBusText()
IBusText::~IBusText() {
}
+void IBusText::CopyFrom(const IBusText& obj) {
+ text_ = obj.text();
+ annotation_ = obj.annotation();
+ description_title_ = obj.description_title();
+ description_body_ = obj.description_body();
+ underline_attributes_ = obj.underline_attributes();
+ selection_attributes_ = obj.selection_attributes();
+}
+
} // namespace chromeos
diff --git a/chromeos/dbus/ibus/ibus_text.h b/chromeos/dbus/ibus/ibus_text.h
index b1b6272..1ed7ef1 100644
--- a/chromeos/dbus/ibus/ibus_text.h
+++ b/chromeos/dbus/ibus/ibus_text.h
@@ -172,6 +172,8 @@ class CHROMEOS_EXPORT IBusText {
return &selection_attributes_;
}
+ void CopyFrom(const IBusText& obj);
+
private:
std::string text_;
std::string annotation_;
diff --git a/chromeos/dbus/ibus/mock_ibus_engine_service.cc b/chromeos/dbus/ibus/mock_ibus_engine_service.cc
index d6655ff..6b51565 100644
--- a/chromeos/dbus/ibus/mock_ibus_engine_service.cc
+++ b/chromeos/dbus/ibus/mock_ibus_engine_service.cc
@@ -4,6 +4,8 @@
#include "chromeos/dbus/ibus/mock_ibus_engine_service.h"
+#include "chromeos/dbus/ibus/ibus_text.h"
+
namespace chromeos {
MockIBusEngineService::MockIBusEngineService()
@@ -14,6 +16,13 @@ MockIBusEngineService::MockIBusEngineService()
update_property_call_count_(0),
forward_key_event_call_count_(0),
commit_text_call_count_(0),
+ delete_surrounding_text_call_count_(0),
+ last_update_preedit_arg_(new UpdatePreeditArg()),
+ last_update_aux_text_arg_(new UpdateAuxiliaryTextArg()),
+ last_update_lookup_table_arg_(new UpdateLookupTableArg()),
+ last_registered_properties_(new IBusPropertyList()),
+ last_updated_property_(new IBusProperty()),
+ last_delete_surrounding_text_arg_(new DeleteSurroundingTextArg()),
current_engine_(NULL) {
}
@@ -31,6 +40,11 @@ void MockIBusEngineService::UnsetEngine(IBusEngineHandlerInterface* handler) {
void MockIBusEngineService::RegisterProperties(
const IBusPropertyList& property_list) {
++register_properties_call_count_;
+ last_registered_properties_->resize(property_list.size());
+ for (size_t i = 0; i < property_list.size(); ++i) {
+ (*last_registered_properties_)[i] = new IBusProperty();
+ (*last_registered_properties_)[i]->CopyFrom(*property_list[i]);
+ }
}
void MockIBusEngineService::UpdatePreedit(const IBusText& ibus_text,
@@ -38,21 +52,29 @@ void MockIBusEngineService::UpdatePreedit(const IBusText& ibus_text,
bool is_visible,
IBusEnginePreeditFocusOutMode mode) {
++update_preedit_call_count_;
+ last_update_preedit_arg_->ibus_text.CopyFrom(ibus_text);
+ last_update_preedit_arg_->cursor_pos = cursor_pos;
+ last_update_preedit_arg_->is_visible = is_visible;
}
void MockIBusEngineService::UpdateAuxiliaryText(const IBusText& ibus_text,
bool is_visible) {
++update_auxiliary_text_call_count_;
+ last_update_aux_text_arg_->ibus_text.CopyFrom(ibus_text);
+ last_update_aux_text_arg_->is_visible = is_visible;
}
void MockIBusEngineService::UpdateLookupTable(
const IBusLookupTable& lookup_table,
bool is_visible) {
++update_lookup_table_call_count_;
+ last_update_lookup_table_arg_->lookup_table.CopyFrom(lookup_table);
+ last_update_lookup_table_arg_->is_visible = is_visible;
}
void MockIBusEngineService::UpdateProperty(const IBusProperty& property) {
++update_property_call_count_;
+ last_updated_property_->CopyFrom(property);
}
void MockIBusEngineService::ForwardKeyEvent(uint32 keyval,
@@ -66,13 +88,35 @@ void MockIBusEngineService::RequireSurroundingText() {
void MockIBusEngineService::CommitText(const std::string& text) {
++commit_text_call_count_;
+ last_commit_text_ = text;
}
void MockIBusEngineService::DeleteSurroundingText(int32 offset,uint32 length) {
+ ++delete_surrounding_text_call_count_;
+ last_delete_surrounding_text_arg_->offset = offset;
+ last_delete_surrounding_text_arg_->length = length;
}
IBusEngineHandlerInterface* MockIBusEngineService::GetEngine() const {
return current_engine_;
}
+void MockIBusEngineService::Clear() {
+ register_properties_call_count_ = 0;
+ update_preedit_call_count_ = 0;
+ update_auxiliary_text_call_count_ = 0;
+ update_lookup_table_call_count_ = 0;
+ update_property_call_count_ = 0;
+ forward_key_event_call_count_ = 0;
+ commit_text_call_count_ = 0;
+ delete_surrounding_text_call_count_ = 0;
+ last_commit_text_.clear();
+ last_update_preedit_arg_.reset(new UpdatePreeditArg());
+ last_update_aux_text_arg_.reset(new UpdateAuxiliaryTextArg());
+ last_update_lookup_table_arg_.reset(new UpdateLookupTableArg());
+ last_registered_properties_.reset(new IBusPropertyList());
+ last_updated_property_.reset(new IBusProperty());
+ last_delete_surrounding_text_arg_.reset(new DeleteSurroundingTextArg());
+}
+
} // namespace chromeos
diff --git a/chromeos/dbus/ibus/mock_ibus_engine_service.h b/chromeos/dbus/ibus/mock_ibus_engine_service.h
index 511650e..128269d 100644
--- a/chromeos/dbus/ibus/mock_ibus_engine_service.h
+++ b/chromeos/dbus/ibus/mock_ibus_engine_service.h
@@ -8,10 +8,41 @@
#include <string>
#include "chromeos/dbus/ibus/ibus_engine_service.h"
+#include "chromeos/dbus/ibus/ibus_lookup_table.h"
+#include "chromeos/dbus/ibus/ibus_property.h"
+#include "chromeos/dbus/ibus/ibus_text.h"
+
namespace chromeos {
+class IBusText;
+
class MockIBusEngineService : public IBusEngineService {
public:
+
+ struct UpdatePreeditArg {
+ UpdatePreeditArg() : is_visible(false) {}
+ IBusText ibus_text;
+ uint32 cursor_pos;
+ bool is_visible;
+ };
+
+ struct UpdateAuxiliaryTextArg {
+ UpdateAuxiliaryTextArg() : is_visible(false) {}
+ IBusText ibus_text;
+ bool is_visible;
+ };
+
+ struct UpdateLookupTableArg {
+ UpdateLookupTableArg() : is_visible(false) {}
+ IBusLookupTable lookup_table;
+ bool is_visible;
+ };
+
+ struct DeleteSurroundingTextArg {
+ int32 offset;
+ uint32 length;
+ };
+
MockIBusEngineService();
virtual ~MockIBusEngineService();
@@ -37,6 +68,51 @@ class MockIBusEngineService : public IBusEngineService {
IBusEngineHandlerInterface* GetEngine() const;
+ void Clear();
+
+ int commit_text_call_count() const { return commit_text_call_count_; }
+ const std::string& last_commit_text() const { return last_commit_text_; }
+
+ int update_preedit_call_count() const { return update_preedit_call_count_; }
+ const UpdatePreeditArg& last_update_preedit_arg() const {
+ return *last_update_preedit_arg_.get();
+ }
+
+ int update_auxiliary_text_call_count() const {
+ return update_auxiliary_text_call_count_;
+ }
+ const UpdateAuxiliaryTextArg& last_update_aux_text_arg() const {
+ return *last_update_aux_text_arg_.get();
+ }
+
+ int update_lookup_table_call_count() const {
+ return update_lookup_table_call_count_;
+ }
+ const UpdateLookupTableArg& last_update_lookup_table_arg() const {
+ return *last_update_lookup_table_arg_.get();
+ }
+
+ int register_properties_call_count() const {
+ return register_properties_call_count_;
+ }
+ const IBusPropertyList& last_registered_properties() const {
+ return *last_registered_properties_.get();
+ }
+
+ int update_property_call_count() const {
+ return update_property_call_count_;
+ }
+ const IBusProperty& last_updated_property() const {
+ return *last_updated_property_.get();
+ }
+
+ int delete_surrounding_text_call_count() const {
+ return delete_surrounding_text_call_count_;
+ }
+ const DeleteSurroundingTextArg& last_delete_surrounding_text_arg() const {
+ return *last_delete_surrounding_text_arg_.get();
+ }
+
private:
int register_properties_call_count_;
int update_preedit_call_count_;
@@ -45,6 +121,15 @@ class MockIBusEngineService : public IBusEngineService {
int update_property_call_count_;
int forward_key_event_call_count_;
int commit_text_call_count_;
+ int delete_surrounding_text_call_count_;
+
+ std::string last_commit_text_;
+ scoped_ptr<UpdatePreeditArg> last_update_preedit_arg_;
+ scoped_ptr<UpdateAuxiliaryTextArg> last_update_aux_text_arg_;
+ scoped_ptr<UpdateLookupTableArg> last_update_lookup_table_arg_;
+ scoped_ptr<IBusPropertyList> last_registered_properties_;
+ scoped_ptr<IBusProperty> last_updated_property_;
+ scoped_ptr<DeleteSurroundingTextArg> last_delete_surrounding_text_arg_;
IBusEngineHandlerInterface* current_engine_;