1// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROMEOS_DBUS_SHILL_PROFILE_CLIENT_STUB_H_ 6#define CHROMEOS_DBUS_SHILL_PROFILE_CLIENT_STUB_H_ 7 8#include <map> 9#include <string> 10 11#include "base/basictypes.h" 12#include "chromeos/dbus/shill_manager_client.h" 13#include "chromeos/dbus/shill_profile_client.h" 14 15namespace chromeos { 16 17// A stub implementation of ShillProfileClient. 18class ShillProfileClientStub : public ShillProfileClient, 19 public ShillProfileClient::TestInterface { 20 public: 21 ShillProfileClientStub(); 22 virtual ~ShillProfileClientStub(); 23 24 // ShillProfileClient overrides. 25 virtual void AddPropertyChangedObserver( 26 const dbus::ObjectPath& profile_path, 27 ShillPropertyChangedObserver* observer) OVERRIDE; 28 virtual void RemovePropertyChangedObserver( 29 const dbus::ObjectPath& profile_path, 30 ShillPropertyChangedObserver* observer) OVERRIDE; 31 virtual void GetProperties( 32 const dbus::ObjectPath& profile_path, 33 const DictionaryValueCallbackWithoutStatus& callback, 34 const ErrorCallback& error_callback) OVERRIDE; 35 virtual void GetEntry(const dbus::ObjectPath& profile_path, 36 const std::string& entry_path, 37 const DictionaryValueCallbackWithoutStatus& callback, 38 const ErrorCallback& error_callback) OVERRIDE; 39 virtual void DeleteEntry(const dbus::ObjectPath& profile_path, 40 const std::string& entry_path, 41 const base::Closure& callback, 42 const ErrorCallback& error_callback) OVERRIDE; 43 virtual ShillProfileClient::TestInterface* GetTestInterface() OVERRIDE; 44 45 // ShillProfileClient::TestInterface overrides. 46 virtual void AddProfile(const std::string& profile_path, 47 const std::string& userhash) OVERRIDE; 48 virtual void AddEntry(const std::string& profile_path, 49 const std::string& entry_path, 50 const base::DictionaryValue& properties) OVERRIDE; 51 virtual bool AddService(const std::string& profile_path, 52 const std::string& service_path) OVERRIDE; 53 virtual void GetProfilePaths(std::vector<std::string>* profiles) OVERRIDE; 54 55 static const char kSharedProfilePath[]; 56 57 private: 58 struct ProfileProperties; 59 typedef std::map<std::string, ProfileProperties*> ProfileMap; 60 61 ProfileProperties* GetProfile(const dbus::ObjectPath& profile_path, 62 const ErrorCallback& error_callback); 63 64 // The values are owned by this class and are explicitly destroyed where 65 // necessary. 66 ProfileMap profiles_; 67 68 DISALLOW_COPY_AND_ASSIGN(ShillProfileClientStub); 69}; 70 71} // namespace chromeos 72 73#endif // CHROMEOS_DBUS_SHILL_PROFILE_CLIENT_STUB_H_ 74