Index: chromeos/dbus/ibus/ibus_engine_service_unittest.cc |
diff --git a/chromeos/dbus/ibus/ibus_engine_service_unittest.cc b/chromeos/dbus/ibus/ibus_engine_service_unittest.cc |
deleted file mode 100644 |
index f1a0077fc3ee30d47363080ac1ef6971afc1756b..0000000000000000000000000000000000000000 |
--- a/chromeos/dbus/ibus/ibus_engine_service_unittest.cc |
+++ /dev/null |
@@ -1,1126 +0,0 @@ |
-// Copyright (c) 2012 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 "chromeos/dbus/ibus/ibus_engine_service.h" |
- |
-#include <map> |
-#include "base/bind.h" |
-#include "base/message_loop/message_loop.h" |
-#include "base/values.h" |
-#include "chromeos/dbus/ibus/ibus_constants.h" |
-#include "chromeos/dbus/ibus/ibus_lookup_table.h" |
-#include "chromeos/dbus/ibus/ibus_property.h" |
-#include "chromeos/dbus/ibus/ibus_text.h" |
-#include "chromeos/ime/ibus_bridge.h" |
-#include "dbus/message.h" |
-#include "dbus/mock_bus.h" |
-#include "dbus/mock_exported_object.h" |
-#include "dbus/object_path.h" |
-#include "dbus/values_util.h" |
-#include "testing/gmock/include/gmock/gmock.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-using testing::Invoke; |
-using testing::Return; |
-using testing::_; |
- |
-namespace chromeos { |
- |
-namespace { |
-const std::string kObjectPath = "/org/freedesktop/IBus/Engine/1"; |
- |
-class MockIBusEngineHandler : public IBusEngineHandlerInterface { |
- public: |
- MOCK_METHOD0(FocusIn, void()); |
- MOCK_METHOD0(FocusOut, void()); |
- MOCK_METHOD0(Enable, void()); |
- MOCK_METHOD0(Disable, void()); |
- MOCK_METHOD2(PropertyActivate, void(const std::string& property_name, |
- ibus::IBusPropertyState property_state)); |
- MOCK_METHOD1(PropertyShow, void(const std::string& property_name)); |
- MOCK_METHOD1(PropertyHide, void(const std::string& property_name)); |
- MOCK_METHOD1(SetCapability, void(IBusCapability capability)); |
- MOCK_METHOD0(Reset, void()); |
- MOCK_METHOD4(ProcessKeyEvent, void( |
- uint32 keysym, |
- uint32 keycode, |
- uint32 state, |
- const KeyEventDoneCallback& callback)); |
- MOCK_METHOD3(CandidateClicked, void(uint32 index, |
- ibus::IBusMouseButton button, |
- uint32 state)); |
- MOCK_METHOD3(SetSurroundingText, void(const std::string& text, |
- uint32 cursor_pos, |
- uint32 anchor_pos)); |
-}; |
- |
-class MockResponseSender { |
- public: |
- // GMock doesn't support mocking methods which take scoped_ptr<>. |
- MOCK_METHOD1(MockRun, void(dbus::Response* reponse)); |
- void Run(scoped_ptr<dbus::Response> response) { |
- MockRun(response.get()); |
- } |
-}; |
- |
-// Used for method call empty response evaluation. |
-class EmptyResponseExpectation { |
- public: |
- explicit EmptyResponseExpectation(const uint32 serial_no) |
- : serial_no_(serial_no) {} |
- |
- // Evaluates the given |response| has no argument. |
- void Evaluate(dbus::Response* response) { |
- EXPECT_EQ(serial_no_, response->GetReplySerial()); |
- dbus::MessageReader reader(response); |
- EXPECT_FALSE(reader.HasMoreData()); |
- } |
- |
- private: |
- const uint32 serial_no_; |
- |
- DISALLOW_COPY_AND_ASSIGN(EmptyResponseExpectation); |
-}; |
- |
-// Used for method call a boolean response evaluation. |
-class BoolResponseExpectation { |
- public: |
- explicit BoolResponseExpectation(uint32 serial_no, bool result) |
- : serial_no_(serial_no), |
- result_(result) {} |
- |
- // Evaluates the given |response| has only one boolean and which is equals to |
- // |result_| which is given in ctor. |
- void Evaluate(dbus::Response* response) { |
- EXPECT_EQ(serial_no_, response->GetReplySerial()); |
- dbus::MessageReader reader(response); |
- bool result = false; |
- EXPECT_TRUE(reader.PopBool(&result)); |
- EXPECT_EQ(result_, result); |
- EXPECT_FALSE(reader.HasMoreData()); |
- } |
- |
- private: |
- uint32 serial_no_; |
- bool result_; |
- |
- DISALLOW_COPY_AND_ASSIGN(BoolResponseExpectation); |
-}; |
- |
-// Used for RegisterProperties signal message evaluation. |
-class RegisterPropertiesExpectation { |
- public: |
- explicit RegisterPropertiesExpectation( |
- const IBusPropertyList& property_list) |
- : property_list_(property_list) {} |
- |
- // Evaluates the given |signal| is a valid message. |
- void Evaluate(dbus::Signal* signal) { |
- IBusPropertyList property_list; |
- |
- // Read a signal argument. |
- dbus::MessageReader reader(signal); |
- EXPECT_TRUE(PopIBusPropertyList(&reader, &property_list)); |
- EXPECT_FALSE(reader.HasMoreData()); |
- |
- // Check an argument. |
- EXPECT_EQ(property_list_.size(), property_list.size()); |
- for (size_t i = 0; i < property_list_.size(); ++i) { |
- EXPECT_EQ(property_list_[i]->key(), property_list[i]->key()); |
- EXPECT_EQ(property_list_[i]->type(), property_list[i]->type()); |
- EXPECT_EQ(property_list_[i]->label(), property_list[i]->label()); |
- EXPECT_EQ(property_list_[i]->tooltip(), property_list[i]->tooltip()); |
- EXPECT_EQ(property_list_[i]->visible(), property_list[i]->visible()); |
- EXPECT_EQ(property_list_[i]->checked(), property_list[i]->checked()); |
- } |
- } |
- |
- private: |
- const IBusPropertyList& property_list_; |
- |
- DISALLOW_COPY_AND_ASSIGN(RegisterPropertiesExpectation); |
-}; |
- |
-// Used for mocking ProcessKeyEventHandler. |
-class ProcessKeyEventHandler { |
- public: |
- explicit ProcessKeyEventHandler(bool expected_value) |
- : expected_value_(expected_value) { |
- } |
- |
- void ProcessKeyEvent( |
- uint32 keysym, |
- uint32 keycode, |
- uint32 state, |
- const IBusEngineHandlerInterface::KeyEventDoneCallback& callback) { |
- callback.Run(expected_value_); |
- } |
- |
- private: |
- bool expected_value_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ProcessKeyEventHandler); |
-}; |
- |
-// Used for mocking asynchronous ProcessKeyEventHandler. |
-class DelayProcessKeyEventHandler { |
- public: |
- DelayProcessKeyEventHandler(bool expected_value, |
- base::MessageLoop* message_loop) |
- : expected_value_(expected_value), |
- message_loop_(message_loop) { |
- } |
- |
- void ProcessKeyEvent( |
- uint32 keysym, |
- uint32 keycode, |
- uint32 state, |
- const IBusEngineHandlerInterface::KeyEventDoneCallback& callback) { |
- message_loop_->PostTask(FROM_HERE, base::Bind(callback, expected_value_)); |
- } |
- |
- private: |
- bool expected_value_; |
- base::MessageLoop* message_loop_; |
- |
- DISALLOW_COPY_AND_ASSIGN(DelayProcessKeyEventHandler); |
-}; |
- |
-// Used for UpdatePreedit signal message evaluation. |
-class UpdatePreeditExpectation { |
- public: |
- UpdatePreeditExpectation( |
- const IBusText& ibus_text, |
- uint32 cursor_pos, |
- bool is_visible, |
- IBusEngineService::IBusEnginePreeditFocusOutMode mode) |
- : ibus_text_(ibus_text), |
- cursor_pos_(cursor_pos), |
- is_visible_(is_visible), |
- mode_(mode) {} |
- |
- // Evaluates the given |signal| is a valid message. |
- void Evaluate(dbus::Signal* signal) { |
- IBusText ibus_text; |
- uint32 cursor_pos = 0; |
- bool is_visible = false; |
- uint32 preedit_mode = 0; |
- |
- // Read signal arguments. |
- dbus::MessageReader reader(signal); |
- EXPECT_TRUE(PopIBusText(&reader, &ibus_text)); |
- EXPECT_TRUE(reader.PopUint32(&cursor_pos)); |
- EXPECT_TRUE(reader.PopBool(&is_visible)); |
- EXPECT_TRUE(reader.PopUint32(&preedit_mode)); |
- EXPECT_FALSE(reader.HasMoreData()); |
- |
- // Check arguments. |
- EXPECT_EQ(ibus_text_.text(), ibus_text.text()); |
- EXPECT_EQ(cursor_pos_, cursor_pos); |
- EXPECT_EQ(is_visible_, is_visible); |
- EXPECT_EQ(mode_, |
- static_cast<IBusEngineService::IBusEnginePreeditFocusOutMode>( |
- preedit_mode)); |
- } |
- |
- private: |
- const IBusText& ibus_text_; |
- uint32 cursor_pos_; |
- bool is_visible_; |
- IBusEngineService::IBusEnginePreeditFocusOutMode mode_; |
- |
- DISALLOW_COPY_AND_ASSIGN(UpdatePreeditExpectation); |
-}; |
- |
-// Used for UpdateAuxiliaryText signal message evaluation. |
-class UpdateAuxiliaryTextExpectation { |
- public: |
- UpdateAuxiliaryTextExpectation(const IBusText& ibus_text, |
- bool is_visible) |
- : ibus_text_(ibus_text), is_visible_(is_visible) {} |
- |
- // Evaluates the given |signal| is a valid message. |
- void Evaluate(dbus::Signal* signal) { |
- IBusText ibus_text; |
- bool is_visible = false; |
- |
- // Read signal arguments. |
- dbus::MessageReader reader(signal); |
- EXPECT_TRUE(PopIBusText(&reader, &ibus_text)); |
- EXPECT_TRUE(reader.PopBool(&is_visible)); |
- EXPECT_FALSE(reader.HasMoreData()); |
- |
- // Check arguments. |
- EXPECT_EQ(ibus_text_.text(), ibus_text.text()); |
- EXPECT_EQ(is_visible_, is_visible); |
- } |
- |
- private: |
- const IBusText& ibus_text_; |
- bool is_visible_; |
- |
- DISALLOW_COPY_AND_ASSIGN(UpdateAuxiliaryTextExpectation); |
-}; |
- |
-// Used for UpdateLookupTable signal message evaluation. |
-class UpdateLookupTableExpectation { |
- public: |
- UpdateLookupTableExpectation(const IBusLookupTable& lookup_table, |
- bool is_visible) |
- : lookup_table_(lookup_table), is_visible_(is_visible) {} |
- |
- // Evaluates the given |signal| is a valid message. |
- void Evaluate(dbus::Signal* signal) { |
- IBusLookupTable lookup_table; |
- bool is_visible = false; |
- |
- // Read signal arguments. |
- dbus::MessageReader reader(signal); |
- EXPECT_TRUE(PopIBusLookupTable(&reader, &lookup_table)); |
- EXPECT_TRUE(reader.PopBool(&is_visible)); |
- EXPECT_FALSE(reader.HasMoreData()); |
- |
- // Check arguments. |
- EXPECT_EQ(lookup_table_.page_size(), lookup_table.page_size()); |
- EXPECT_EQ(lookup_table_.cursor_position(), lookup_table.cursor_position()); |
- EXPECT_EQ(lookup_table_.is_cursor_visible(), |
- lookup_table.is_cursor_visible()); |
- EXPECT_EQ(is_visible_, is_visible); |
- } |
- |
- private: |
- const IBusLookupTable& lookup_table_; |
- bool is_visible_; |
- |
- DISALLOW_COPY_AND_ASSIGN(UpdateLookupTableExpectation); |
-}; |
- |
-// Used for UpdateProperty signal message evaluation. |
-class UpdatePropertyExpectation { |
- public: |
- explicit UpdatePropertyExpectation(const IBusProperty& property) |
- : property_(property) {} |
- |
- // Evaluates the given |signal| is a valid message. |
- void Evaluate(dbus::Signal* signal) { |
- IBusProperty property; |
- |
- // Read a signal argument. |
- dbus::MessageReader reader(signal); |
- EXPECT_TRUE(PopIBusProperty(&reader, &property)); |
- EXPECT_FALSE(reader.HasMoreData()); |
- |
- // Check the argument. |
- EXPECT_EQ(property_.key(), property.key()); |
- EXPECT_EQ(property_.type(), property.type()); |
- EXPECT_EQ(property_.label(), property.label()); |
- EXPECT_EQ(property_.tooltip(), property.tooltip()); |
- EXPECT_EQ(property_.visible(), property.visible()); |
- EXPECT_EQ(property_.checked(), property.checked()); |
- } |
- |
- private: |
- const IBusProperty& property_; |
- |
- DISALLOW_COPY_AND_ASSIGN(UpdatePropertyExpectation); |
-}; |
- |
-// Used for ForwardKeyEvent signal message evaluation. |
-class ForwardKeyEventExpectation { |
- public: |
- ForwardKeyEventExpectation(uint32 keyval, uint32 keycode, uint32 state) |
- : keyval_(keyval), |
- keycode_(keycode), |
- state_(state) {} |
- |
- // Evaluates the given |signal| is a valid message. |
- void Evaluate(dbus::Signal* signal) { |
- uint32 keyval = 0; |
- uint32 keycode = 0; |
- uint32 state = 0; |
- |
- // Read signal arguments. |
- dbus::MessageReader reader(signal); |
- EXPECT_TRUE(reader.PopUint32(&keyval)); |
- EXPECT_TRUE(reader.PopUint32(&keycode)); |
- EXPECT_TRUE(reader.PopUint32(&state)); |
- EXPECT_FALSE(reader.HasMoreData()); |
- |
- // Check arguments. |
- EXPECT_EQ(keyval_, keyval); |
- EXPECT_EQ(keycode_, keycode); |
- EXPECT_EQ(state_, state); |
- } |
- |
- private: |
- uint32 keyval_; |
- uint32 keycode_; |
- uint32 state_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ForwardKeyEventExpectation); |
-}; |
- |
-// Used for RequireSurroundingText signal message evaluation. |
-class RequireSurroundingTextExpectation { |
- public: |
- RequireSurroundingTextExpectation() {} |
- |
- // Evaluates the given |signal| is a valid message. |
- void Evaluate(dbus::Signal* signal) { |
- dbus::MessageReader reader(signal); |
- EXPECT_FALSE(reader.HasMoreData()); |
- } |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(RequireSurroundingTextExpectation); |
-}; |
- |
-} // namespace |
- |
-class IBusEngineServiceTest : public testing::Test { |
- public: |
- IBusEngineServiceTest() {} |
- |
- virtual void SetUp() OVERRIDE { |
- // Create a mock bus. |
- dbus::Bus::Options options; |
- options.bus_type = dbus::Bus::SYSTEM; |
- mock_bus_ = new dbus::MockBus(options); |
- |
- // Create a mock exported object. |
- mock_exported_object_ = new dbus::MockExportedObject( |
- mock_bus_.get(), |
- dbus::ObjectPath(kObjectPath)); |
- |
- EXPECT_CALL(*mock_bus_.get(), |
- GetExportedObject(dbus::ObjectPath(kObjectPath))) |
- .WillOnce(Return(mock_exported_object_.get())); |
- |
- EXPECT_CALL(*mock_exported_object_.get(), |
- ExportMethod(ibus::engine::kServiceInterface, |
- ibus::engine::kFocusInMethod, |
- _, |
- _)) |
- .WillRepeatedly(Invoke(this, &IBusEngineServiceTest::OnMethodExported)); |
- |
- EXPECT_CALL(*mock_exported_object_.get(), |
- ExportMethod(ibus::engine::kServiceInterface, |
- ibus::engine::kFocusOutMethod, |
- _, |
- _)) |
- .WillRepeatedly(Invoke(this, &IBusEngineServiceTest::OnMethodExported)); |
- |
- EXPECT_CALL( |
- *mock_exported_object_.get(), |
- ExportMethod( |
- ibus::engine::kServiceInterface, ibus::engine::kEnableMethod, _, _)) |
- .WillRepeatedly(Invoke(this, &IBusEngineServiceTest::OnMethodExported)); |
- |
- EXPECT_CALL(*mock_exported_object_.get(), |
- ExportMethod(ibus::engine::kServiceInterface, |
- ibus::engine::kDisableMethod, |
- _, |
- _)) |
- .WillRepeatedly(Invoke(this, &IBusEngineServiceTest::OnMethodExported)); |
- |
- EXPECT_CALL(*mock_exported_object_.get(), |
- ExportMethod(ibus::engine::kServiceInterface, |
- ibus::engine::kPropertyActivateMethod, |
- _, |
- _)) |
- .WillRepeatedly(Invoke(this, &IBusEngineServiceTest::OnMethodExported)); |
- |
- EXPECT_CALL(*mock_exported_object_.get(), |
- ExportMethod(ibus::engine::kServiceInterface, |
- ibus::engine::kPropertyShowMethod, |
- _, |
- _)) |
- .WillRepeatedly(Invoke(this, &IBusEngineServiceTest::OnMethodExported)); |
- |
- EXPECT_CALL(*mock_exported_object_.get(), |
- ExportMethod(ibus::engine::kServiceInterface, |
- ibus::engine::kPropertyHideMethod, |
- _, |
- _)) |
- .WillRepeatedly(Invoke(this, &IBusEngineServiceTest::OnMethodExported)); |
- |
- EXPECT_CALL(*mock_exported_object_.get(), |
- ExportMethod(ibus::engine::kServiceInterface, |
- ibus::engine::kSetCapabilityMethod, |
- _, |
- _)) |
- .WillRepeatedly(Invoke(this, &IBusEngineServiceTest::OnMethodExported)); |
- |
- EXPECT_CALL( |
- *mock_exported_object_.get(), |
- ExportMethod( |
- ibus::engine::kServiceInterface, ibus::engine::kResetMethod, _, _)) |
- .WillRepeatedly(Invoke(this, &IBusEngineServiceTest::OnMethodExported)); |
- |
- EXPECT_CALL(*mock_exported_object_.get(), |
- ExportMethod(ibus::engine::kServiceInterface, |
- ibus::engine::kProcessKeyEventMethod, |
- _, |
- _)) |
- .WillRepeatedly(Invoke(this, &IBusEngineServiceTest::OnMethodExported)); |
- |
- EXPECT_CALL(*mock_exported_object_.get(), |
- ExportMethod(ibus::engine::kServiceInterface, |
- ibus::engine::kCandidateClickedMethod, |
- _, |
- _)) |
- .WillRepeatedly(Invoke(this, &IBusEngineServiceTest::OnMethodExported)); |
- |
- EXPECT_CALL(*mock_exported_object_.get(), |
- ExportMethod(ibus::engine::kServiceInterface, |
- ibus::engine::kSetSurroundingTextMethod, |
- _, |
- _)) |
- .WillRepeatedly(Invoke(this, &IBusEngineServiceTest::OnMethodExported)); |
- |
- // Suppress uninteresting mock function call warning. |
- EXPECT_CALL(*mock_bus_.get(), |
- AssertOnOriginThread()) |
- .WillRepeatedly(Return()); |
- |
- // Create a service |
- service_.reset(IBusEngineService::Create( |
- REAL_DBUS_CLIENT_IMPLEMENTATION, |
- mock_bus_.get(), |
- dbus::ObjectPath(kObjectPath))); |
- |
- // Set engine handler. |
- engine_handler_.reset(new MockIBusEngineHandler()); |
- service_->SetEngine(engine_handler_.get()); |
- } |
- |
- protected: |
- // The service to be tested. |
- scoped_ptr<IBusEngineService> service_; |
- // The mock engine handler. Do not free, this is owned by IBusEngineService. |
- scoped_ptr<MockIBusEngineHandler> engine_handler_; |
- // The mock bus. |
- scoped_refptr<dbus::MockBus> mock_bus_; |
- // The mock exported object. |
- scoped_refptr<dbus::MockExportedObject> mock_exported_object_; |
- // A message loop to emulate asynchronous behavior. |
- base::MessageLoop message_loop_; |
- // The map from method call to method call handler. |
- std::map<std::string, dbus::ExportedObject::MethodCallCallback> |
- method_callback_map_; |
- |
- private: |
- // Used to implement the mock method call. |
- void OnMethodExported( |
- const std::string& interface_name, |
- const std::string& method_name, |
- const dbus::ExportedObject::MethodCallCallback& method_callback, |
- const dbus::ExportedObject::OnExportedCallback& on_exported_callback) { |
- method_callback_map_[method_name] = method_callback; |
- const bool success = true; |
- message_loop_.PostTask(FROM_HERE, base::Bind(on_exported_callback, |
- interface_name, |
- method_name, |
- success)); |
- } |
-}; |
- |
-TEST_F(IBusEngineServiceTest, FocusInTest) { |
- // Set expectations. |
- const uint32 kSerialNo = 1; |
- EXPECT_CALL(*engine_handler_, FocusIn()); |
- MockResponseSender response_sender; |
- EmptyResponseExpectation response_expectation(kSerialNo); |
- EXPECT_CALL(response_sender, MockRun(_)) |
- .WillOnce(Invoke(&response_expectation, |
- &EmptyResponseExpectation::Evaluate)); |
- |
- // Create method call; |
- dbus::MethodCall method_call(ibus::engine::kServiceInterface, |
- ibus::engine::kFocusInMethod); |
- method_call.SetSerial(kSerialNo); |
- |
- // Call exported function. |
- EXPECT_NE(method_callback_map_.find(ibus::engine::kFocusInMethod), |
- method_callback_map_.end()); |
- method_callback_map_[ibus::engine::kFocusInMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
- |
- // Call exported function without engine. |
- service_->UnsetEngine(engine_handler_.get()); |
- EXPECT_CALL(*engine_handler_, FocusIn()).Times(0); |
- EXPECT_CALL(response_sender, MockRun(_)).Times(0); |
- method_callback_map_[ibus::engine::kFocusInMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
-} |
- |
-TEST_F(IBusEngineServiceTest, FocusOutTest) { |
- // Set expectations. |
- const uint32 kSerialNo = 1; |
- EXPECT_CALL(*engine_handler_, FocusOut()); |
- MockResponseSender response_sender; |
- EmptyResponseExpectation response_expectation(kSerialNo); |
- EXPECT_CALL(response_sender, MockRun(_)) |
- .WillOnce(Invoke(&response_expectation, |
- &EmptyResponseExpectation::Evaluate)); |
- |
- // Create method call; |
- dbus::MethodCall method_call(ibus::engine::kServiceInterface, |
- ibus::engine::kFocusOutMethod); |
- method_call.SetSerial(kSerialNo); |
- |
- // Call exported function. |
- EXPECT_NE(method_callback_map_.find(ibus::engine::kFocusOutMethod), |
- method_callback_map_.end()); |
- method_callback_map_[ibus::engine::kFocusOutMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
- |
- // Call exported function without engine. |
- service_->UnsetEngine(engine_handler_.get()); |
- EXPECT_CALL(*engine_handler_, FocusOut()).Times(0); |
- EXPECT_CALL(response_sender, MockRun(_)).Times(0); |
- method_callback_map_[ibus::engine::kFocusOutMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
-} |
- |
-TEST_F(IBusEngineServiceTest, EnableTest) { |
- // Set expectations. |
- const uint32 kSerialNo = 1; |
- EXPECT_CALL(*engine_handler_, Enable()); |
- MockResponseSender response_sender; |
- EmptyResponseExpectation response_expectation(kSerialNo); |
- EXPECT_CALL(response_sender, MockRun(_)) |
- .WillOnce(Invoke(&response_expectation, |
- &EmptyResponseExpectation::Evaluate)); |
- |
- // Create method call; |
- dbus::MethodCall method_call(ibus::engine::kServiceInterface, |
- ibus::engine::kEnableMethod); |
- method_call.SetSerial(kSerialNo); |
- |
- // Call exported function. |
- EXPECT_NE(method_callback_map_.find(ibus::engine::kEnableMethod), |
- method_callback_map_.end()); |
- method_callback_map_[ibus::engine::kEnableMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
- |
- // Call exported function without engine. |
- service_->UnsetEngine(engine_handler_.get()); |
- EXPECT_CALL(*engine_handler_, Enable()).Times(0); |
- EXPECT_CALL(response_sender, MockRun(_)).Times(0); |
- method_callback_map_[ibus::engine::kEnableMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
-} |
- |
-TEST_F(IBusEngineServiceTest, DisableTest) { |
- // Set expectations. |
- const uint32 kSerialNo = 1; |
- EXPECT_CALL(*engine_handler_, Disable()); |
- MockResponseSender response_sender; |
- EmptyResponseExpectation response_expectation(kSerialNo); |
- EXPECT_CALL(response_sender, MockRun(_)) |
- .WillOnce(Invoke(&response_expectation, |
- &EmptyResponseExpectation::Evaluate)); |
- |
- // Create method call; |
- dbus::MethodCall method_call(ibus::engine::kServiceInterface, |
- ibus::engine::kDisableMethod); |
- method_call.SetSerial(kSerialNo); |
- |
- // Call exported function. |
- EXPECT_NE(method_callback_map_.find(ibus::engine::kDisableMethod), |
- method_callback_map_.end()); |
- method_callback_map_[ibus::engine::kDisableMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
- |
- // Call exported function without engine. |
- service_->UnsetEngine(engine_handler_.get()); |
- EXPECT_CALL(*engine_handler_, Disable()).Times(0); |
- EXPECT_CALL(response_sender, MockRun(_)).Times(0); |
- method_callback_map_[ibus::engine::kDisableMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
-} |
- |
-TEST_F(IBusEngineServiceTest, PropertyActivateTest) { |
- // Set expectations. |
- const uint32 kSerialNo = 1; |
- const std::string kPropertyName = "Property Name"; |
- const ibus::IBusPropertyState kIBusPropertyState = |
- ibus::IBUS_PROPERTY_STATE_UNCHECKED; |
- EXPECT_CALL(*engine_handler_, PropertyActivate(kPropertyName, |
- kIBusPropertyState)); |
- MockResponseSender response_sender; |
- EmptyResponseExpectation response_expectation(kSerialNo); |
- EXPECT_CALL(response_sender, MockRun(_)) |
- .WillOnce(Invoke(&response_expectation, |
- &EmptyResponseExpectation::Evaluate)); |
- |
- // Create method call; |
- dbus::MethodCall method_call(ibus::engine::kServiceInterface, |
- ibus::engine::kPropertyActivateMethod); |
- method_call.SetSerial(kSerialNo); |
- dbus::MessageWriter writer(&method_call); |
- writer.AppendString(kPropertyName); |
- writer.AppendUint32(static_cast<uint32>(kIBusPropertyState)); |
- |
- // Call exported function. |
- EXPECT_NE(method_callback_map_.find(ibus::engine::kPropertyActivateMethod), |
- method_callback_map_.end()); |
- method_callback_map_[ibus::engine::kPropertyActivateMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
- |
- // Call exported function without engine. |
- service_->UnsetEngine(engine_handler_.get()); |
- EXPECT_CALL(*engine_handler_, PropertyActivate(kPropertyName, |
- kIBusPropertyState)).Times(0); |
- EXPECT_CALL(response_sender, MockRun(_)).Times(0); |
- method_callback_map_[ibus::engine::kPropertyActivateMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
-} |
- |
-TEST_F(IBusEngineServiceTest, ResetTest) { |
- // Set expectations. |
- const uint32 kSerialNo = 1; |
- EXPECT_CALL(*engine_handler_, Reset()); |
- MockResponseSender response_sender; |
- EmptyResponseExpectation response_expectation(kSerialNo); |
- EXPECT_CALL(response_sender, MockRun(_)) |
- .WillOnce(Invoke(&response_expectation, |
- &EmptyResponseExpectation::Evaluate)); |
- |
- // Create method call; |
- dbus::MethodCall method_call(ibus::engine::kServiceInterface, |
- ibus::engine::kResetMethod); |
- method_call.SetSerial(kSerialNo); |
- |
- // Call exported function. |
- EXPECT_NE(method_callback_map_.find(ibus::engine::kResetMethod), |
- method_callback_map_.end()); |
- method_callback_map_[ibus::engine::kResetMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
- |
- // Call exported function without engine. |
- service_->UnsetEngine(engine_handler_.get()); |
- EXPECT_CALL(*engine_handler_, Reset()).Times(0); |
- EXPECT_CALL(response_sender, MockRun(_)).Times(0); |
- method_callback_map_[ibus::engine::kResetMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
-} |
- |
-TEST_F(IBusEngineServiceTest, PropertyShowTest) { |
- // Set expectations. |
- const uint32 kSerialNo = 1; |
- const std::string kPropertyName = "Property Name"; |
- EXPECT_CALL(*engine_handler_, PropertyShow(kPropertyName)); |
- MockResponseSender response_sender; |
- EmptyResponseExpectation response_expectation(kSerialNo); |
- EXPECT_CALL(response_sender, MockRun(_)) |
- .WillOnce(Invoke(&response_expectation, |
- &EmptyResponseExpectation::Evaluate)); |
- |
- // Create method call; |
- dbus::MethodCall method_call(ibus::engine::kServiceInterface, |
- ibus::engine::kPropertyShowMethod); |
- method_call.SetSerial(kSerialNo); |
- dbus::MessageWriter writer(&method_call); |
- writer.AppendString(kPropertyName); |
- |
- // Call exported function. |
- EXPECT_NE(method_callback_map_.find(ibus::engine::kPropertyShowMethod), |
- method_callback_map_.end()); |
- method_callback_map_[ibus::engine::kPropertyShowMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
- |
- // Call exported function without engine. |
- service_->UnsetEngine(engine_handler_.get()); |
- EXPECT_CALL(*engine_handler_, PropertyShow(kPropertyName)).Times(0); |
- EXPECT_CALL(response_sender, MockRun(_)).Times(0); |
- method_callback_map_[ibus::engine::kPropertyShowMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
-} |
- |
-TEST_F(IBusEngineServiceTest, PropertyHideTest) { |
- // Set expectations. |
- const uint32 kSerialNo = 1; |
- const std::string kPropertyName = "Property Name"; |
- EXPECT_CALL(*engine_handler_, PropertyHide(kPropertyName)); |
- MockResponseSender response_sender; |
- EmptyResponseExpectation response_expectation(kSerialNo); |
- EXPECT_CALL(response_sender, MockRun(_)) |
- .WillOnce(Invoke(&response_expectation, |
- &EmptyResponseExpectation::Evaluate)); |
- |
- // Create method call; |
- dbus::MethodCall method_call(ibus::engine::kServiceInterface, |
- ibus::engine::kPropertyHideMethod); |
- method_call.SetSerial(kSerialNo); |
- dbus::MessageWriter writer(&method_call); |
- writer.AppendString(kPropertyName); |
- |
- // Call exported function. |
- EXPECT_NE(method_callback_map_.find(ibus::engine::kPropertyHideMethod), |
- method_callback_map_.end()); |
- method_callback_map_[ibus::engine::kPropertyHideMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
- |
- // Call exported function without engine. |
- service_->UnsetEngine(engine_handler_.get()); |
- EXPECT_CALL(*engine_handler_, PropertyHide(kPropertyName)).Times(0); |
- EXPECT_CALL(response_sender, MockRun(_)).Times(0); |
- method_callback_map_[ibus::engine::kPropertyHideMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
-} |
- |
-TEST_F(IBusEngineServiceTest, SetCapabilityTest) { |
- // Set expectations. |
- const uint32 kSerialNo = 1; |
- const IBusEngineHandlerInterface::IBusCapability kIBusCapability = |
- IBusEngineHandlerInterface::IBUS_CAPABILITY_PREEDIT_TEXT; |
- EXPECT_CALL(*engine_handler_, SetCapability(kIBusCapability)); |
- MockResponseSender response_sender; |
- EmptyResponseExpectation response_expectation(kSerialNo); |
- EXPECT_CALL(response_sender, MockRun(_)) |
- .WillOnce(Invoke(&response_expectation, |
- &EmptyResponseExpectation::Evaluate)); |
- |
- // Create method call; |
- dbus::MethodCall method_call(ibus::engine::kServiceInterface, |
- ibus::engine::kSetCapabilityMethod); |
- method_call.SetSerial(kSerialNo); |
- dbus::MessageWriter writer(&method_call); |
- writer.AppendUint32(static_cast<uint32>(kIBusCapability)); |
- |
- // Call exported function. |
- EXPECT_NE(method_callback_map_.find(ibus::engine::kSetCapabilityMethod), |
- method_callback_map_.end()); |
- method_callback_map_[ibus::engine::kSetCapabilityMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
- |
- // Call exported function without engine. |
- service_->UnsetEngine(engine_handler_.get()); |
- EXPECT_CALL(*engine_handler_, SetCapability(kIBusCapability)).Times(0); |
- EXPECT_CALL(response_sender, MockRun(_)).Times(0); |
- method_callback_map_[ibus::engine::kSetCapabilityMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
-} |
- |
-TEST_F(IBusEngineServiceTest, ProcessKeyEventTest) { |
- // Set expectations. |
- const uint32 kSerialNo = 1; |
- const uint32 kKeySym = 0x64; |
- const uint32 kKeyCode = 0x20; |
- const uint32 kState = 0x00; |
- const bool kResult = true; |
- |
- ProcessKeyEventHandler handler(kResult); |
- EXPECT_CALL(*engine_handler_, ProcessKeyEvent(kKeySym, kKeyCode, kState, _)) |
- .WillOnce(Invoke(&handler, |
- &ProcessKeyEventHandler::ProcessKeyEvent)); |
- MockResponseSender response_sender; |
- BoolResponseExpectation response_expectation(kSerialNo, kResult); |
- EXPECT_CALL(response_sender, MockRun(_)) |
- .WillOnce(Invoke(&response_expectation, |
- &BoolResponseExpectation::Evaluate)); |
- |
- // Create method call; |
- dbus::MethodCall method_call(ibus::engine::kServiceInterface, |
- ibus::engine::kProcessKeyEventMethod); |
- method_call.SetSerial(kSerialNo); |
- dbus::MessageWriter writer(&method_call); |
- writer.AppendUint32(kKeySym); |
- writer.AppendUint32(kKeyCode); |
- writer.AppendUint32(kState); |
- |
- // Call exported function. |
- EXPECT_NE(method_callback_map_.find(ibus::engine::kProcessKeyEventMethod), |
- method_callback_map_.end()); |
- method_callback_map_[ibus::engine::kProcessKeyEventMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
- |
- // Call exported function without engine. |
- service_->UnsetEngine(engine_handler_.get()); |
- EXPECT_CALL(*engine_handler_, |
- ProcessKeyEvent(kKeySym, kKeyCode, kState, _)).Times(0); |
- EXPECT_CALL(response_sender, MockRun(_)).Times(0); |
- method_callback_map_[ibus::engine::kProcessKeyEventMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
-} |
- |
-TEST_F(IBusEngineServiceTest, DelayProcessKeyEventTest) { |
- // Set expectations. |
- const uint32 kSerialNo = 1; |
- const uint32 kKeySym = 0x64; |
- const uint32 kKeyCode = 0x20; |
- const uint32 kState = 0x00; |
- const bool kResult = true; |
- |
- DelayProcessKeyEventHandler handler(kResult, &message_loop_); |
- EXPECT_CALL(*engine_handler_, ProcessKeyEvent(kKeySym, kKeyCode, kState, _)) |
- .WillOnce(Invoke(&handler, |
- &DelayProcessKeyEventHandler::ProcessKeyEvent)); |
- MockResponseSender response_sender; |
- BoolResponseExpectation response_expectation(kSerialNo, kResult); |
- EXPECT_CALL(response_sender, MockRun(_)) |
- .WillOnce(Invoke(&response_expectation, |
- &BoolResponseExpectation::Evaluate)); |
- |
- // Create method call; |
- dbus::MethodCall method_call(ibus::engine::kServiceInterface, |
- ibus::engine::kProcessKeyEventMethod); |
- method_call.SetSerial(kSerialNo); |
- dbus::MessageWriter writer(&method_call); |
- writer.AppendUint32(kKeySym); |
- writer.AppendUint32(kKeyCode); |
- writer.AppendUint32(kState); |
- |
- // Call exported function. |
- EXPECT_NE(method_callback_map_.find(ibus::engine::kProcessKeyEventMethod), |
- method_callback_map_.end()); |
- method_callback_map_[ibus::engine::kProcessKeyEventMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
- |
- // Call KeyEventDone callback. |
- message_loop_.RunUntilIdle(); |
- |
- // Call exported function without engine. |
- service_->UnsetEngine(engine_handler_.get()); |
- EXPECT_CALL(*engine_handler_, |
- ProcessKeyEvent(kKeySym, kKeyCode, kState, _)).Times(0); |
- EXPECT_CALL(response_sender, MockRun(_)).Times(0); |
- method_callback_map_[ibus::engine::kProcessKeyEventMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
-} |
- |
-TEST_F(IBusEngineServiceTest, CandidateClickedTest) { |
- // Set expectations. |
- const uint32 kSerialNo = 1; |
- const uint32 kIndex = 4; |
- const ibus::IBusMouseButton kIBusMouseButton = ibus::IBUS_MOUSE_BUTTON_MIDDLE; |
- const uint32 kState = 3; |
- EXPECT_CALL(*engine_handler_, CandidateClicked(kIndex, kIBusMouseButton, |
- kState)); |
- MockResponseSender response_sender; |
- EmptyResponseExpectation response_expectation(kSerialNo); |
- EXPECT_CALL(response_sender, MockRun(_)) |
- .WillOnce(Invoke(&response_expectation, |
- &EmptyResponseExpectation::Evaluate)); |
- |
- // Create method call; |
- dbus::MethodCall method_call(ibus::engine::kServiceInterface, |
- ibus::engine::kCandidateClickedMethod); |
- method_call.SetSerial(kSerialNo); |
- dbus::MessageWriter writer(&method_call); |
- writer.AppendUint32(kIndex); |
- writer.AppendUint32(static_cast<uint32>(kIBusMouseButton)); |
- writer.AppendUint32(kState); |
- |
- // Call exported function. |
- EXPECT_NE(method_callback_map_.find(ibus::engine::kCandidateClickedMethod), |
- method_callback_map_.end()); |
- method_callback_map_[ibus::engine::kCandidateClickedMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
- |
- // Call exported function without engine. |
- service_->UnsetEngine(engine_handler_.get()); |
- EXPECT_CALL(*engine_handler_, CandidateClicked(kIndex, kIBusMouseButton, |
- kState)).Times(0); |
- EXPECT_CALL(response_sender, MockRun(_)).Times(0); |
- method_callback_map_[ibus::engine::kCandidateClickedMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
-} |
- |
-TEST_F(IBusEngineServiceTest, SetSurroundingTextTest) { |
- // Set expectations. |
- const uint32 kSerialNo = 1; |
- const std::string kText = "Sample Text"; |
- const uint32 kCursorPos = 3; |
- const uint32 kAnchorPos = 4; |
- EXPECT_CALL(*engine_handler_, SetSurroundingText(kText, kCursorPos, |
- kAnchorPos)); |
- MockResponseSender response_sender; |
- EmptyResponseExpectation response_expectation(kSerialNo); |
- EXPECT_CALL(response_sender, MockRun(_)) |
- .WillOnce(Invoke(&response_expectation, |
- &EmptyResponseExpectation::Evaluate)); |
- |
- // Create method call; |
- dbus::MethodCall method_call(ibus::engine::kServiceInterface, |
- ibus::engine::kSetSurroundingTextMethod); |
- method_call.SetSerial(kSerialNo); |
- dbus::MessageWriter writer(&method_call); |
- AppendStringAsIBusText(kText, &writer); |
- writer.AppendUint32(kCursorPos); |
- writer.AppendUint32(kAnchorPos); |
- |
- // Call exported function. |
- EXPECT_NE(method_callback_map_.find(ibus::engine::kSetSurroundingTextMethod), |
- method_callback_map_.end()); |
- method_callback_map_[ibus::engine::kSetSurroundingTextMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
- |
- // Call exported function without engine. |
- service_->UnsetEngine(engine_handler_.get()); |
- EXPECT_CALL(*engine_handler_, SetSurroundingText(kText, kCursorPos, |
- kAnchorPos)).Times(0); |
- EXPECT_CALL(response_sender, MockRun(_)).Times(0); |
- method_callback_map_[ibus::engine::kSetSurroundingTextMethod].Run( |
- &method_call, |
- base::Bind(&MockResponseSender::Run, |
- base::Unretained(&response_sender))); |
-} |
- |
-TEST_F(IBusEngineServiceTest, RegisterProperties) { |
- // Set expectations. |
- IBusPropertyList property_list; |
- property_list.push_back(new IBusProperty()); |
- property_list[0]->set_key("Sample Key"); |
- property_list[0]->set_type(IBusProperty::IBUS_PROPERTY_TYPE_MENU); |
- property_list[0]->set_label("Sample Label"); |
- property_list[0]->set_tooltip("Sample Tooltip"); |
- property_list[0]->set_visible(true); |
- property_list[0]->set_checked(true); |
- |
- RegisterPropertiesExpectation expectation(property_list); |
- EXPECT_CALL(*mock_exported_object_.get(), SendSignal(_)) |
- .WillOnce(Invoke(&expectation, &RegisterPropertiesExpectation::Evaluate)); |
- // Emit signal. |
- service_->RegisterProperties(property_list); |
-} |
- |
-TEST_F(IBusEngineServiceTest, UpdatePreeditTest) { |
- // Set expectations. |
- IBusText ibus_text; |
- ibus_text.set_text("Sample Text"); |
- const uint32 kCursorPos = 9; |
- const bool kIsVisible = false; |
- const IBusEngineService::IBusEnginePreeditFocusOutMode kPreeditMode = |
- IBusEngineService::IBUS_ENGINE_PREEEDIT_FOCUS_OUT_MODE_CLEAR; |
- UpdatePreeditExpectation expectation(ibus_text, kCursorPos, kIsVisible, |
- kPreeditMode); |
- EXPECT_CALL(*mock_exported_object_.get(), SendSignal(_)) |
- .WillOnce(Invoke(&expectation, &UpdatePreeditExpectation::Evaluate)); |
- |
- // Emit signal. |
- service_->UpdatePreedit(ibus_text, kCursorPos, kIsVisible, kPreeditMode); |
-} |
- |
-TEST_F(IBusEngineServiceTest, UpdateAuxiliaryText) { |
- IBusText ibus_text; |
- ibus_text.set_text("Sample Text"); |
- const bool kIsVisible = false; |
- UpdateAuxiliaryTextExpectation expectation(ibus_text, kIsVisible); |
- |
- EXPECT_CALL(*mock_exported_object_.get(), SendSignal(_)).WillOnce( |
- Invoke(&expectation, &UpdateAuxiliaryTextExpectation::Evaluate)); |
- |
- // Emit signal. |
- service_->UpdateAuxiliaryText(ibus_text, kIsVisible); |
-} |
- |
-TEST_F(IBusEngineServiceTest, UpdateLookupTableTest) { |
- IBusLookupTable lookup_table; |
- lookup_table.set_page_size(10); |
- lookup_table.set_cursor_position(2); |
- lookup_table.set_is_cursor_visible(false); |
- const bool kIsVisible = true; |
- |
- UpdateLookupTableExpectation expectation(lookup_table, kIsVisible); |
- EXPECT_CALL(*mock_exported_object_.get(), SendSignal(_)) |
- .WillOnce(Invoke(&expectation, &UpdateLookupTableExpectation::Evaluate)); |
- |
- // Emit signal. |
- service_->UpdateLookupTable(lookup_table, kIsVisible); |
-} |
- |
-TEST_F(IBusEngineServiceTest, UpdatePropertyTest) { |
- IBusProperty property; |
- property.set_key("Sample Key"); |
- property.set_type(IBusProperty::IBUS_PROPERTY_TYPE_MENU); |
- property.set_label("Sample Label"); |
- property.set_tooltip("Sample Tooltip"); |
- property.set_visible(true); |
- property.set_checked(true); |
- |
- UpdatePropertyExpectation expectation(property); |
- EXPECT_CALL(*mock_exported_object_.get(), SendSignal(_)) |
- .WillOnce(Invoke(&expectation, &UpdatePropertyExpectation::Evaluate)); |
- |
- // Emit signal. |
- service_->UpdateProperty(property); |
-} |
- |
-TEST_F(IBusEngineServiceTest, ForwardKeyEventTest) { |
- uint32 keyval = 0x20; |
- uint32 keycode = 0x64; |
- uint32 state = 0x00; |
- |
- ForwardKeyEventExpectation expectation(keyval, keycode, state); |
- |
- EXPECT_CALL(*mock_exported_object_.get(), SendSignal(_)) |
- .WillOnce(Invoke(&expectation, &ForwardKeyEventExpectation::Evaluate)); |
- |
- // Emit signal. |
- service_->ForwardKeyEvent(keyval, keycode, state); |
-} |
- |
-TEST_F(IBusEngineServiceTest, RequireSurroundingTextTest) { |
- RequireSurroundingTextExpectation expectation; |
- EXPECT_CALL(*mock_exported_object_.get(), SendSignal(_)).WillOnce( |
- Invoke(&expectation, &RequireSurroundingTextExpectation::Evaluate)); |
- |
- // Emit signal. |
- service_->RequireSurroundingText(); |
-} |
- |
-} // namespace chromeos |