diff options
author | komatsu@chromium.org <komatsu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-01 13:08:34 +0000 |
---|---|---|
committer | komatsu@chromium.org <komatsu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-01 13:08:34 +0000 |
commit | 637ee4913f2377f6936e1efefbbc3035502f931c (patch) | |
tree | 3741f617bf65b4abe80fd2625496c39e728e2796 /chromeos | |
parent | ab3032cc90f6c0f8de2d1cb7519ab6d5167aecb2 (diff) | |
download | chromium_src-637ee4913f2377f6936e1efefbbc3035502f931c.zip chromium_src-637ee4913f2377f6936e1efefbbc3035502f931c.tar.gz chromium_src-637ee4913f2377f6936e1efefbbc3035502f931c.tar.bz2 |
Delete IBusInputContextClient
IBusInputContextClient is no longer used in the production at all.
BUG=275262
Review URL: https://codereview.chromium.org/25081003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226216 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos')
-rw-r--r-- | chromeos/chromeos.gyp | 5 | ||||
-rw-r--r-- | chromeos/dbus/dbus_thread_manager.cc | 8 | ||||
-rw-r--r-- | chromeos/dbus/dbus_thread_manager.h | 2 | ||||
-rw-r--r-- | chromeos/dbus/ibus/ibus_client.h | 1 | ||||
-rw-r--r-- | chromeos/dbus/ibus/ibus_input_context_client.cc | 494 | ||||
-rw-r--r-- | chromeos/dbus/ibus/ibus_input_context_client.h | 117 | ||||
-rw-r--r-- | chromeos/dbus/ibus/ibus_input_context_client_unittest.cc | 612 | ||||
-rw-r--r-- | chromeos/dbus/ibus/mock_ibus_input_context_client.cc | 110 | ||||
-rw-r--r-- | chromeos/dbus/ibus/mock_ibus_input_context_client.h | 121 | ||||
-rw-r--r-- | chromeos/dbus/mock_dbus_thread_manager.cc | 1 | ||||
-rw-r--r-- | chromeos/dbus/mock_dbus_thread_manager.h | 1 | ||||
-rw-r--r-- | chromeos/dbus/mock_dbus_thread_manager_without_gmock.cc | 7 | ||||
-rw-r--r-- | chromeos/dbus/mock_dbus_thread_manager_without_gmock.h | 7 |
13 files changed, 0 insertions, 1486 deletions
diff --git a/chromeos/chromeos.gyp b/chromeos/chromeos.gyp index 6ef4796..2e0bd79 100644 --- a/chromeos/chromeos.gyp +++ b/chromeos/chromeos.gyp @@ -155,8 +155,6 @@ 'dbus/ibus/ibus_object.h', 'dbus/ibus/ibus_text.cc', 'dbus/ibus/ibus_text.h', - 'dbus/ibus/ibus_input_context_client.cc', - 'dbus/ibus/ibus_input_context_client.h', 'dbus/image_burner_client.cc', 'dbus/image_burner_client.h', 'dbus/introspectable_client.cc', @@ -422,8 +420,6 @@ 'dbus/mock_dbus_thread_manager_without_gmock.h', 'dbus/ibus/mock_ibus_client.cc', 'dbus/ibus/mock_ibus_client.h', - 'dbus/ibus/mock_ibus_input_context_client.cc', - 'dbus/ibus/mock_ibus_input_context_client.h', 'dbus/ibus/mock_ibus_engine_factory_service.cc', 'dbus/ibus/mock_ibus_engine_factory_service.h', 'dbus/ibus/mock_ibus_engine_service.cc', @@ -475,7 +471,6 @@ 'dbus/ibus/ibus_client_unittest.cc', 'dbus/ibus/ibus_component_unittest.cc', 'dbus/ibus/ibus_engine_factory_service_unittest.cc', - 'dbus/ibus/ibus_input_context_client_unittest.cc', 'dbus/ibus/ibus_lookup_table_unittest.cc', 'dbus/ibus/ibus_object_unittest.cc', 'dbus/ibus/ibus_text_unittest.cc', diff --git a/chromeos/dbus/dbus_thread_manager.cc b/chromeos/dbus/dbus_thread_manager.cc index f235990..46753c1 100644 --- a/chromeos/dbus/dbus_thread_manager.cc +++ b/chromeos/dbus/dbus_thread_manager.cc @@ -26,7 +26,6 @@ #include "chromeos/dbus/ibus/ibus_client.h" #include "chromeos/dbus/ibus/ibus_engine_factory_service.h" #include "chromeos/dbus/ibus/ibus_engine_service.h" -#include "chromeos/dbus/ibus/ibus_input_context_client.h" #include "chromeos/dbus/image_burner_client.h" #include "chromeos/dbus/introspectable_client.h" #include "chromeos/dbus/modem_messaging_client.h" @@ -173,8 +172,6 @@ class DBusThreadManagerImpl : public DBusThreadManager { ibus_client_.reset( IBusClient::Create(client_type, ibus_bus_.get())); - ibus_input_context_client_.reset( - IBusInputContextClient::Create(client_type)); ibus_engine_factory_service_.reset( IBusEngineFactoryService::Create(ibus_bus_.get(), client_type)); @@ -296,10 +293,6 @@ class DBusThreadManagerImpl : public DBusThreadManager { return ibus_client_.get(); } - virtual IBusInputContextClient* GetIBusInputContextClient() OVERRIDE { - return ibus_input_context_client_.get(); - } - virtual IBusEngineFactoryService* GetIBusEngineFactoryService() OVERRIDE { return ibus_engine_factory_service_.get(); } @@ -403,7 +396,6 @@ class DBusThreadManagerImpl : public DBusThreadManager { scoped_ptr<SMSClient> sms_client_; scoped_ptr<UpdateEngineClient> update_engine_client_; scoped_ptr<IBusClient> ibus_client_; - scoped_ptr<IBusInputContextClient> ibus_input_context_client_; scoped_ptr<IBusEngineFactoryService> ibus_engine_factory_service_; std::map<dbus::ObjectPath, IBusEngineService*> ibus_engine_services_; scoped_ptr<PowerPolicyController> power_policy_controller_; diff --git a/chromeos/dbus/dbus_thread_manager.h b/chromeos/dbus/dbus_thread_manager.h index 2fe94a2..65f0333 100644 --- a/chromeos/dbus/dbus_thread_manager.h +++ b/chromeos/dbus/dbus_thread_manager.h @@ -39,7 +39,6 @@ class GsmSMSClient; class IBusClient; class IBusEngineFactoryService; class IBusEngineService; -class IBusInputContextClient; class ImageBurnerClient; class IntrospectableClient; class ModemMessagingClient; @@ -132,7 +131,6 @@ class CHROMEOS_EXPORT DBusThreadManager { virtual IBusEngineFactoryService* GetIBusEngineFactoryService() = 0; virtual IBusEngineService* GetIBusEngineService( const dbus::ObjectPath& object_path) = 0; - virtual IBusInputContextClient* GetIBusInputContextClient() = 0; virtual ImageBurnerClient* GetImageBurnerClient() = 0; virtual IntrospectableClient* GetIntrospectableClient() = 0; virtual ModemMessagingClient* GetModemMessagingClient() = 0; diff --git a/chromeos/dbus/ibus/ibus_client.h b/chromeos/dbus/ibus/ibus_client.h index 1a66476..a62d7bb 100644 --- a/chromeos/dbus/ibus/ibus_client.h +++ b/chromeos/dbus/ibus/ibus_client.h @@ -20,7 +20,6 @@ class Bus; namespace chromeos { class IBusComponent; -class IBusInputContextClient; // A class to make the actual DBus calls for IBusBus service. // This class only makes calls, result/error handling should be done by diff --git a/chromeos/dbus/ibus/ibus_input_context_client.cc b/chromeos/dbus/ibus/ibus_input_context_client.cc deleted file mode 100644 index 31b082c..0000000 --- a/chromeos/dbus/ibus/ibus_input_context_client.cc +++ /dev/null @@ -1,494 +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_input_context_client.h" - -#include <string> -#include "base/bind.h" -#include "base/callback.h" -#include "chromeos/dbus/ibus/ibus_constants.h" -#include "chromeos/dbus/ibus/ibus_engine_service.h" -#include "chromeos/dbus/ibus/ibus_text.h" -#include "chromeos/ime/ibus_bridge.h" -#include "dbus/bus.h" -#include "dbus/message.h" -#include "dbus/object_path.h" -#include "dbus/object_proxy.h" - -namespace chromeos { - -using chromeos::IBusText; - -namespace { - -// The IBusInputContextClient implementation. -class IBusInputContextClientImpl : public IBusInputContextClient { - public: - IBusInputContextClientImpl() - : proxy_(NULL), - is_xkb_layout_(true), - weak_ptr_factory_(this) { - } - - virtual ~IBusInputContextClientImpl() {} - - public: - // IBusInputContextClient override. - virtual void Initialize(dbus::Bus* bus, - const dbus::ObjectPath& object_path) OVERRIDE { - if (proxy_ != NULL) { - LOG(ERROR) << "IBusInputContextClient is already initialized."; - return; - } - proxy_ = bus->GetObjectProxy(ibus::kServiceName, object_path); - - ConnectSignals(); - } - - // IBusInputContextClient override. - virtual void SetInputContextHandler( - IBusInputContextHandlerInterface* handler) OVERRIDE { - handler_ = handler; - } - - // IBusInputContextClient override. - virtual void SetSetCursorLocationHandler( - const SetCursorLocationHandler& set_cursor_location_handler) OVERRIDE { - DCHECK(!set_cursor_location_handler.is_null()); - set_cursor_location_handler_ = set_cursor_location_handler; - } - - // IBusInputContextClient override. - virtual void UnsetSetCursorLocationHandler() OVERRIDE { - set_cursor_location_handler_.Reset(); - } - - // IBusInputContextClient override. - virtual void ResetObjectProxy() OVERRIDE { - // Do not delete proxy here, proxy object is managed by dbus::Bus object. - proxy_ = NULL; - } - - // IBusInputContextClient override. - virtual bool IsObjectProxyReady() const OVERRIDE { - return proxy_ != NULL; - } - - // IBusInputContextClient override. - virtual void SetCapabilities(uint32 capabilities) OVERRIDE { - dbus::MethodCall method_call(ibus::input_context::kServiceInterface, - ibus::input_context::kSetCapabilitiesMethod); - dbus::MessageWriter writer(&method_call); - writer.AppendUint32(capabilities); - CallNoResponseMethod(&method_call, - ibus::input_context::kSetCapabilitiesMethod); - } - - // IBusInputContextClient override. - virtual void FocusIn() OVERRIDE { - dbus::MethodCall method_call(ibus::input_context::kServiceInterface, - ibus::input_context::kFocusInMethod); - CallNoResponseMethod(&method_call, ibus::input_context::kFocusInMethod); - } - - // IBusInputContextClient override. - virtual void FocusOut() OVERRIDE { - dbus::MethodCall method_call(ibus::input_context::kServiceInterface, - ibus::input_context::kFocusOutMethod); - CallNoResponseMethod(&method_call, ibus::input_context::kFocusOutMethod); - } - - // IBusInputContextClient override. - virtual void Reset() OVERRIDE { - dbus::MethodCall method_call(ibus::input_context::kServiceInterface, - ibus::input_context::kResetMethod); - CallNoResponseMethod(&method_call, ibus::input_context::kResetMethod); - } - - // IBusInputContextClient override. - virtual void SetCursorLocation(const ibus::Rect& cursor_location, - const ibus::Rect& composition_head) OVERRIDE { - if (!set_cursor_location_handler_.is_null()) - set_cursor_location_handler_.Run(cursor_location, composition_head); - } - - // IBusInputContextClient override. - virtual void ProcessKeyEvent( - uint32 keyval, - uint32 keycode, - uint32 state, - const ProcessKeyEventCallback& callback, - const ErrorCallback& error_callback) OVERRIDE { - dbus::MethodCall method_call(ibus::input_context::kServiceInterface, - ibus::input_context::kProcessKeyEventMethod); - dbus::MessageWriter writer(&method_call); - writer.AppendUint32(keyval); - writer.AppendUint32(keycode); - writer.AppendUint32(state); - proxy_->CallMethodWithErrorCallback( - &method_call, - dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, - base::Bind(&IBusInputContextClientImpl::OnProcessKeyEvent, - callback, - error_callback), - base::Bind(&IBusInputContextClientImpl::OnProecessKeyEventFail, - error_callback)); - } - - // IBusInputContextClient override. - virtual void SetSurroundingText(const std::string& text, - uint32 start_index, - uint32 end_index) OVERRIDE { - dbus::MethodCall method_call( - ibus::input_context::kServiceInterface, - ibus::input_context::kSetSurroundingTextMethod); - dbus::MessageWriter writer(&method_call); - AppendStringAsIBusText(text, &writer); - writer.AppendUint32(start_index); - writer.AppendUint32(end_index); - CallNoResponseMethod(&method_call, - ibus::input_context::kSetSurroundingTextMethod); - } - - // IBusInputContextClient override. - virtual void PropertyActivate(const std::string& key, - ibus::IBusPropertyState state) OVERRIDE { - dbus::MethodCall method_call(ibus::input_context::kServiceInterface, - ibus::input_context::kPropertyActivateMethod); - dbus::MessageWriter writer(&method_call); - writer.AppendString(key); - if (state == ibus::IBUS_PROPERTY_STATE_CHECKED) { - writer.AppendUint32(ibus::IBUS_PROPERTY_STATE_CHECKED); - } else { - writer.AppendUint32(ibus::IBUS_PROPERTY_STATE_UNCHECKED); - } - CallNoResponseMethod(&method_call, - ibus::input_context::kPropertyActivateMethod); - } - - // IBusInputContextClient override. - virtual bool IsXKBLayout() OVERRIDE { - return is_xkb_layout_; - } - - // IBusInputContextClient override. - virtual void SetIsXKBLayout(bool is_xkb_layout) OVERRIDE { - is_xkb_layout_ = is_xkb_layout; - } - - private: - void CallNoResponseMethod(dbus::MethodCall* method_call, - const std::string& method_name) { - proxy_->CallMethodWithErrorCallback( - method_call, - dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, - base::Bind(&IBusInputContextClientImpl::DefaultCallback, - method_name), - base::Bind(&IBusInputContextClientImpl::DefaultErrorCallback, - method_name)); - } - - // Handles no response method call reply. - static void DefaultCallback(const std::string& method_name, - dbus::Response* response) { - if (!response) { - LOG(ERROR) << "Failed to call method: " << method_name; - return; - } - } - - // Handles error response of default method call. - static void DefaultErrorCallback(const std::string& method_name, - dbus::ErrorResponse* response) { - LOG(ERROR) << "Failed to call method: " << method_name; - } - - // Handles ProcessKeyEvent method call reply. - static void OnProcessKeyEvent(const ProcessKeyEventCallback& callback, - const ErrorCallback& error_callback, - dbus::Response* response) { - if (!response) { - LOG(ERROR) << "Cannot get input context: " << response->ToString(); - error_callback.Run(); - return; - } - dbus::MessageReader reader(response); - bool is_keyevent_used; - if (!reader.PopBool(&is_keyevent_used)) { - // The IBus message structure may be changed. - LOG(ERROR) << "Invalid response: " << response->ToString(); - error_callback.Run(); - return; - } - DCHECK(!callback.is_null()); - callback.Run(is_keyevent_used); - } - - // Handles error response of ProcessKeyEvent method call. - static void OnProecessKeyEventFail(const ErrorCallback& error_callback, - dbus::ErrorResponse* response) { - error_callback.Run(); - } - - // Handles ForwardKeyEvetn signal. - void OnForwardKeyEvent(dbus::Signal* signal) { - if (!handler_) - return; - dbus::MessageReader reader(signal); - uint32 keyval = 0; - uint32 keycode = 0; - uint32 state = 0; - if (!reader.PopUint32(&keyval) || - !reader.PopUint32(&keycode) || - !reader.PopUint32(&state)) { - // The IBus message structure may be changed. - LOG(ERROR) << "Invalid signal: " << signal->ToString(); - return; - } - handler_->ForwardKeyEvent(keyval, keycode, state); - } - - // Handles UpdatePreeditText signal. - void OnUpdatePreeditText(dbus::Signal* signal) { - if (!handler_) - return; - dbus::MessageReader reader(signal); - IBusText ibus_text; - uint32 cursor_pos = 0; - bool visible = true; - if (!PopIBusText(&reader, &ibus_text) || - !reader.PopUint32(&cursor_pos) || - !reader.PopBool(&visible)) { - // The IBus message structure may be changed. - LOG(ERROR) << "Invalid signal: " << signal->ToString(); - return; - } - handler_->UpdatePreeditText(ibus_text, cursor_pos, visible); - } - - // Handles ShowPreeditText signal. - void OnShowPreeditText(dbus::Signal* signal) { - if (handler_) - handler_->ShowPreeditText(); - } - - // Handles HidePreeditText signal. - void OnHidePreeditText(dbus::Signal* signal) { - if (handler_) - handler_->HidePreeditText(); - } - - // Handle DeleteSurroundingText signal. - void OnDeleteSurroundingText(dbus::Signal* signal) { - if (!handler_) - return; - - dbus::MessageReader reader(signal); - int32 offset = 0; - uint32 length = 0; - if (!reader.PopInt32(&offset) || !reader.PopUint32(&length)) { - // The IBus message structure may be changed. - LOG(ERROR) << "Invalid signal: " << signal->ToString(); - return; - } - handler_->DeleteSurroundingText(offset, length); - } - - // Connects signals to signal handlers. - void ConnectSignals() { - proxy_->ConnectToSignal( - ibus::input_context::kServiceInterface, - ibus::input_context::kForwardKeyEventSignal, - base::Bind(&IBusInputContextClientImpl::OnForwardKeyEvent, - weak_ptr_factory_.GetWeakPtr()), - base::Bind(&IBusInputContextClientImpl::OnSignalConnected, - weak_ptr_factory_.GetWeakPtr())); - - proxy_->ConnectToSignal( - ibus::input_context::kServiceInterface, - ibus::input_context::kUpdatePreeditTextSignal, - base::Bind(&IBusInputContextClientImpl::OnUpdatePreeditText, - weak_ptr_factory_.GetWeakPtr()), - base::Bind(&IBusInputContextClientImpl::OnSignalConnected, - weak_ptr_factory_.GetWeakPtr())); - - proxy_->ConnectToSignal( - ibus::input_context::kServiceInterface, - ibus::input_context::kShowPreeditTextSignal, - base::Bind(&IBusInputContextClientImpl::OnShowPreeditText, - weak_ptr_factory_.GetWeakPtr()), - base::Bind(&IBusInputContextClientImpl::OnSignalConnected, - weak_ptr_factory_.GetWeakPtr())); - - proxy_->ConnectToSignal( - ibus::input_context::kServiceInterface, - ibus::input_context::kHidePreeditTextSignal, - base::Bind(&IBusInputContextClientImpl::OnHidePreeditText, - weak_ptr_factory_.GetWeakPtr()), - base::Bind(&IBusInputContextClientImpl::OnSignalConnected, - weak_ptr_factory_.GetWeakPtr())); - - proxy_->ConnectToSignal( - ibus::input_context::kServiceInterface, - ibus::input_context::kDeleteSurroundingTextSignal, - base::Bind(&IBusInputContextClientImpl::OnDeleteSurroundingText, - weak_ptr_factory_.GetWeakPtr()), - base::Bind(&IBusInputContextClientImpl::OnSignalConnected, - weak_ptr_factory_.GetWeakPtr())); - } - - // Handles the result of signal connection setup. - void OnSignalConnected(const std::string& interface, - const std::string& signal, - bool succeeded) { - LOG_IF(ERROR, !succeeded) << "Connect to " << interface << " " - << signal << " failed."; - } - - dbus::ObjectProxy* proxy_; - - // The pointer for input context handler. This can be NULL. - IBusInputContextHandlerInterface* handler_; - - SetCursorLocationHandler set_cursor_location_handler_; - - // True if the current input method is xkb layout. - bool is_xkb_layout_; - - base::WeakPtrFactory<IBusInputContextClientImpl> weak_ptr_factory_; - - DISALLOW_COPY_AND_ASSIGN(IBusInputContextClientImpl); -}; - -// An implementation of IBusInputContextClient without ibus-daemon interaction. -// Currently this class is used only on linux desktop. -// TODO(nona): Use this on ChromeOS device once crbug.com/171351 is fixed. -class IBusInputContextClientDaemonlessImpl : public IBusInputContextClient { - public: - IBusInputContextClientDaemonlessImpl() - : is_xkb_layout_(true), - initialized_(false) - {} - virtual ~IBusInputContextClientDaemonlessImpl() {} - - // IBusInputContextClient override. - virtual void Initialize(dbus::Bus* bus, - const dbus::ObjectPath& object_path) OVERRIDE { - initialized_ = true; - } - - virtual void SetInputContextHandler( - IBusInputContextHandlerInterface* handler) OVERRIDE { - IBusBridge::Get()->SetInputContextHandler(handler); - } - - virtual void SetSetCursorLocationHandler( - const SetCursorLocationHandler& set_cursor_location_handler) OVERRIDE { - } - - virtual void UnsetSetCursorLocationHandler() OVERRIDE { - } - - virtual void ResetObjectProxy() OVERRIDE { - initialized_ = false; - } - - virtual bool IsObjectProxyReady() const OVERRIDE { - return initialized_; - } - - virtual void SetCapabilities(uint32 capability) OVERRIDE { - IBusEngineHandlerInterface* engine = IBusBridge::Get()->GetEngineHandler(); - if (engine) - engine->SetCapability( - static_cast<IBusEngineHandlerInterface::IBusCapability>(capability)); - } - - virtual void FocusIn() OVERRIDE { - IBusEngineHandlerInterface* engine = IBusBridge::Get()->GetEngineHandler(); - if (engine) - engine->FocusIn(); - } - - virtual void FocusOut() OVERRIDE { - IBusEngineHandlerInterface* engine = IBusBridge::Get()->GetEngineHandler(); - if (engine) - engine->FocusOut(); - } - - virtual void Reset() OVERRIDE { - IBusEngineHandlerInterface* engine = IBusBridge::Get()->GetEngineHandler(); - if (engine) - engine->Reset(); - } - - virtual void SetCursorLocation(const ibus::Rect& cursor_location, - const ibus::Rect& composition_head) OVERRIDE { - IBusPanelCandidateWindowHandlerInterface* candidate_window = - IBusBridge::Get()->GetCandidateWindowHandler(); - - if (candidate_window) - candidate_window->SetCursorLocation(cursor_location, composition_head); - } - - virtual void ProcessKeyEvent( - uint32 keyval, - uint32 keycode, - uint32 state, - const ProcessKeyEventCallback& callback, - const ErrorCallback& error_callback) OVERRIDE { - IBusEngineHandlerInterface* engine = IBusBridge::Get()->GetEngineHandler(); - if (engine) - engine->ProcessKeyEvent(keyval, keycode, state, callback); - } - - virtual void SetSurroundingText(const std::string& text, - uint32 start_index, - uint32 end_index) OVERRIDE { - // TODO(nona): Implement this. - } - - virtual void PropertyActivate(const std::string& key, - ibus::IBusPropertyState state) OVERRIDE { - IBusEngineHandlerInterface* engine = IBusBridge::Get()->GetEngineHandler(); - if (engine) - engine->PropertyActivate(key, - static_cast<ibus::IBusPropertyState>(state)); - } - - virtual bool IsXKBLayout() OVERRIDE { - return is_xkb_layout_; - } - - virtual void SetIsXKBLayout(bool is_xkb_layout) OVERRIDE { - is_xkb_layout_ = is_xkb_layout; - } - - private: - // True if the current input method is xkb layout. - bool is_xkb_layout_; - bool initialized_; - - DISALLOW_COPY_AND_ASSIGN(IBusInputContextClientDaemonlessImpl); -}; - -} // namespace - -/////////////////////////////////////////////////////////////////////////////// -// IBusInputContextClient - -IBusInputContextClient::IBusInputContextClient() {} - -IBusInputContextClient::~IBusInputContextClient() {} - -// static -IBusInputContextClient* IBusInputContextClient::Create( - DBusClientImplementationType type) { - if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) { - return new IBusInputContextClientImpl(); - } - DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); - return new IBusInputContextClientDaemonlessImpl(); -} -} // namespace chromeos diff --git a/chromeos/dbus/ibus/ibus_input_context_client.h b/chromeos/dbus/ibus/ibus_input_context_client.h deleted file mode 100644 index ae787d44..0000000 --- a/chromeos/dbus/ibus/ibus_input_context_client.h +++ /dev/null @@ -1,117 +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. - -#ifndef CHROMEOS_DBUS_IBUS_IBUS_INPUT_CONTEXT_CLIENT_H_ -#define CHROMEOS_DBUS_IBUS_IBUS_INPUT_CONTEXT_CLIENT_H_ - -#include <string> - -#include "base/bind.h" -#include "base/callback.h" -#include "chromeos/chromeos_export.h" -#include "chromeos/dbus/dbus_client_implementation_type.h" -#include "chromeos/dbus/ibus/ibus_constants.h" -#include "chromeos/ime/ibus_bridge.h" -#include "dbus/object_path.h" - -namespace dbus { -class Bus; -} // namespace dbus - -namespace chromeos { - -class IBusText; -class IBusInputContextHandlerInterface; - -// A class to make the actual DBus calls for IBusInputContext service. -// The ibus-daemon creates object paths on demand, so the target object path is -// not determined before calling CreateInputContext. It is good to initialize -// this class at the callback from CreateInputContext in IBusClient. This class -// is managed by DBusThreadManager as singleton instance, so we can handle only -// one input context but it is enough for ChromeOS. -class CHROMEOS_EXPORT IBusInputContextClient { - public: - typedef base::Callback<void(const ibus::Rect& cursor_location, - const ibus::Rect& composition_head)> - SetCursorLocationHandler; - typedef base::Callback<void(bool is_keyevent_used)> ProcessKeyEventCallback; - typedef base::Callback<void()> ErrorCallback; - - virtual ~IBusInputContextClient(); - - // Creates object proxy and connects signals. - virtual void Initialize(dbus::Bus* bus, - const dbus::ObjectPath& object_path) = 0; - - // Sets input context handler. This function can be called multiple times and - // also can be passed |handler| as NULL. Caller must release |handler|. - virtual void SetInputContextHandler( - IBusInputContextHandlerInterface* handler) = 0; - - // Sets SetCursorLocation handler. - virtual void SetSetCursorLocationHandler( - const SetCursorLocationHandler& set_cursor_location_handler) = 0; - - // Unset SetCursorLocation handler. - virtual void UnsetSetCursorLocationHandler() = 0; - - // Resets object proxy. If you want to use InputContext again, should call - // Initialize function again. - virtual void ResetObjectProxy() = 0; - - // Returns true if the object proxy is ready to communicate with ibus-daemon, - // otherwise return false. - virtual bool IsObjectProxyReady() const = 0; - - // Invokes SetCapabilities method call. - virtual void SetCapabilities(uint32 capability) = 0; - // Invokes FocusIn method call. - virtual void FocusIn() = 0; - // Invokes FocusOut method call. - virtual void FocusOut() = 0; - // Invokes Reset method call. - virtual void Reset() = 0; - // Invokes SetCursorLocation method call. - virtual void SetCursorLocation(const ibus::Rect& cursor_location, - const ibus::Rect& composition_head) = 0; - // Invokes ProcessKeyEvent method call. |callback| should not be null. - virtual void ProcessKeyEvent(uint32 keyval, - uint32 keycode, - uint32 state, - const ProcessKeyEventCallback& callback, - const ErrorCallback& error_callback) = 0; - - // Invokes SetSurroundingText method call. |start_index| is inclusive and - // |end_index| is exclusive. - virtual void SetSurroundingText(const std::string& text, - uint32 start_index, - uint32 end_index) = 0; - - // Invokes PropertyActivate method call. The PROP_STATE_INCONSISTENT in - // original IBus spec is not supported in Chrome. - virtual void PropertyActivate(const std::string& key, - ibus::IBusPropertyState state) = 0; - - // Returns true if the current input method is XKB layout. - virtual bool IsXKBLayout() = 0; - - // Sets current input method is XKB layout or not. - virtual void SetIsXKBLayout(bool is_xkb_layout) = 0; - - // Factory function, creates a new instance and returns ownership. - // For normal usage, access the singleton via DBusThreadManager::Get(). - static CHROMEOS_EXPORT IBusInputContextClient* Create( - DBusClientImplementationType type); - - protected: - // Create() should be used instead. - IBusInputContextClient(); - - private: - DISALLOW_COPY_AND_ASSIGN(IBusInputContextClient); -}; - -} // namespace chromeos - -#endif // CHROMEOS_DBUS_IBUS_IBUS_INPUT_CONTEXT_CLIENT_H_ diff --git a/chromeos/dbus/ibus/ibus_input_context_client_unittest.cc b/chromeos/dbus/ibus/ibus_input_context_client_unittest.cc deleted file mode 100644 index 654beb3..0000000 --- a/chromeos/dbus/ibus/ibus_input_context_client_unittest.cc +++ /dev/null @@ -1,612 +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_input_context_client.h" - -#include <map> -#include <string> -#include "base/message_loop/message_loop.h" -#include "chromeos/dbus/ibus/ibus_constants.h" -#include "chromeos/dbus/ibus/ibus_text.h" -#include "dbus/message.h" -#include "dbus/mock_bus.h" -#include "dbus/mock_object_proxy.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 { - -// TODO(nona): Remove after complete libibus removal. -using chromeos::IBusText; - -namespace { -const char kObjectPath[] = "/org/freedesktop/IBus/InputContext_1010"; - -// Following variables are used in callback expectations. -const uint32 kCapabilities = 12345; -const int32 kCursorX = 30; -const int32 kCursorY = 31; -const int32 kCursorWidth = 32; -const int32 kCursorHeight = 33; -const uint32 kKeyval = 34; -const uint32 kKeycode = 35; -const uint32 kState = 36; -const int32 kCompositionX = 37; -const int32 kCompositionY = 38; -const int32 kCompositionWidth = 39; -const int32 kCompositionHeight = 40; -const bool kIsKeyHandled = false; -const char kSurroundingText[] = "Surrounding Text"; -const uint32 kCursorPos = 2; -const uint32 kAnchorPos = 7; -const char kPropertyKey[] = "Property Key"; -const ibus::IBusPropertyState kPropertyState = - ibus::IBUS_PROPERTY_STATE_CHECKED; - -class MockInputContextHandler : public IBusInputContextHandlerInterface { - public: - MOCK_METHOD1(CommitText, void(const std::string& text)); - MOCK_METHOD3(ForwardKeyEvent, - void(uint32 keyval, uint32 keycode, uint32 state)); - MOCK_METHOD0(ShowPreeditText, void()); - MOCK_METHOD0(HidePreeditText, void()); - MOCK_METHOD3(UpdatePreeditText, - void(const IBusText& text, uint32 cursor_pos, bool visible)); - MOCK_METHOD2(DeleteSurroundingText, void(int32 offset, uint32 length)); -}; - -class MockProcessKeyEventHandler { - public: - MOCK_METHOD1(Run, void(bool is_key_handled)); -}; - -class MockProcessKeyEventErrorHandler { - public: - MOCK_METHOD0(Run, void()); -}; - -MATCHER_P(IBusTextEq, expected_text, "The expected IBusText does not match") { - // TODO(nona): Check attributes. - return (arg.text() == expected_text->text()); -} - -} // namespace - -class IBusInputContextClientTest : public testing::Test { - public: - IBusInputContextClientTest() - : response_(NULL), - on_set_cursor_location_call_count_(0) {} - - 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 proxy. - mock_proxy_ = new dbus::MockObjectProxy(mock_bus_.get(), - ibus::kServiceName, - dbus::ObjectPath(kObjectPath)); - - // Create a client. - client_.reset(IBusInputContextClient::Create( - REAL_DBUS_CLIENT_IMPLEMENTATION)); - - // Set an expectation so mock_bus's GetObjectProxy() for the given service - // name and the object path will return mock_proxy_. The GetObjectProxy - // function is called in Initialized function. - EXPECT_CALL( - *mock_bus_.get(), - GetObjectProxy(ibus::kServiceName, dbus::ObjectPath(kObjectPath))) - .WillOnce(Return(mock_proxy_.get())); - - // Set expectations so mock_proxy's ConnectToSignal will use - // OnConnectToSignal() to run the callback. The ConnectToSignal is called in - // Initialize function. - EXPECT_CALL(*mock_proxy_.get(), - ConnectToSignal(ibus::input_context::kServiceInterface, - ibus::input_context::kForwardKeyEventSignal, - _, - _)) - .WillRepeatedly( - Invoke(this, &IBusInputContextClientTest::OnConnectToSignal)); - EXPECT_CALL(*mock_proxy_.get(), - ConnectToSignal(ibus::input_context::kServiceInterface, - ibus::input_context::kHidePreeditTextSignal, - _, - _)) - .WillRepeatedly( - Invoke(this, &IBusInputContextClientTest::OnConnectToSignal)); - EXPECT_CALL(*mock_proxy_.get(), - ConnectToSignal(ibus::input_context::kServiceInterface, - ibus::input_context::kShowPreeditTextSignal, - _, - _)) - .WillRepeatedly( - Invoke(this, &IBusInputContextClientTest::OnConnectToSignal)); - EXPECT_CALL(*mock_proxy_.get(), - ConnectToSignal(ibus::input_context::kServiceInterface, - ibus::input_context::kUpdatePreeditTextSignal, - _, - _)) - .WillRepeatedly( - Invoke(this, &IBusInputContextClientTest::OnConnectToSignal)); - EXPECT_CALL( - *mock_proxy_.get(), - ConnectToSignal(ibus::input_context::kServiceInterface, - ibus::input_context::kDeleteSurroundingTextSignal, - _, - _)) - .WillRepeatedly( - Invoke(this, &IBusInputContextClientTest::OnConnectToSignal)); - - // Call Initialize to create object proxy and connect signals. - client_->Initialize(mock_bus_.get(), dbus::ObjectPath(kObjectPath)); - } - - virtual void TearDown() OVERRIDE { - EXPECT_TRUE(client_->IsObjectProxyReady()); - client_->ResetObjectProxy(); - EXPECT_FALSE(client_->IsObjectProxyReady()); - } - - // Handles FocusIn method call. - void OnFocusIn(dbus::MethodCall* method_call, - int timeout_ms, - const dbus::ObjectProxy::ResponseCallback& callback, - const dbus::ObjectProxy::ErrorCallback& error_callback) { - EXPECT_EQ(ibus::input_context::kServiceInterface, - method_call->GetInterface()); - EXPECT_EQ(ibus::input_context::kFocusInMethod, method_call->GetMember()); - dbus::MessageReader reader(method_call); - EXPECT_FALSE(reader.HasMoreData()); - - message_loop_.PostTask(FROM_HERE, base::Bind(callback, response_)); - } - - // Handles FocusOut method call. - void OnFocusOut(dbus::MethodCall* method_call, - int timeout_ms, - const dbus::ObjectProxy::ResponseCallback& callback, - const dbus::ObjectProxy::ErrorCallback& error_callback) { - EXPECT_EQ(ibus::input_context::kServiceInterface, - method_call->GetInterface()); - EXPECT_EQ(ibus::input_context::kFocusOutMethod, method_call->GetMember()); - dbus::MessageReader reader(method_call); - EXPECT_FALSE(reader.HasMoreData()); - - message_loop_.PostTask(FROM_HERE, base::Bind(callback, response_)); - } - - // Handles Reset method call. - void OnReset(dbus::MethodCall* method_call, - int timeout_ms, - const dbus::ObjectProxy::ResponseCallback& callback, - const dbus::ObjectProxy::ErrorCallback& error_callback) { - EXPECT_EQ(ibus::input_context::kServiceInterface, - method_call->GetInterface()); - EXPECT_EQ(ibus::input_context::kResetMethod, method_call->GetMember()); - dbus::MessageReader reader(method_call); - EXPECT_FALSE(reader.HasMoreData()); - - message_loop_.PostTask(FROM_HERE, base::Bind(callback, response_)); - } - - // Handles SetCursorLocation method call. - void OnSetCursorLocation(const ibus::Rect& cursor_location, - const ibus::Rect& composition_head) { - ++on_set_cursor_location_call_count_; - } - - // Handles SetCapabilities method call. - void OnSetCapabilities( - dbus::MethodCall* method_call, - int timeout_ms, - const dbus::ObjectProxy::ResponseCallback& callback, - const dbus::ObjectProxy::ErrorCallback& error_callback) { - EXPECT_EQ(ibus::input_context::kServiceInterface, - method_call->GetInterface()); - EXPECT_EQ(ibus::input_context::kSetCapabilitiesMethod, - method_call->GetMember()); - uint32 capabilities; - dbus::MessageReader reader(method_call); - EXPECT_TRUE(reader.PopUint32(&capabilities)); - EXPECT_EQ(kCapabilities, capabilities); - EXPECT_FALSE(reader.HasMoreData()); - - message_loop_.PostTask(FROM_HERE, base::Bind(callback, response_)); - } - - // Handles ProcessKeyEvent method call. - void OnProcessKeyEvent( - dbus::MethodCall* method_call, - int timeout_ms, - const dbus::ObjectProxy::ResponseCallback& callback, - const dbus::ObjectProxy::ErrorCallback& error_callback) { - EXPECT_EQ(ibus::input_context::kServiceInterface, - method_call->GetInterface()); - EXPECT_EQ(ibus::input_context::kProcessKeyEventMethod, - method_call->GetMember()); - uint32 keyval, keycode, state; - dbus::MessageReader reader(method_call); - EXPECT_TRUE(reader.PopUint32(&keyval)); - EXPECT_TRUE(reader.PopUint32(&keycode)); - EXPECT_TRUE(reader.PopUint32(&state)); - EXPECT_FALSE(reader.HasMoreData()); - - message_loop_.PostTask(FROM_HERE, base::Bind(callback, response_)); - } - - void OnProcessKeyEventFail( - dbus::MethodCall* method_call, - int timeout_ms, - const dbus::ObjectProxy::ResponseCallback& callback, - const dbus::ObjectProxy::ErrorCallback& error_callback) { - EXPECT_EQ(ibus::input_context::kServiceInterface, - method_call->GetInterface()); - EXPECT_EQ(ibus::input_context::kProcessKeyEventMethod, - method_call->GetMember()); - uint32 keyval, keycode, state; - dbus::MessageReader reader(method_call); - EXPECT_TRUE(reader.PopUint32(&keyval)); - EXPECT_TRUE(reader.PopUint32(&keycode)); - EXPECT_TRUE(reader.PopUint32(&state)); - EXPECT_FALSE(reader.HasMoreData()); - - message_loop_.PostTask(FROM_HERE, base::Bind(error_callback, - error_response_)); - } - - // Handles SetSurroudingText method call. - void OnSetSurroundingText( - dbus::MethodCall* method_call, - int timeout_ms, - const dbus::ObjectProxy::ResponseCallback& callback, - const dbus::ObjectProxy::ErrorCallback& error_callback) { - EXPECT_EQ(ibus::input_context::kServiceInterface, - method_call->GetInterface()); - EXPECT_EQ(ibus::input_context::kSetSurroundingTextMethod, - method_call->GetMember()); - dbus::MessageReader reader(method_call); - std::string text; - uint32 cursor_pos = 0; - uint32 anchor_pos = 0; - - EXPECT_TRUE(PopStringFromIBusText(&reader, &text)); - EXPECT_TRUE(reader.PopUint32(&cursor_pos)); - EXPECT_TRUE(reader.PopUint32(&anchor_pos)); - EXPECT_FALSE(reader.HasMoreData()); - - EXPECT_EQ(kSurroundingText, text); - EXPECT_EQ(kCursorPos, cursor_pos); - EXPECT_EQ(kAnchorPos, anchor_pos); - - message_loop_.PostTask(FROM_HERE, base::Bind(callback, response_)); - } - - // Handles PropertyActivate method call. - void OnPropertyActivate( - dbus::MethodCall* method_call, - int timeout_ms, - const dbus::ObjectProxy::ResponseCallback& callback, - const dbus::ObjectProxy::ErrorCallback& error_callback) { - EXPECT_EQ(ibus::input_context::kServiceInterface, - method_call->GetInterface()); - EXPECT_EQ(ibus::input_context::kPropertyActivateMethod, - method_call->GetMember()); - dbus::MessageReader reader(method_call); - std::string key; - uint32 state = 0; - - EXPECT_TRUE(reader.PopString(&key)); - EXPECT_TRUE(reader.PopUint32(&state)); - EXPECT_FALSE(reader.HasMoreData()); - - EXPECT_EQ(kPropertyKey, key); - EXPECT_EQ(kPropertyState, static_cast<ibus::IBusPropertyState>(state)); - - message_loop_.PostTask(FROM_HERE, base::Bind(callback, response_)); - } - - protected: - // The client to be tested. - scoped_ptr<IBusInputContextClient> client_; - // The mock bus. - scoped_refptr<dbus::MockBus> mock_bus_; - // The mock object proxy. - scoped_refptr<dbus::MockObjectProxy> mock_proxy_; - // Response returned by mock methods. - dbus::Response* response_; - dbus::ErrorResponse* error_response_; - // A message loop to emulate asynchronous behavior. - base::MessageLoop message_loop_; - // The map from signal to signal handler. - std::map<std::string, dbus::ObjectProxy::SignalCallback> signal_callback_map_; - // Call count of OnSetCursorLocation. - int on_set_cursor_location_call_count_; - - private: - // Used to implement the mock proxy. - void OnConnectToSignal( - const std::string& interface_name, - const std::string& signal_name, - const dbus::ObjectProxy::SignalCallback& signal_callback, - const dbus::ObjectProxy::OnConnectedCallback& on_connected_callback) { - signal_callback_map_[signal_name] = signal_callback; - const bool success = true; - message_loop_.PostTask(FROM_HERE, base::Bind(on_connected_callback, - interface_name, - signal_name, - success)); - } -}; - -TEST_F(IBusInputContextClientTest, ForwardKeyEventHandlerTest) { - // Set handler expectations. - MockInputContextHandler mock_handler; - EXPECT_CALL(mock_handler, ForwardKeyEvent(kKeyval, kKeycode, kState)); - client_->SetInputContextHandler(&mock_handler); - message_loop_.RunUntilIdle(); - - // Emit signal. - dbus::Signal signal(ibus::input_context::kServiceInterface, - ibus::input_context::kForwardKeyEventSignal); - dbus::MessageWriter writer(&signal); - writer.AppendUint32(kKeyval); - writer.AppendUint32(kKeycode); - writer.AppendUint32(kState); - ASSERT_FALSE( - signal_callback_map_[ibus::input_context::kForwardKeyEventSignal] - .is_null()); - signal_callback_map_[ibus::input_context::kForwardKeyEventSignal].Run( - &signal); - - // Unset the handler so expect not calling handler. - client_->SetInputContextHandler(NULL); - signal_callback_map_[ibus::input_context::kForwardKeyEventSignal].Run( - &signal); -} - -TEST_F(IBusInputContextClientTest, HidePreeditTextHandlerTest) { - // Set handler expectations. - MockInputContextHandler mock_handler; - EXPECT_CALL(mock_handler, HidePreeditText()); - client_->SetInputContextHandler(&mock_handler); - message_loop_.RunUntilIdle(); - - // Emit signal. - dbus::Signal signal(ibus::input_context::kServiceInterface, - ibus::input_context::kHidePreeditTextSignal); - ASSERT_FALSE( - signal_callback_map_[ibus::input_context::kHidePreeditTextSignal] - .is_null()); - signal_callback_map_[ibus::input_context::kHidePreeditTextSignal].Run( - &signal); - - // Unset the handler so expect not calling handler. - client_->SetInputContextHandler(NULL); - signal_callback_map_[ibus::input_context::kHidePreeditTextSignal].Run( - &signal); -} - -TEST_F(IBusInputContextClientTest, ShowPreeditTextHandlerTest) { - // Set handler expectations. - MockInputContextHandler mock_handler; - EXPECT_CALL(mock_handler, ShowPreeditText()); - client_->SetInputContextHandler(&mock_handler); - message_loop_.RunUntilIdle(); - - // Emit signal. - dbus::Signal signal(ibus::input_context::kServiceInterface, - ibus::input_context::kShowPreeditTextSignal); - ASSERT_FALSE( - signal_callback_map_[ibus::input_context::kShowPreeditTextSignal] - .is_null()); - signal_callback_map_[ibus::input_context::kShowPreeditTextSignal].Run( - &signal); - - // Unset the handler so expect not calling handler. - client_->SetInputContextHandler(NULL); - signal_callback_map_[ibus::input_context::kShowPreeditTextSignal].Run( - &signal); -} - -TEST_F(IBusInputContextClientTest, UpdatePreeditTextHandlerTest) { - const uint32 kCursorPos = 20; - const bool kVisible = false; - const char kSampleText[] = "Sample Text"; - IBusText ibus_text; - ibus_text.set_text(kSampleText); - - // Set handler expectations. - MockInputContextHandler mock_handler; - EXPECT_CALL(mock_handler, - UpdatePreeditText(IBusTextEq(&ibus_text), kCursorPos, kVisible)); - client_->SetInputContextHandler(&mock_handler); - message_loop_.RunUntilIdle(); - - // Emit signal. - dbus::Signal signal(ibus::input_context::kServiceInterface, - ibus::input_context::kUpdatePreeditTextSignal); - dbus::MessageWriter writer(&signal); - AppendIBusText(ibus_text, &writer); - writer.AppendUint32(kCursorPos); - writer.AppendBool(kVisible); - ASSERT_FALSE( - signal_callback_map_[ibus::input_context::kUpdatePreeditTextSignal] - .is_null()); - signal_callback_map_[ibus::input_context::kUpdatePreeditTextSignal].Run( - &signal); - - // Unset the handler so expect not calling handler. - client_->SetInputContextHandler(NULL); - signal_callback_map_[ibus::input_context::kUpdatePreeditTextSignal].Run( - &signal); -} - -TEST_F(IBusInputContextClientTest, FocusInTest) { - // Set expectations. - EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) - .WillOnce(Invoke(this, &IBusInputContextClientTest::OnFocusIn)); - // Create response. - scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); - response_ = response.get(); - - // Call FocusIn. - client_->FocusIn(); - // Run the message loop. - message_loop_.RunUntilIdle(); -} - -TEST_F(IBusInputContextClientTest, FocusOutTest) { - // Set expectations. - EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) - .WillOnce(Invoke(this, &IBusInputContextClientTest::OnFocusOut)); - // Create response. - scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); - response_ = response.get(); - - // Call FocusOut. - client_->FocusOut(); - // Run the message loop. - message_loop_.RunUntilIdle(); -} - -TEST_F(IBusInputContextClientTest, ResetTest) { - // Set expectations. - EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) - .WillOnce(Invoke(this, &IBusInputContextClientTest::OnReset)); - // Create response. - scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); - response_ = response.get(); - - // Call Reset. - client_->Reset(); - // Run the message loop. - message_loop_.RunUntilIdle(); -} - -TEST_F(IBusInputContextClientTest, SetCapabilitiesTest) { - // Set expectations. - EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) - .WillOnce(Invoke(this, &IBusInputContextClientTest::OnSetCapabilities)); - // Create response. - scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); - response_ = response.get(); - - // Call SetCapabilities. - client_->SetCapabilities(kCapabilities); - // Run the message loop. - message_loop_.RunUntilIdle(); -} - -TEST_F(IBusInputContextClientTest, SetCursorLocationTest) { - on_set_cursor_location_call_count_ = 0; - client_->SetSetCursorLocationHandler( - base::Bind(&IBusInputContextClientTest::OnSetCursorLocation, - base::Unretained(this))); - const ibus::Rect cursor_location(kCursorX, - kCursorY, - kCursorWidth, - kCursorHeight); - const ibus::Rect composition_location(kCompositionX, - kCompositionY, - kCompositionWidth, - kCompositionHeight); - // Call SetCursorLocation. - client_->SetCursorLocation(cursor_location, composition_location); - - EXPECT_EQ(1, on_set_cursor_location_call_count_); - client_->UnsetSetCursorLocationHandler(); -} - -TEST_F(IBusInputContextClientTest, OnProcessKeyEvent) { - // Set expectations. - EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) - .WillOnce(Invoke(this, &IBusInputContextClientTest::OnProcessKeyEvent)); - MockProcessKeyEventHandler callback; - MockProcessKeyEventErrorHandler error_callback; - - EXPECT_CALL(callback, Run(kIsKeyHandled)); - EXPECT_CALL(error_callback, Run()).Times(0); - // Create response. - scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); - dbus::MessageWriter writer(response.get()); - writer.AppendBool(kIsKeyHandled); - response_ = response.get(); - - // Call ProcessKeyEvent. - client_->ProcessKeyEvent(kKeyval, - kKeycode, - kState, - base::Bind(&MockProcessKeyEventHandler::Run, - base::Unretained(&callback)), - base::Bind(&MockProcessKeyEventErrorHandler::Run, - base::Unretained(&error_callback))); - // Run the message loop. - message_loop_.RunUntilIdle(); -} - -TEST_F(IBusInputContextClientTest, OnProcessKeyEventFail) { - // Set expectations. - EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) - .WillOnce( - Invoke(this, &IBusInputContextClientTest::OnProcessKeyEventFail)); - MockProcessKeyEventHandler callback; - MockProcessKeyEventErrorHandler error_callback; - - EXPECT_CALL(callback, Run(_)).Times(0); - EXPECT_CALL(error_callback, Run()); - // Create response. - scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); - dbus::MessageWriter writer(response.get()); - writer.AppendBool(kIsKeyHandled); - response_ = response.get(); - - // Call ProcessKeyEvent. - client_->ProcessKeyEvent(kKeyval, - kKeycode, - kState, - base::Bind(&MockProcessKeyEventHandler::Run, - base::Unretained(&callback)), - base::Bind(&MockProcessKeyEventErrorHandler::Run, - base::Unretained(&error_callback))); - // Run the message loop. - message_loop_.RunUntilIdle(); -} - -TEST_F(IBusInputContextClientTest, SetSurroundingTextTest) { - // Set expectations. - EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) - .WillOnce( - Invoke(this, &IBusInputContextClientTest::OnSetSurroundingText)); - // Create response. - scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); - response_ = response.get(); - - // Call SetCursorLocation. - client_->SetSurroundingText(kSurroundingText, kCursorPos, kAnchorPos); - // Run the message loop. - message_loop_.RunUntilIdle(); -} - -TEST_F(IBusInputContextClientTest, PropertyActivateTest) { - // Set expectations. - EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) - .WillOnce(Invoke(this, &IBusInputContextClientTest::OnPropertyActivate)); - // Create response. - scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); - response_ = response.get(); - - // Call SetCursorLocation. - client_->PropertyActivate(kPropertyKey, kPropertyState); - // Run the message loop. - message_loop_.RunUntilIdle(); -} -} // namespace chromeos diff --git a/chromeos/dbus/ibus/mock_ibus_input_context_client.cc b/chromeos/dbus/ibus/mock_ibus_input_context_client.cc deleted file mode 100644 index 2ccaa54..0000000 --- a/chromeos/dbus/ibus/mock_ibus_input_context_client.cc +++ /dev/null @@ -1,110 +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/mock_ibus_input_context_client.h" - -namespace chromeos { - -MockIBusInputContextClient::MockIBusInputContextClient() - : initialize_call_count_(0), - is_initialized_(false), - is_xkb_layout_(false), - reset_object_proxy_call_caount_(0), - set_capabilities_call_count_(0), - focus_in_call_count_(0), - focus_out_call_count_(0), - reset_call_count_(0), - set_cursor_location_call_count_(0), - process_key_event_call_count_(0), - set_surrounding_text_call_count_(0) { -} - -MockIBusInputContextClient::~MockIBusInputContextClient() {} - -void MockIBusInputContextClient::Initialize( - dbus::Bus* bus, const dbus::ObjectPath& object_path) { - initialize_call_count_++; - is_initialized_ = true; -} - -void MockIBusInputContextClient::SetInputContextHandler( - IBusInputContextHandlerInterface* handler) { -} - -void MockIBusInputContextClient::SetSetCursorLocationHandler( - const SetCursorLocationHandler& set_cursor_location_handler) { -} - -void MockIBusInputContextClient::UnsetSetCursorLocationHandler() { -} - -void MockIBusInputContextClient::ResetObjectProxy() { - reset_object_proxy_call_caount_++; - is_initialized_ = false; -} - -bool MockIBusInputContextClient::IsObjectProxyReady() const { - if (is_initialized_) - return true; - else - return false; -} - -void MockIBusInputContextClient::SetCapabilities(uint32 capabilities) { - set_capabilities_call_count_++; -} - -void MockIBusInputContextClient::FocusIn() { - focus_in_call_count_++; -} - -void MockIBusInputContextClient::FocusOut() { - focus_out_call_count_++; -} - -void MockIBusInputContextClient::Reset() { - reset_call_count_++; -} - -void MockIBusInputContextClient::SetCursorLocation( - const ibus::Rect& cursor_location, - const ibus::Rect& composition_head) { - set_cursor_location_call_count_++; -} - -void MockIBusInputContextClient::ProcessKeyEvent( - uint32 keyval, - uint32 keycode, - uint32 state, - const ProcessKeyEventCallback& callback, - const ErrorCallback& error_callback) { - process_key_event_call_count_++; - if (!process_key_event_handler_.is_null()) { - process_key_event_handler_.Run(keyval, keycode, state, callback, - error_callback); - } -} - -void MockIBusInputContextClient::SetSurroundingText( - const std::string& text, - uint32 cursor_pos, - uint32 anchor_pos) { - set_surrounding_text_call_count_++; - set_surrounding_text_handler_.Run(text, cursor_pos, anchor_pos); -} - -void MockIBusInputContextClient::PropertyActivate( - const std::string& key, - ibus::IBusPropertyState state) { -} - -bool MockIBusInputContextClient::IsXKBLayout() { - return is_xkb_layout_; -} - -void MockIBusInputContextClient::SetIsXKBLayout(bool is_xkb_layout) { - is_xkb_layout_ = is_xkb_layout; -} - -} // namespace chromeos diff --git a/chromeos/dbus/ibus/mock_ibus_input_context_client.h b/chromeos/dbus/ibus/mock_ibus_input_context_client.h deleted file mode 100644 index 2da6e51..0000000 --- a/chromeos/dbus/ibus/mock_ibus_input_context_client.h +++ /dev/null @@ -1,121 +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. - -#ifndef CHROMEOS_DBUS_IBUS_MOCK_IBUS_INPUT_CONTEXT_CLIENT_H_ -#define CHROMEOS_DBUS_IBUS_MOCK_IBUS_INPUT_CONTEXT_CLIENT_H_ - -#include <string> -#include "base/basictypes.h" -#include "chromeos/dbus/ibus/ibus_input_context_client.h" - -namespace chromeos { -class MockIBusInputContextClient : public IBusInputContextClient { - public: - typedef base::Callback<void (uint32 keyval, - uint32 keycode, - uint32 state, - const ProcessKeyEventCallback& callback, - const ErrorCallback& error_callback)> - ProcessKeyEventHandler; - typedef base::Callback<void (const std::string& text, uint32 cursor_pos, - uint32 anchor_pos)> - SetSurroundingTextHandler; - MockIBusInputContextClient(); - virtual ~MockIBusInputContextClient(); - - virtual void Initialize(dbus::Bus* bus, - const dbus::ObjectPath& object_path) OVERRIDE; - virtual void SetInputContextHandler( - IBusInputContextHandlerInterface* handler) OVERRIDE; - virtual void SetSetCursorLocationHandler( - const SetCursorLocationHandler& set_cursor_location_handler) OVERRIDE; - virtual void UnsetSetCursorLocationHandler() OVERRIDE; - virtual void ResetObjectProxy() OVERRIDE; - virtual bool IsObjectProxyReady() const OVERRIDE; - virtual void SetCapabilities(uint32 capabilities) OVERRIDE; - virtual void FocusIn() OVERRIDE; - virtual void FocusOut() OVERRIDE; - virtual void Reset() OVERRIDE; - virtual void SetCursorLocation(const ibus::Rect& cursor_location, - const ibus::Rect& composition_head) OVERRIDE; - virtual void ProcessKeyEvent(uint32 keyval, - uint32 keycode, - uint32 state, - const ProcessKeyEventCallback& callback, - const ErrorCallback& error_callback) OVERRIDE; - virtual void SetSurroundingText(const std::string& text, - uint32 cursor_pos, - uint32 anchor_pos) OVERRIDE; - virtual void PropertyActivate(const std::string& key, - ibus::IBusPropertyState state) OVERRIDE; - virtual bool IsXKBLayout() OVERRIDE; - virtual void SetIsXKBLayout(bool is_xkb_layout) OVERRIDE; - - // Call count of Initialize(). - int initialize_call_count() const { return initialize_call_count_; } - - // Call count of ResetObjectProxy(). - int reset_object_proxy_call_caount() const { - return reset_object_proxy_call_caount_; - } - - // Call count of SetCapabilities(). - int set_capabilities_call_count() const { - return set_capabilities_call_count_; - } - - // Call count of FocusIn(). - int focus_in_call_count() const { return focus_in_call_count_; } - - // Call count of FocusOut(). - int focus_out_call_count() const { return focus_out_call_count_; } - - // Call count of Reset(). - int reset_call_count() const { return reset_call_count_; } - - // Call count of SetCursorLocation(). - int set_cursor_location_call_count() const { - return set_cursor_location_call_count_; - } - - // Call count of ProcessKeyEvent(). - int process_key_event_call_count() const { - return process_key_event_call_count_; - } - - void set_process_key_event_handler( - const ProcessKeyEventHandler& handler) { - process_key_event_handler_ = handler; - } - - // Call count of SetSurroundingText(). - int set_surrounding_text_call_count() const { - return set_surrounding_text_call_count_; - } - - void set_set_surrounding_text_handler( - const SetSurroundingTextHandler& handler) { - set_surrounding_text_handler_ = handler; - } - - private: - int initialize_call_count_; - bool is_initialized_; - bool is_xkb_layout_; - int reset_object_proxy_call_caount_; - int set_capabilities_call_count_; - int focus_in_call_count_; - int focus_out_call_count_; - int reset_call_count_; - int set_cursor_location_call_count_; - int process_key_event_call_count_; - int set_surrounding_text_call_count_; - ProcessKeyEventHandler process_key_event_handler_; - SetSurroundingTextHandler set_surrounding_text_handler_; - - DISALLOW_COPY_AND_ASSIGN(MockIBusInputContextClient); -}; -} // namespace chromeos - -#endif // CHROMEOS_DBUS_IBUS_MOCK_IBUS_INPUT_CONTEXT_CLIENT_H_ diff --git a/chromeos/dbus/mock_dbus_thread_manager.cc b/chromeos/dbus/mock_dbus_thread_manager.cc index 675f592..d661663 100644 --- a/chromeos/dbus/mock_dbus_thread_manager.cc +++ b/chromeos/dbus/mock_dbus_thread_manager.cc @@ -13,7 +13,6 @@ #include "chromeos/dbus/ibus/mock_ibus_client.h" #include "chromeos/dbus/ibus/mock_ibus_engine_factory_service.h" #include "chromeos/dbus/ibus/mock_ibus_engine_service.h" -#include "chromeos/dbus/ibus/mock_ibus_input_context_client.h" #include "chromeos/dbus/mock_cryptohome_client.h" #include "chromeos/dbus/mock_shill_device_client.h" #include "chromeos/dbus/mock_shill_ipconfig_client.h" diff --git a/chromeos/dbus/mock_dbus_thread_manager.h b/chromeos/dbus/mock_dbus_thread_manager.h index 05c590d..7072081 100644 --- a/chromeos/dbus/mock_dbus_thread_manager.h +++ b/chromeos/dbus/mock_dbus_thread_manager.h @@ -79,7 +79,6 @@ class MockDBusThreadManager : public DBusThreadManager { MOCK_METHOD0(GetSystemClockClient, SystemClockClient*(void)); MOCK_METHOD0(GetUpdateEngineClient, UpdateEngineClient*(void)); MOCK_METHOD0(GetIBusClient, IBusClient*(void)); - MOCK_METHOD0(GetIBusInputContextClient, IBusInputContextClient*(void)); MOCK_METHOD0(GetIBusEngineFactoryService, IBusEngineFactoryService*(void)); MOCK_METHOD1(GetIBusEngineService, IBusEngineService*(const dbus::ObjectPath& object_path)); diff --git a/chromeos/dbus/mock_dbus_thread_manager_without_gmock.cc b/chromeos/dbus/mock_dbus_thread_manager_without_gmock.cc index 34a3b82..af1d231 100644 --- a/chromeos/dbus/mock_dbus_thread_manager_without_gmock.cc +++ b/chromeos/dbus/mock_dbus_thread_manager_without_gmock.cc @@ -23,7 +23,6 @@ #include "chromeos/dbus/ibus/mock_ibus_client.h" #include "chromeos/dbus/ibus/mock_ibus_engine_factory_service.h" #include "chromeos/dbus/ibus/mock_ibus_engine_service.h" -#include "chromeos/dbus/ibus/mock_ibus_input_context_client.h" #include "chromeos/dbus/power_policy_controller.h" namespace chromeos { @@ -73,7 +72,6 @@ void MockDBusThreadManagerWithoutGMock::InitIBusBus( // Non-null bus address is used to ensure the connection to ibus-daemon. ibus_bus_ = reinterpret_cast<dbus::Bus*>(0xdeadbeef); mock_ibus_client_.reset(new MockIBusClient); - mock_ibus_input_context_client_.reset(new MockIBusInputContextClient); mock_ibus_engine_service_.reset(new MockIBusEngineService); mock_ibus_engine_factory_service_.reset(new MockIBusEngineFactoryService); } @@ -213,11 +211,6 @@ IBusClient* MockDBusThreadManagerWithoutGMock::GetIBusClient() { return mock_ibus_client_.get(); } -IBusInputContextClient* - MockDBusThreadManagerWithoutGMock::GetIBusInputContextClient() { - return mock_ibus_input_context_client_.get(); -} - IBusEngineFactoryService* MockDBusThreadManagerWithoutGMock::GetIBusEngineFactoryService() { return mock_ibus_engine_factory_service_.get(); diff --git a/chromeos/dbus/mock_dbus_thread_manager_without_gmock.h b/chromeos/dbus/mock_dbus_thread_manager_without_gmock.h index a68ae04..f743dc4 100644 --- a/chromeos/dbus/mock_dbus_thread_manager_without_gmock.h +++ b/chromeos/dbus/mock_dbus_thread_manager_without_gmock.h @@ -37,7 +37,6 @@ class FakeUpdateEngineClient; class MockIBusClient; class MockIBusEngineFactoryService; class MockIBusEngineService; -class MockIBusInputContextClient; // This class provides an another mock DBusThreadManager without gmock // dependency. This class is used for places where GMock is not allowed @@ -84,7 +83,6 @@ class MockDBusThreadManagerWithoutGMock : public DBusThreadManager { virtual SystemClockClient* GetSystemClockClient() OVERRIDE; virtual UpdateEngineClient* GetUpdateEngineClient() OVERRIDE; virtual IBusClient* GetIBusClient() OVERRIDE; - virtual IBusInputContextClient* GetIBusInputContextClient() OVERRIDE; virtual IBusEngineFactoryService* GetIBusEngineFactoryService() OVERRIDE; virtual IBusEngineService* GetIBusEngineService( const dbus::ObjectPath& object_path) OVERRIDE; @@ -155,10 +153,6 @@ class MockDBusThreadManagerWithoutGMock : public DBusThreadManager { return mock_ibus_client_.get(); } - MockIBusInputContextClient* mock_ibus_input_context_client() { - return mock_ibus_input_context_client_.get(); - } - MockIBusEngineService* mock_ibus_engine_service() { return mock_ibus_engine_service_.get(); } @@ -195,7 +189,6 @@ class MockDBusThreadManagerWithoutGMock : public DBusThreadManager { scoped_ptr<FakeUpdateEngineClient> fake_update_engine_client_; scoped_ptr<MockIBusClient> mock_ibus_client_; - scoped_ptr<MockIBusInputContextClient> mock_ibus_input_context_client_; scoped_ptr<MockIBusEngineService> mock_ibus_engine_service_; scoped_ptr<MockIBusEngineFactoryService> mock_ibus_engine_factory_service_; |