| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chromeos/dbus/ibus/ibus_panel_service.h" | 5 #include "chromeos/dbus/ibus/ibus_panel_service.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| 11 #include "chromeos/dbus/ibus/ibus_constants.h" | 11 #include "chromeos/dbus/ibus/ibus_constants.h" |
| 12 #include "chromeos/dbus/ibus/ibus_input_context_client.h" |
| 12 #include "chromeos/dbus/ibus/ibus_lookup_table.h" | 13 #include "chromeos/dbus/ibus/ibus_lookup_table.h" |
| 13 #include "chromeos/dbus/ibus/ibus_property.h" | 14 #include "chromeos/dbus/ibus/ibus_property.h" |
| 14 #include "chromeos/dbus/ibus/ibus_text.h" | 15 #include "chromeos/dbus/ibus/ibus_text.h" |
| 15 #include "dbus/message.h" | 16 #include "dbus/message.h" |
| 16 #include "dbus/mock_bus.h" | 17 #include "dbus/mock_bus.h" |
| 17 #include "dbus/mock_exported_object.h" | 18 #include "dbus/mock_exported_object.h" |
| 18 #include "dbus/object_path.h" | 19 #include "dbus/object_path.h" |
| 19 #include "dbus/values_util.h" | 20 #include "dbus/values_util.h" |
| 20 #include "testing/gmock/include/gmock/gmock.h" | 21 #include "testing/gmock/include/gmock/gmock.h" |
| 21 #include "testing/gtest/include/gtest/gtest.h" | 22 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 15 matching lines...) Expand all Loading... |
| 37 MOCK_METHOD2(UpdateLookupTable, void(const ibus::IBusLookupTable& table, | 38 MOCK_METHOD2(UpdateLookupTable, void(const ibus::IBusLookupTable& table, |
| 38 bool visible)); | 39 bool visible)); |
| 39 MOCK_METHOD0(HideLookupTable, void()); | 40 MOCK_METHOD0(HideLookupTable, void()); |
| 40 MOCK_METHOD2(UpdateAuxiliaryText, void(const std::string& text, | 41 MOCK_METHOD2(UpdateAuxiliaryText, void(const std::string& text, |
| 41 bool visible)); | 42 bool visible)); |
| 42 MOCK_METHOD0(HideAuxiliaryText, void()); | 43 MOCK_METHOD0(HideAuxiliaryText, void()); |
| 43 MOCK_METHOD3(UpdatePreeditText, void(const std::string& text, | 44 MOCK_METHOD3(UpdatePreeditText, void(const std::string& text, |
| 44 uint32 cursor_pos, | 45 uint32 cursor_pos, |
| 45 bool visible) ); | 46 bool visible) ); |
| 46 MOCK_METHOD0(HidePreeditText, void()); | 47 MOCK_METHOD0(HidePreeditText, void()); |
| 48 MOCK_METHOD2(SetCursorLocation, void(const ibus::Rect& cursor_location, |
| 49 const ibus::Rect& composition_head)); |
| 47 | 50 |
| 48 private: | 51 private: |
| 49 DISALLOW_COPY_AND_ASSIGN(MockIBusPanelCandidateWindowHandler); | 52 DISALLOW_COPY_AND_ASSIGN(MockIBusPanelCandidateWindowHandler); |
| 50 }; | 53 }; |
| 51 | 54 |
| 52 class MockIBusPanelPropertyHandler : public IBusPanelPropertyHandlerInterface { | 55 class MockIBusPanelPropertyHandler : public IBusPanelPropertyHandlerInterface { |
| 53 public: | 56 public: |
| 54 MockIBusPanelPropertyHandler() {} | 57 MockIBusPanelPropertyHandler() {} |
| 55 MOCK_METHOD1(RegisterProperties, | 58 MOCK_METHOD1(RegisterProperties, |
| 56 void(const ibus::IBusPropertyList& properties)); | 59 void(const ibus::IBusPropertyList& properties)); |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 283 ibus::panel::kServiceInterface, | 286 ibus::panel::kServiceInterface, |
| 284 ibus::panel::kStateChangedMethod, _, _)) | 287 ibus::panel::kStateChangedMethod, _, _)) |
| 285 .WillRepeatedly( | 288 .WillRepeatedly( |
| 286 Invoke(this, &IBusPanelServiceTest::OnMethodExported)); | 289 Invoke(this, &IBusPanelServiceTest::OnMethodExported)); |
| 287 | 290 |
| 288 // Suppress uninteresting mock function call warning. | 291 // Suppress uninteresting mock function call warning. |
| 289 EXPECT_CALL(*mock_bus_.get(), | 292 EXPECT_CALL(*mock_bus_.get(), |
| 290 AssertOnOriginThread()) | 293 AssertOnOriginThread()) |
| 291 .WillRepeatedly(Return()); | 294 .WillRepeatedly(Return()); |
| 292 | 295 |
| 296 stub_input_context_client_.reset(IBusInputContextClient::Create( |
| 297 STUB_DBUS_CLIENT_IMPLEMENTATION)); |
| 298 |
| 293 // Create a service | 299 // Create a service |
| 294 service_.reset(IBusPanelService::Create( | 300 service_.reset(IBusPanelService::Create( |
| 295 REAL_DBUS_CLIENT_IMPLEMENTATION, | 301 REAL_DBUS_CLIENT_IMPLEMENTATION, |
| 296 mock_bus_.get())); | 302 mock_bus_.get(), |
| 303 stub_input_context_client_.get())); |
| 297 | 304 |
| 298 // Set panel handler. | 305 // Set panel handler. |
| 299 candidate_window_handler_.reset(new MockIBusPanelCandidateWindowHandler()); | 306 candidate_window_handler_.reset(new MockIBusPanelCandidateWindowHandler()); |
| 300 service_->SetUpCandidateWindowHandler(candidate_window_handler_.get()); | 307 service_->SetUpCandidateWindowHandler(candidate_window_handler_.get()); |
| 301 property_handler_.reset(new MockIBusPanelPropertyHandler()); | 308 property_handler_.reset(new MockIBusPanelPropertyHandler()); |
| 302 service_->SetUpPropertyHandler(property_handler_.get()); | 309 service_->SetUpPropertyHandler(property_handler_.get()); |
| 303 } | 310 } |
| 304 | 311 |
| 305 protected: | 312 protected: |
| 306 // The service to be tested. | 313 // The service to be tested. |
| 307 scoped_ptr<IBusPanelService> service_; | 314 scoped_ptr<IBusPanelService> service_; |
| 308 // The mock candidate window panel handler. Do not free, this is owned by | 315 // The mock candidate window panel handler. Do not free, this is owned by |
| 309 // IBusPanelService. | 316 // IBusPanelService. |
| 310 scoped_ptr<MockIBusPanelCandidateWindowHandler> candidate_window_handler_; | 317 scoped_ptr<MockIBusPanelCandidateWindowHandler> candidate_window_handler_; |
| 311 // The mock property handler. Do not free, this is owned by IBusPanelService. | 318 // The mock property handler. Do not free, this is owned by IBusPanelService. |
| 312 scoped_ptr<MockIBusPanelPropertyHandler> property_handler_; | 319 scoped_ptr<MockIBusPanelPropertyHandler> property_handler_; |
| 320 // The stub input context client. |
| 321 scoped_ptr<IBusInputContextClient> stub_input_context_client_; |
| 313 // The mock bus. | 322 // The mock bus. |
| 314 scoped_refptr<dbus::MockBus> mock_bus_; | 323 scoped_refptr<dbus::MockBus> mock_bus_; |
| 315 // The mock exported object. | 324 // The mock exported object. |
| 316 scoped_refptr<dbus::MockExportedObject> mock_exported_object_; | 325 scoped_refptr<dbus::MockExportedObject> mock_exported_object_; |
| 317 // A message loop to emulate asynchronous behavior. | 326 // A message loop to emulate asynchronous behavior. |
| 318 MessageLoop message_loop_; | 327 MessageLoop message_loop_; |
| 319 // The map from method call to method call handler. | 328 // The map from method call to method call handler. |
| 320 std::map<std::string, dbus::ExportedObject::MethodCallCallback> | 329 std::map<std::string, dbus::ExportedObject::MethodCallCallback> |
| 321 method_callback_map_; | 330 method_callback_map_; |
| 322 | 331 |
| (...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 607 EXPECT_NE(method_callback_map_.find(ibus::panel::kUpdatePropertyMethod), | 616 EXPECT_NE(method_callback_map_.find(ibus::panel::kUpdatePropertyMethod), |
| 608 method_callback_map_.end()); | 617 method_callback_map_.end()); |
| 609 method_callback_map_[ibus::panel::kUpdatePropertyMethod].Run( | 618 method_callback_map_[ibus::panel::kUpdatePropertyMethod].Run( |
| 610 &method_call, | 619 &method_call, |
| 611 base::Bind(&MockResponseSender::Run, | 620 base::Bind(&MockResponseSender::Run, |
| 612 base::Unretained(&response_sender))); | 621 base::Unretained(&response_sender))); |
| 613 } | 622 } |
| 614 | 623 |
| 615 } // namespace ibus | 624 } // namespace ibus |
| 616 } // namespace chromeos | 625 } // namespace chromeos |
| OLD | NEW |