diff options
author | nona@chromium.org <nona@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-29 13:51:48 +0000 |
---|---|---|
committer | nona@chromium.org <nona@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-29 13:51:48 +0000 |
commit | 9e8fb49ae9149ec82f991cadd514a4c94942c6ba (patch) | |
tree | 7ab01aba11156febcd086c63e0d59274bfcccabd /chromeos | |
parent | 93e562d2d0f1b844f4564166ec46f6680a5bee8f (diff) | |
download | chromium_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.cc | 14 | ||||
-rw-r--r-- | chromeos/dbus/ibus/ibus_property.h | 2 | ||||
-rw-r--r-- | chromeos/dbus/ibus/ibus_text.cc | 9 | ||||
-rw-r--r-- | chromeos/dbus/ibus/ibus_text.h | 2 | ||||
-rw-r--r-- | chromeos/dbus/ibus/mock_ibus_engine_service.cc | 44 | ||||
-rw-r--r-- | chromeos/dbus/ibus/mock_ibus_engine_service.h | 85 |
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_; |