15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROMEOS_DBUS_IBUS_MOCK_IBUS_CLIENT_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROMEOS_DBUS_IBUS_MOCK_IBUS_CLIENT_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/callback.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chromeos/dbus/ibus/ibus_client.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace chromeos { 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockIBusClient : public IBusClient { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockIBusClient(); 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockIBusClient(); 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef base::Callback<void(const std::string& client_name, 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const CreateInputContextCallback& callback, 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ErrorCallback& error_callback)> 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CreateInputContextHandler; 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) typedef base::Callback<void(const IBusComponent& ibus_component, 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const RegisterComponentCallback& callback, 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ErrorCallback& error_callback)> 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RegisterComponentHandler; 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // IBusClient override. 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void CreateInputContext(const std::string& client_name, 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const CreateInputContextCallback& callback, 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ErrorCallback& error_callback) OVERRIDE; 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // IBusClient override. 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void RegisterComponent(const IBusComponent& ibus_component, 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const RegisterComponentCallback& callback, 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ErrorCallback& error_callback) OVERRIDE; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // IBusClient override. 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SetGlobalEngine(const std::string& engine_name, 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ErrorCallback& error_callback) OVERRIDE; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // IBusClient override. 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void Exit(ExitOption option, 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ErrorCallback& error_callback) OVERRIDE; 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Function handler for CreateInputContext. The CreateInputContext function 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // invokes |create_input_context_handler_| unless it's not null. 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_create_input_context_handler( 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const CreateInputContextHandler& handler) { 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) create_input_context_handler_ = handler; 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Function handler for RegisterComponent. The RegisterComponent function 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // invokes |register_component_handler_| unless it's not null. 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_register_component_handler( 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const RegisterComponentHandler& handler) { 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) register_component_handler_ = handler; 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Call count of CreateInputContext(). 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int create_input_context_call_count() const { 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return create_input_context_call_count_; 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Call count of RegisterComponent(). 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int register_component_call_count() const { 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return register_component_call_count_; 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 70a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) int set_global_engine_call_count() const { 71a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) return set_global_engine_call_count_; 72a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) } 73a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 74a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) const std::string& latest_global_engine_name() const { 75a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) return latest_global_engine_name_; 76a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) } 77a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CreateInputContextHandler create_input_context_handler_; 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RegisterComponentHandler register_component_handler_; 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int create_input_context_call_count_; 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int register_component_call_count_; 83a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) int set_global_engine_call_count_; 84a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) std::string latest_global_engine_name_; 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockIBusClient); 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace chromeos 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROMEOS_DBUS_IBUS_MOCK_IBUS_CLIENT_H_ 92