// Copyright (c) 2013 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_SHILL_MANAGER_CLIENT_STUB_H_ #define CHROMEOS_DBUS_SHILL_MANAGER_CLIENT_STUB_H_ #include #include "base/basictypes.h" #include "base/callback.h" #include "chromeos/dbus/shill_manager_client.h" namespace chromeos { // A stub implementation of ShillManagerClient. This works in close coordination // with ShillServiceClientStub. ShillDeviceClientStub, and // ShillProfileClientStub, and is not intended to be used independently. class ShillManagerClientStub : public ShillManagerClient, public ShillManagerClient::TestInterface { public: ShillManagerClientStub(); virtual ~ShillManagerClientStub(); // ShillManagerClient overrides virtual void Init(dbus::Bus* bus) OVERRIDE; virtual void AddPropertyChangedObserver( ShillPropertyChangedObserver* observer) OVERRIDE; virtual void RemovePropertyChangedObserver( ShillPropertyChangedObserver* observer) OVERRIDE; virtual void GetProperties(const DictionaryValueCallback& callback) OVERRIDE; virtual void GetNetworksForGeolocation( const DictionaryValueCallback& callback) OVERRIDE; virtual void SetProperty(const std::string& name, const base::Value& value, const base::Closure& callback, const ErrorCallback& error_callback) OVERRIDE; virtual void RequestScan(const std::string& type, const base::Closure& callback, const ErrorCallback& error_callback) OVERRIDE; virtual void EnableTechnology( const std::string& type, const base::Closure& callback, const ErrorCallback& error_callback) OVERRIDE; virtual void DisableTechnology( const std::string& type, const base::Closure& callback, const ErrorCallback& error_callback) OVERRIDE; virtual void ConfigureService( const base::DictionaryValue& properties, const ObjectPathCallback& callback, const ErrorCallback& error_callback) OVERRIDE; virtual void ConfigureServiceForProfile( const dbus::ObjectPath& profile_path, const base::DictionaryValue& properties, const ObjectPathCallback& callback, const ErrorCallback& error_callback) OVERRIDE; virtual void GetService( const base::DictionaryValue& properties, const ObjectPathCallback& callback, const ErrorCallback& error_callback) OVERRIDE; virtual void VerifyDestination(const VerificationProperties& properties, const BooleanCallback& callback, const ErrorCallback& error_callback) OVERRIDE; virtual void VerifyAndEncryptCredentials( const VerificationProperties& properties, const std::string& service_path, const StringCallback& callback, const ErrorCallback& error_callback) OVERRIDE; virtual void VerifyAndEncryptData( const VerificationProperties& properties, const std::string& data, const StringCallback& callback, const ErrorCallback& error_callback) OVERRIDE; virtual void ConnectToBestServices( const base::Closure& callback, const ErrorCallback& error_callback) OVERRIDE; virtual ShillManagerClient::TestInterface* GetTestInterface() OVERRIDE; // ShillManagerClient::TestInterface overrides. virtual void AddDevice(const std::string& device_path) OVERRIDE; virtual void RemoveDevice(const std::string& device_path) OVERRIDE; virtual void ClearDevices() OVERRIDE; virtual void AddTechnology(const std::string& type, bool enabled) OVERRIDE; virtual void RemoveTechnology(const std::string& type) OVERRIDE; virtual void SetTechnologyInitializing(const std::string& type, bool initializing) OVERRIDE; virtual void AddGeoNetwork(const std::string& technology, const base::DictionaryValue& network) OVERRIDE; virtual void AddProfile(const std::string& profile_path) OVERRIDE; virtual void ClearProperties() OVERRIDE; virtual void AddManagerService(const std::string& service_path, bool add_to_visible_list, bool add_to_watch_list) OVERRIDE; virtual void RemoveManagerService(const std::string& service_path) OVERRIDE; virtual void ClearManagerServices() OVERRIDE; virtual void SortManagerServices() OVERRIDE; private: void AddServiceToWatchList(const std::string& service_path); void SetDefaultProperties(); void PassStubProperties(const DictionaryValueCallback& callback) const; void PassStubGeoNetworks(const DictionaryValueCallback& callback) const; void CallNotifyObserversPropertyChanged(const std::string& property, int delay_ms); void NotifyObserversPropertyChanged(const std::string& property); base::ListValue* GetListProperty(const std::string& property); bool TechnologyEnabled(const std::string& type) const; void SetTechnologyEnabled(const std::string& type, const base::Closure& callback, bool enabled); base::ListValue* GetEnabledServiceList(const std::string& property) const; void ScanCompleted(const std::string& device_path, const base::Closure& callback); // Dictionary of property name -> property value base::DictionaryValue stub_properties_; // Dictionary of technology -> list of property dictionaries base::DictionaryValue stub_geo_networks_; ObserverList observer_list_; // Note: This should remain the last member so it'll be destroyed and // invalidate its weak pointers before any other members are destroyed. base::WeakPtrFactory weak_ptr_factory_; DISALLOW_COPY_AND_ASSIGN(ShillManagerClientStub); }; } // namespace chromeos #endif // CHROMEOS_DBUS_SHILL_MANAGER_CLIENT_STUB_H_